Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Release] JUVER SOURCE with In Game Functionalities [NO MORE SELLING]

Junior Spellweaver
Joined
Feb 17, 2022
Messages
177
Reaction score
8

I cant find that code @aizen00

#include "StdAfx.h"
#include "CharacterCreatePageSet.h"
#include "CharacterCreateInfo.h"

#include "d3dfont.h"
#include "UITextControl.h"
#include "GameTextControl.h"

#include "BasicLineBox.h"
#include "BasicTextBox.h"
#include "ModalWindow.h"

#include "OuterInterface.h"
#include "DxGlobalStage.h"
#include "DxLobyStage.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

CCharacterCreatePageSet::CCharacterCreatePageSet ()
: m_bUseCancel( TRUE )
, m_bCreateClassExtremeM( FALSE )
, m_bCreateClassExtremeW( FALSE )
, m_nSelectedSchool( -1 )
, m_nSelectedSex( -1 )
, m_nSelectedClass( -1 )
, m_nSelectedLastSchool( -1 )
, m_nSelectedLastSex( -1 )
, m_nSelectedLastClass( -1 )

//jdevtodo
//enable later when new classes are ready
, m_bCreateClassGunner(TRUE) //enable gunner
, m_bCreateClassAssassin(TRUE)
, m_bCreateClassMagician(FALSE)
{
for( int i=0; i<GLSCHOOL_NUM; ++i ){
m_pTypeSchool_Off = NULL;
m_pTypeSchool_On = NULL;
m_pTypeSchool_Box = NULL;
m_pTypeSchool_Focus = NULL;
}

for( int i=0; i<2; ++i ){
m_pTypeSex_Off = NULL;
m_pTypeSex_On = NULL;
m_pTypeSex_Box = NULL;
m_pTypeSex_Focus = NULL;
}

for( int i=0; i<GLCI_NUM_8CLASS; ++i ){
m_pTypeClass_Off = NULL;
m_pTypeClass_On = NULL;
m_pTypeClass_Box = NULL;
m_pTypeClass_Focus = NULL;
}
}

CCharacterCreatePageSet::~CCharacterCreatePageSet ()
{
}

void CCharacterCreatePageSet::CreateSubControl ()
{
CD3DFontPar* pFont9 = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 9, _DEFAULT_FONT_FLAG );

CBasicLineBox* pBasicLineBox = new CBasicLineBox;
pBasicLineBox->CreateSub ( this, "BASIC_LINE_BOX_OUTER", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
pBasicLineBox->CreateBaseBoxOuter( "CREATE_CHAR_SCHOOL_TEXT" );
RegisterControl ( pBasicLineBox );

pBasicLineBox = new CBasicLineBox;
pBasicLineBox->CreateSub ( this, "BASIC_LINE_BOX_OUTER", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
pBasicLineBox->CreateBaseBoxOuter( "CREATE_CHAR_SEX_TEXT" );
RegisterControl ( pBasicLineBox );

pBasicLineBox = new CBasicLineBox;
pBasicLineBox->CreateSub ( this, "BASIC_LINE_BOX_OUTER", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
pBasicLineBox->CreateBaseBoxOuter( "CREATE_CHAR_CLASS_TEXT" );
RegisterControl ( pBasicLineBox );

CBasicTextBox* pStaticText = new CBasicTextBox;
pStaticText->CreateSub ( this, "CREATE_CHAR_SCHOOL_TEXT" );
pStaticText->SetFont ( pFont9 );
pStaticText->SetTextAlign ( TEXT_ALIGN_CENTER_X | TEXT_ALIGN_CENTER_Y );
pStaticText->SetText( (char*)ID2GAMEWORD ("CREATE_CHARACTER_PAGE_STATIC", 0), NS_UITEXTCOLOR::WHITE );
RegisterControl ( pStaticText );

pStaticText = new CBasicTextBox;
pStaticText->CreateSub ( this, "CREATE_CHAR_SEX_TEXT" );
pStaticText->SetFont ( pFont9 );
pStaticText->SetTextAlign ( TEXT_ALIGN_CENTER_X | TEXT_ALIGN_CENTER_Y );
pStaticText->SetText( (char*)ID2GAMEWORD ("CREATE_CHARACTER_PAGE_STATIC", 6), NS_UITEXTCOLOR::WHITE );
RegisterControl ( pStaticText );

pStaticText = new CBasicTextBox;
pStaticText->CreateSub ( this, "CREATE_CHAR_CLASS_TEXT" );
pStaticText->SetFont ( pFont9 );
pStaticText->SetTextAlign ( TEXT_ALIGN_CENTER_X | TEXT_ALIGN_CENTER_Y );
pStaticText->SetText( (char*)ID2GAMEWORD ("CREATE_CHARACTER_PAGE_STATIC", 1), NS_UITEXTCOLOR::WHITE );
RegisterControl ( pStaticText );


std::string strSchoolOff[GLSCHOOL_NUM] =
{
"CREATE_CHAR_MARK_SM_OFF",
"CREATE_CHAR_MARK_HA_OFF",
"CREATE_CHAR_MARK_BH_OFF",
};

std::string strSchoolOn[GLSCHOOL_NUM] =
{
"CREATE_CHAR_MARK_SM_ON",
"CREATE_CHAR_MARK_HA_ON",
"CREATE_CHAR_MARK_BH_ON",
};

std::string strSchoolBox[GLSCHOOL_NUM] =
{
"CREATE_CHAR_MARK_SM_BOX",
"CREATE_CHAR_MARK_HA_BOX",
"CREATE_CHAR_MARK_BH_BOX",
};

std::string strSchoolFocus[GLSCHOOL_NUM] =
{
"CREATE_CHAR_MARK_SM_FOCUS",
"CREATE_CHAR_MARK_HA_FOCUS",
"CREATE_CHAR_MARK_BH_FOCUS",
};

for( int i=0; i<GLSCHOOL_NUM; ++i ){

m_pTypeSchool_Off = new CUIControl;
m_pTypeSchool_Off->CreateSub ( this, strSchoolOff.c_str() );
m_pTypeSchool_Off->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeSchool_Off );

m_pTypeSchool_On = new CUIControl;
m_pTypeSchool_On->CreateSub ( this, strSchoolOn.c_str() );
m_pTypeSchool_On->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeSchool_On );

m_pTypeSchool_Box = new CUIControl;
m_pTypeSchool_Box->CreateSub ( this, strSchoolBox.c_str() );
m_pTypeSchool_Box->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeSchool_Box );

m_pTypeSchool_Focus = new CUIControl;
m_pTypeSchool_Focus->CreateSub ( this, strSchoolFocus.c_str(), UI_FLAG_XSIZE | UI_FLAG_YSIZE, CHARACTER_CREATE_PAGE_TYPE_SCHOOL_0 + i );
m_pTypeSchool_Focus->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeSchool_Focus );
}


std::string strSexOff[2] =
{
"CREATE_CHAR_SEX_MALE_OFF",
"CREATE_CHAR_SEX_FEMALE_OFF",
};

std::string strSexOn[2] =
{
"CREATE_CHAR_SEX_MALE_ON",
"CREATE_CHAR_SEX_FEMALE_ON",
};

std::string strSexBox[2] =
{
"CREATE_CHAR_SEX_MALE_BOX",
"CREATE_CHAR_SEX_FEMALE_BOX",
};

std::string strSexFocus[2] =
{
"CREATE_CHAR_SEX_MALE_FOCUS",
"CREATE_CHAR_SEX_FEMALE_FOCUS",
};

for( int i=0; i<2; ++i ){

m_pTypeSex_Off = new CUIControl;
m_pTypeSex_Off->CreateSub ( this, strSexOff.c_str() );
m_pTypeSex_Off->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeSex_Off );

m_pTypeSex_On = new CUIControl;
m_pTypeSex_On->CreateSub ( this, strSexOn.c_str() );
m_pTypeSex_On->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeSex_On );

m_pTypeSex_Box = new CUIControl;
m_pTypeSex_Box->CreateSub ( this, strSexBox.c_str() );
m_pTypeSex_Box->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeSex_Box );

m_pTypeSex_Focus = new CUIControl;
m_pTypeSex_Focus->CreateSub ( this, strSexFocus.c_str(), UI_FLAG_XSIZE | UI_FLAG_YSIZE, CHARACTER_CREATE_PAGE_TYPE_SEX_MALE + i );
m_pTypeSex_Focus->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeSex_Focus );
}


std::string strClass_Off[GLCI_NUM_8CLASS] =
{
"CREATE_CHAR_CLASS_BRAWLER_MALE_OFF",
"CREATE_CHAR_CLASS_SWORDMAN_MALE_OFF",
"CREATE_CHAR_CLASS_ARCHER_FEMALE_OFF",
"CREATE_CHAR_CLASS_SHAMAN_FEMALE_OFF",
"CREATE_CHAR_CLASS_EXTREME_MALE_OFF",
"CREATE_CHAR_CLASS_EXTREME_FEMALE_OFF",
"CREATE_CHAR_CLASS_BRAWLER_FEMALE_OFF",
"CREATE_CHAR_CLASS_SWORDMAN_FEMALE_OFF",
"CREATE_CHAR_CLASS_ARCHER_MALE_OFF",
"CREATE_CHAR_CLASS_SHAMAN_MALE_OFF",
"CREATE_CHAR_CLASS_SCIENTIST_MALE_OFF",
"CREATE_CHAR_CLASS_SCIENTIST_FEMALE_OFF",
"CREATE_CHAR_CLASS_ASSASSIN_MALE_OFF",
"CREATE_CHAR_CLASS_ASSASSIN_FEMALE_OFF",
"CREATE_CHAR_CLASS_TRICKER_MALE_OFF",
"CREATE_CHAR_CLASS_TRICKER_FEMALE_OFF",

};

std::string strClass_On[GLCI_NUM_8CLASS] =
{
"CREATE_CHAR_CLASS_BRAWLER_MALE_ON",
"CREATE_CHAR_CLASS_SWORDMAN_MALE_ON",
"CREATE_CHAR_CLASS_ARCHER_FEMALE_ON",
"CREATE_CHAR_CLASS_SHAMAN_FEMALE_ON",
"CREATE_CHAR_CLASS_EXTREME_MALE_ON",
"CREATE_CHAR_CLASS_EXTREME_FEMALE_ON",
"CREATE_CHAR_CLASS_BRAWLER_FEMALE_ON",
"CREATE_CHAR_CLASS_SWORDMAN_FEMALE_ON",
"CREATE_CHAR_CLASS_ARCHER_MALE_ON",
"CREATE_CHAR_CLASS_SHAMAN_MALE_ON",
"CREATE_CHAR_CLASS_SCIENTIST_MALE_ON",
"CREATE_CHAR_CLASS_SCIENTIST_FEMALE_ON",
"CREATE_CHAR_CLASS_ASSASSIN_MALE_ON",
"CREATE_CHAR_CLASS_ASSASSIN_FEMALE_ON",
"CREATE_CHAR_CLASS_TRICKER_MALE_ON",
"CREATE_CHAR_CLASS_TRICKER_FEMALE_ON",
};

std::string strClass_Box[GLCI_NUM_8CLASS] =
{
"CREATE_CHAR_CLASS_BRAWLER_MALE_BOX",
"CREATE_CHAR_CLASS_SWORDMAN_MALE_BOX",
"CREATE_CHAR_CLASS_ARCHER_FEMALE_BOX",
"CREATE_CHAR_CLASS_SHAMAN_FEMALE_BOX",
"CREATE_CHAR_CLASS_EXTREME_MALE_BOX",
"CREATE_CHAR_CLASS_EXTREME_FEMALE_BOX",
"CREATE_CHAR_CLASS_BRAWLER_FEMALE_BOX",
"CREATE_CHAR_CLASS_SWORDMAN_FEMALE_BOX",
"CREATE_CHAR_CLASS_ARCHER_MALE_BOX",
"CREATE_CHAR_CLASS_SHAMAN_MALE_BOX",
"CREATE_CHAR_CLASS_SCIENTIST_MALE_BOX",
"CREATE_CHAR_CLASS_SCIENTIST_FEMALE_BOX",
"CREATE_CHAR_CLASS_ASSASSIN_MALE_BOX",
"CREATE_CHAR_CLASS_ASSASSIN_FEMALE_BOX",
"CREATE_CHAR_CLASS_TRICKER_MALE_BOX",
"CREATE_CHAR_CLASS_TRICKER_FEMALE_BOX",
};

std::string strClass_Focus[GLCI_NUM_8CLASS] =
{
"CREATE_CHAR_CLASS_BRAWLER_MALE_FOCUS",
"CREATE_CHAR_CLASS_SWORDMAN_MALE_FOCUS",
"CREATE_CHAR_CLASS_ARCHER_FEMALE_FOCUS",
"CREATE_CHAR_CLASS_SHAMAN_FEMALE_FOCUS",
"CREATE_CHAR_CLASS_EXTREME_MALE_FOCUS",
"CREATE_CHAR_CLASS_EXTREME_FEMALE_FOCUS",
"CREATE_CHAR_CLASS_BRAWLER_FEMALE_FOCUS",
"CREATE_CHAR_CLASS_SWORDMAN_FEMALE_FOCUS",
"CREATE_CHAR_CLASS_ARCHER_MALE_FOCUS",
"CREATE_CHAR_CLASS_SHAMAN_MALE_FOCUS",
"CREATE_CHAR_CLASS_SCIENTIST_MALE_FOCUS",
"CREATE_CHAR_CLASS_SCIENTIST_FEMALE_FOCUS",
"CREATE_CHAR_CLASS_ASSASSIN_MALE_FOCUS",
"CREATE_CHAR_CLASS_ASSASSIN_FEMALE_FOCUS",
"CREATE_CHAR_CLASS_TRICKER_MALE_FOCUS",
"CREATE_CHAR_CLASS_TRICKER_FEMALE_FOCUS",
};

for( int i=0; i<GLCI_NUM_8CLASS; ++i ){

m_pTypeClass_Off = new CUIControl;
m_pTypeClass_Off->CreateSub ( this, strClass_Off.c_str() );
m_pTypeClass_Off->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeClass_Off );

m_pTypeClass_On = new CUIControl;
m_pTypeClass_On->CreateSub ( this, strClass_On.c_str() );
m_pTypeClass_On->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeClass_On );

m_pTypeClass_Box = new CUIControl;
m_pTypeClass_Box->CreateSub ( this, strClass_Box.c_str() );
m_pTypeClass_Box->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeClass_Box );

m_pTypeClass_Focus = new CUIControl;
m_pTypeClass_Focus->CreateSub ( this, strClass_Focus.c_str(), UI_FLAG_XSIZE | UI_FLAG_YSIZE, CHARACTER_CREATE_PAGE_TYPE_CLASS_MALE_BRAWLER + i );
m_pTypeClass_Focus->SetVisibleSingle ( FALSE );
RegisterControl ( m_pTypeClass_Focus );
}

ResetAll();
}

void CCharacterCreatePageSet::TranslateUIMessage ( UIGUID ControlID, DWORD dwMsg )
{
CUIGroup::TranslateUIMessage ( ControlID, dwMsg );


switch( ControlID )
{
case CHARACTER_CREATE_PAGE_TYPE_SCHOOL_0:
case CHARACTER_CREATE_PAGE_TYPE_SCHOOL_1:
case CHARACTER_CREATE_PAGE_TYPE_SCHOOL_2:
{
if ( CHECK_MOUSE_IN ( dwMsg ) ) {
int nSelect = ControlID - CHARACTER_CREATE_PAGE_TYPE_SCHOOL_0;
SchoolMouseIn( nSelect );

if ( CHECK_MOUSEIN_LBUPLIKE ( dwMsg ) ){
SchoolSelect( nSelect );
}
}

}break;

case CHARACTER_CREATE_PAGE_TYPE_SEX_MALE:
case CHARACTER_CREATE_PAGE_TYPE_SEX_FEMALE:
{
if ( CHECK_MOUSE_IN ( dwMsg ) ) {
int nSelect = ControlID - CHARACTER_CREATE_PAGE_TYPE_SEX_MALE;
SexMouseIn( nSelect );

if ( CHECK_MOUSEIN_LBUPLIKE ( dwMsg ) ){
SexSelect( nSelect );
}
}
}break;

case CHARACTER_CREATE_PAGE_TYPE_CLASS_MALE_BRAWLER:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_MALE_SWORDSMAN:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_FEMALE_ARCHER:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_FEMALE_SHAMAN:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_MALE_EXTREME:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_FEMALE_EXTREME:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_FEMALE_BRAWLER:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_FEMALE_SWORDSMAN:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_MALE_ARCHER:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_MALE_SHAMAN:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_MALE_GUNNER:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_FEMALE_GUNNER:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_MALE_ASSASSIN:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_FEMALE_ASSASSIN:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_MALE_TRICKER:
case CHARACTER_CREATE_PAGE_TYPE_CLASS_FEMALE_TRICKER:
{
if ( CHECK_MOUSE_IN ( dwMsg ) ) {
int nSelect = ControlID - CHARACTER_CREATE_PAGE_TYPE_CLASS_MALE_BRAWLER;
ClassMouseIn( nSelect );

if ( CHECK_MOUSEIN_LBUPLIKE ( dwMsg ) ){
ClassSelect( nSelect );
}
}
}break;

};
}

void CCharacterCreatePageSet::Update ( int x, int y, BYTE LB, BYTE MB, BYTE RB, int nScroll, float fElapsedTime, BOOL bFirstControl )
{
for( int i=0; i<GLSCHOOL_NUM; ++i ){
m_pTypeSchool_Box->SetVisibleSingle( FALSE );
}

for( int i=0; i<2; ++i ){
m_pTypeSex_Box->SetVisibleSingle( FALSE );
}

for( int i=0; i<GLCI_NUM_8CLASS; ++i ){
m_pTypeClass_Box->SetVisibleSingle( FALSE );
}

CUIGroup::Update( x, y, LB, MB, RB, nScroll, fElapsedTime, bFirstControl );

if ( m_nSelectedSchool != m_nSelectedLastSchool ||
m_nSelectedSex != m_nSelectedLastSex ||
m_nSelectedClass != m_nSelectedLastClass )
{
UpdateUI();

m_nSelectedLastSchool = m_nSelectedSchool;
m_nSelectedLastSex = m_nSelectedSex;
m_nSelectedLastClass = m_nSelectedClass;
}
}

void CCharacterCreatePageSet::ResetAll()
{
m_nSelectedSchool = -1;
m_nSelectedSex = -1;
m_nSelectedClass = -1;

for( int i=0; i<GLSCHOOL_NUM; ++i ){
m_pTypeSchool_Off->SetVisibleSingle( TRUE );
m_pTypeSchool_On->SetVisibleSingle( FALSE );
m_pTypeSchool_Box->SetVisibleSingle( FALSE );
m_pTypeSchool_Focus->SetVisibleSingle( TRUE );
}

for( int i=0; i<2; ++i ){
m_pTypeSex_Off->SetVisibleSingle( TRUE );
m_pTypeSex_On->SetVisibleSingle( FALSE );
m_pTypeSex_Box->SetVisibleSingle( FALSE );
m_pTypeSex_Focus->SetVisibleSingle( TRUE );
}

for( int i=0; i<GLCI_NUM_8CLASS; ++i ){
m_pTypeClass_On->SetVisibleSingle( FALSE );
m_pTypeClass_Box->SetVisibleSingle( FALSE );
}

for( int i=0; i<GLCI_NUM_8CLASS; ++i ){
BOOL bVisible = ( i == GLCI_BRAWLER_M ||
i == GLCI_SWORDSMAN_M ||
i == GLCI_ARCHER_M ||
i == GLCI_SHAMAN_M ||
i == GLCI_EXTREME_M ||
i == GLCI_GUNNER_M ||
i == GLCI_ASSASSIN_M||
i == GLCI_TRICKER_M );

if ( i == GLCI_EXTREME_M && !COuterInterface::GetInstance().GetCharRemainExM() ){
bVisible = FALSE;
}

if ( i == GLCI_EXTREME_W && !COuterInterface::GetInstance().GetCharRemainExW() ){
bVisible = FALSE;
}

if ( (i == GLCI_GUNNER_M || i == GLCI_GUNNER_W ) && !m_bCreateClassGunner ){ //enable gunner
bVisible = FALSE;
}

if ( (i == GLCI_ASSASSIN_M || i == GLCI_ASSASSIN_W ) && !m_bCreateClassAssassin ){ //enable assassin
bVisible = FALSE;
}

if ( (i == GLCI_TRICKER_M || i == GLCI_TRICKER_W ) /*&& !m_bCreateClassMagician*/ ){
bVisible = FALSE;
}

m_pTypeClass_Off->SetVisibleSingle( bVisible );
m_pTypeClass_Focus->SetVisibleSingle( bVisible );
}
}

void CCharacterCreatePageSet::UpdateUI()
{
for( int i=0; i<GLSCHOOL_NUM; ++i ){
m_pTypeSchool_Off->SetVisibleSingle( TRUE );
m_pTypeSchool_On->SetVisibleSingle( FALSE );
}

for( int i=0; i<2; ++i ){
m_pTypeSex_Off->SetVisibleSingle( TRUE );
m_pTypeSex_On->SetVisibleSingle( FALSE );
}

for( int i=0; i<GLCI_NUM_8CLASS; ++i ){
BOOL bVisible = ( i == GLCI_BRAWLER_M ||
i == GLCI_SWORDSMAN_M ||
i == GLCI_ARCHER_M ||
i == GLCI_SHAMAN_M ||
i == GLCI_EXTREME_M ||
i == GLCI_GUNNER_M ||
i == GLCI_ASSASSIN_M ||
i == GLCI_TRICKER_M );

if ( i == GLCI_EXTREME_M && !COuterInterface::GetInstance().GetCharRemainExM() ){
bVisible = FALSE;
}

if ( i == GLCI_EXTREME_W && !COuterInterface::GetInstance().GetCharRemainExW() ){
bVisible = FALSE;
}

if ( (i == GLCI_GUNNER_M || i == GLCI_GUNNER_W ) && !m_bCreateClassGunner ){
bVisible = FALSE;
}

if ( (i == GLCI_ASSASSIN_M || i == GLCI_ASSASSIN_W ) && !m_bCreateClassAssassin ){
bVisible = FALSE;
}

if ( (i == GLCI_TRICKER_M || i == GLCI_TRICKER_W ) /*&& !m_bCreateClassMagician*/ ){
bVisible = FALSE;
}

m_pTypeClass_On->SetVisibleSingle( FALSE );
m_pTypeClass_Off->SetVisibleSingle( bVisible );
m_pTypeClass_Focus->SetVisibleSingle( bVisible );
}

BOOL bValidSchool = FALSE;
BOOL bValidSex = FALSE;
BOOL bValidClass = FALSE;

if ( m_nSelectedSchool >= 0 && m_nSelectedSchool < GLSCHOOL_NUM )
{
m_pTypeSchool_On[m_nSelectedSchool]->SetVisibleSingle( TRUE );
bValidSchool = TRUE;
}

if ( m_nSelectedSex >= 0 && m_nSelectedSex < 2 )
{
m_pTypeSex_On[m_nSelectedSex]->SetVisibleSingle( TRUE );
bValidSex = TRUE;

for( int i=0; i<GLCI_NUM_8CLASS; ++i ){
m_pTypeClass_Off->SetVisibleSingle( FALSE );
m_pTypeClass_Focus->SetVisibleSingle( FALSE );
}

int nMale[GLCI_NUM_8CLASS/2] = { GLCI_BRAWLER_M, GLCI_SWORDSMAN_M, GLCI_ARCHER_M, GLCI_SHAMAN_M, GLCI_EXTREME_M, GLCI_GUNNER_M, GLCI_ASSASSIN_M, GLCI_TRICKER_M };
int nFemale[GLCI_NUM_8CLASS/2] = { GLCI_BRAWLER_W, GLCI_SWORDSMAN_W, GLCI_ARCHER_W, GLCI_SHAMAN_W, GLCI_EXTREME_W, GLCI_GUNNER_W, GLCI_ASSASSIN_W, GLCI_TRICKER_W };

for ( int i=0; i<(GLCI_NUM_8CLASS/2); ++ i ){
int nSelect = (m_nSelectedSex == 1)? nFemale : nMale;
if ( nSelect == GLCI_EXTREME_M && !COuterInterface::GetInstance().GetCharRemainExM() ) continue;
if ( nSelect == GLCI_EXTREME_W && !COuterInterface::GetInstance().GetCharRemainExW() ) continue;

if ( nSelect == GLCI_GUNNER_M && !m_bCreateClassGunner ) continue;
if ( nSelect == GLCI_GUNNER_W && !m_bCreateClassGunner ) continue;

if ( nSelect == GLCI_ASSASSIN_M && !m_bCreateClassAssassin ) continue;
if ( nSelect == GLCI_ASSASSIN_W && !m_bCreateClassAssassin ) continue;

if ( nSelect == GLCI_TRICKER_M /*&& !m_bCreateClassMagician*/ ) continue;
if ( nSelect == GLCI_TRICKER_W /*&& !m_bCreateClassMagician */ ) continue;

m_pTypeClass_Off[nSelect]->SetVisibleSingle( TRUE );
m_pTypeClass_Focus[nSelect]->SetVisibleSingle( TRUE );
}
}

if ( m_nSelectedClass >= 0 && m_nSelectedClass < GLCI_NUM_8CLASS )
{
m_pTypeClass_On[m_nSelectedClass]->SetVisibleSingle( TRUE );
bValidClass = TRUE;
}

COuterInterface::GetInstance().GetCharacterCreateInfo()->SetData( m_nSelectedSchool, m_nSelectedSex, m_nSelectedClass );

if ( m_nSelectedClass == GLCI_EXTREME_M && !COuterInterface::GetInstance().GetCharRemainExM() ){
bValidClass = FALSE;
}

if ( m_nSelectedClass == GLCI_EXTREME_W && !COuterInterface::GetInstance().GetCharRemainExW() ){
bValidClass = FALSE;
}

if ( ( m_nSelectedClass == GLCI_GUNNER_M || m_nSelectedClass == GLCI_GUNNER_W ) && !m_bCreateClassGunner ){
bValidClass = FALSE;
}

if ( ( m_nSelectedClass == GLCI_ASSASSIN_M || m_nSelectedClass == GLCI_ASSASSIN_W ) && !m_bCreateClassAssassin ){
bValidClass = FALSE;
}

if ( ( m_nSelectedClass == GLCI_TRICKER_M || m_nSelectedClass == GLCI_TRICKER_W ) /*&& !m_bCreateClassMagician*/ ){
bValidClass = FALSE;
}

if ( bValidSchool && bValidSex && bValidClass )
{
DxGlobalStage::GetInstance().GetLobyStage()->SelCharSchool( m_nSelectedSchool );
DxGlobalStage::GetInstance().GetLobyStage()->SelCharClass( m_nSelectedClass );
DxGlobalStage::GetInstance().GetLobyStage()->SetStyleStep( TRUE );
}else{
DxGlobalStage::GetInstance().GetLobyStage()->SetStyleStep( FALSE );
}
}

void CCharacterCreatePageSet::SchoolSelect( int nSelect )
{
if ( nSelect < 0 ) return;
if ( nSelect >= GLSCHOOL_NUM ) return;
if ( nSelect == m_nSelectedSchool ) return;

m_nSelectedSchool = nSelect;
m_nSelectedSex = -1;
m_nSelectedClass = -1;
}

void CCharacterCreatePageSet::SexSelect( int nSelect )
{
if ( nSelect < 0 ) return;
if ( nSelect >= 2 ) return;
if ( nSelect == m_nSelectedSex ) return;

if ( m_nSelectedSchool < 0 || m_nSelectedSchool >= GLSCHOOL_NUM )
{
DoModalOuter ( ID2GAMEEXTEXT ( "NEW_CHAR_SELECT_SCHOOL_ERROR" ), MODAL_INFOMATION, OK );
return;
}

m_nSelectedSex = nSelect;
m_nSelectedClass = -1;
}

void CCharacterCreatePageSet::ClassSelect( int nSelect )
{
if ( nSelect < 0 ) return;
if ( nSelect >= GLCI_NUM_8CLASS ) return;

if ( m_nSelectedSchool < 0 || m_nSelectedSchool >= GLSCHOOL_NUM )
{
DoModalOuter ( ID2GAMEEXTEXT ( "NEW_CHAR_SELECT_SCHOOL_ERROR" ), MODAL_INFOMATION, OK );
return;
}

if ( m_nSelectedSex < 0 || m_nSelectedSex >= 2 )
{
DoModalOuter ( ID2GAMEEXTEXT ( "NEW_CHAR_SELECT_SEX_ERROR" ), MODAL_INFOMATION, OK );
return;
}

m_nSelectedClass = nSelect;
}

void CCharacterCreatePageSet::SchoolMouseIn( int nSelect )
{
if ( nSelect < 0 ) return;
if ( nSelect >= GLSCHOOL_NUM ) return;
m_pTypeSchool_Box[nSelect]->SetVisibleSingle( TRUE );
}

void CCharacterCreatePageSet::SexMouseIn( int nSelect )
{
if ( nSelect < 0 ) return;
if ( nSelect >= 2 ) return;
m_pTypeSex_Box[nSelect]->SetVisibleSingle( TRUE );
}

void CCharacterCreatePageSet::ClassMouseIn( int nSelect )
{
if ( nSelect < 0 ) return;
if ( nSelect >= GLCI_NUM_8CLASS ) return;
m_pTypeClass_Box[nSelect]->SetVisibleSingle( TRUE );
}
 
Last edited:
Banned
Banned
Joined
Apr 19, 2022
Messages
6
Reaction score
0
Hello, please does anyone has working BabyRan style bin files with client? I just need to compare in game functionalities in DirectX with Juver source compatible client.
 
Initiate Mage
Joined
Apr 26, 2020
Messages
4
Reaction score
0
I'm Hoping also some one will help us regarding this Problem but no one cares mostly people here asking for money.
 
Banned
Banned
Joined
Apr 23, 2022
Messages
15
Reaction score
0
Need help in emulator please...
I already put the period initialization file on the client but still I'm having period file open fail.

 
Newbie Spellweaver
Joined
Apr 12, 2022
Messages
68
Reaction score
10
im testing topup always error, please help me

 
Back
Top