Neo Source

When i click vehicle and pet tap its bugtrap error
How to fix sir

1 - Neo Source - RaGEZONE Forums 2 - Neo Source - RaGEZONE Forums 3 - Neo Source - RaGEZONE Forums

Code:
#include "StdAfx.h"#include "./CharacterWindow.h"
#include "DxGlobalStage.h"
#include "./GLCharClient.h"
#include "./GLFactEffect.h"
#include "./GLGaeaClient.h"
#include "./GLItemMan.h"
#include "./GLStrikeM.h"


#include "../EngineUILib/GUInterface/BasicTextBox.h"
#include "../EngineUILib/GUInterface/BasicProgressBar.h"
#include "../EngineUILib/GUInterface/BasicButton.h"
#include "../EngineLib/DxCommon/d3dfont.h"
#include "GLCharacter.h"
#include "GLChar.h"
#include "GLCharData.h"
#include "DxGameStage.h"
#include "../RanClientUILib/Interface/InnerInterface.h"
#include "../../EngineLib/DxCommon/DxShadowMap.h"
#include "../../EngineLib/DxEffect/Char/DxEffCharData.h"
#include "../../EngineLib/DxEffect/Single/DxEffGroupPlayer.h"
#include "../RanClientUILib/Interface/ItemShopIconMan.h"


#include "../Interface/BasicTextButton.h"
#include "../Interface/UITextControl.h"
#include "../Interface/GameTextControl.h"
#include "../RanClientLib/G-Logic/GLGaeaClient.h"
#include "BasicComboBox.h"
#include "BasicComboBoxRollOver.h"


#include "DxEffectMan.h"
#include "DxEnvironment.h"
#include "DxSurfaceTex.h"
#include "DxGlowMan.h"
#include "DxPostProcess.h"
#include "DxCubeMap.h"
#include "DxSkyMan.h"
#include "DxEffGroupPlayer.h"
#include "../EngineLib/DxCommon/DxViewPort.h"
#include "../EngineLib/DxCommon/DxFontMan.h"
#include "../EngineLib/DxCommon/DxInputDevice.h"
#include "../EngineLib/DxCommon/DxLightMan.h"
#include "DxSkinChar.h"
#include "DxClubMan.h"


#include "BasicLineBox.h"
#include "BasicTextBoxEx.h"
#include "InventoryPageWear.h"
#include "InventoryPageWearEx.h"
#include "VehicleWindow.h"
#include "PetWindow.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#endif


CCharacterWindow::CCharacterWindow () :
    m_pNameText ( NULL ),
    m_pLevelText ( NULL ),
    
    m_pButtonOk ( NULL ),
    m_pButtonCancel ( NULL ),


    m_pAButton ( NULL ),
    m_pALHandSlot ( NULL ),
    m_pARHandSlot ( NULL ),
    m_pBButton ( NULL ),
    m_pBLHandSlot ( NULL ),
    m_pBRHandSlot ( NULL ),


    m_pPageWear( NULL ),
    m_pPageWearEx( NULL ),
    m_pPetWindow( NULL ),
    m_pPointText ( NULL ),
    
    //Left
    m_pPowText ( NULL ),
    m_pDexText ( NULL ),
    m_pSpiText ( NULL ),
    //m_pIntText ( NULL ),
    m_pStrText ( NULL ),
    m_pStaText ( NULL ),


    //Right
    m_pPowTextUp ( NULL ),
    m_pDexTextUp ( NULL ),
    m_pSpiTextUp ( NULL ),
    m_pIntTextUp ( NULL ),
    m_pStrTextUp ( NULL ),
    m_pStaTextUp ( NULL ),
    m_pClubText ( NULL ), //by J.A Dev for guild name
    m_pBadgeText ( NULL ),
    m_pSchoolText ( NULL ),
    m_pCopyRightText ( NULL ),
    m_pPKStateText ( NULL ),


    m_pNewPow ( 0 ),
    m_pNewDex ( 0 ),
    m_pNewSpi ( 0 ),
    m_pNewStr ( 0 ),
    m_pNewSta ( 0 ),
    m_pNewPoint ( 0 ),
    nIndex ( 0 ),


    //Left
    m_pDamageHighText ( NULL ), //ความแรงสูงสุด
    m_pDamageLowText ( NULL ),    //ความแรงต่ำสุด
    m_pDefenseText ( NULL ),    //ป้องกัน
    m_pReqPaText ( NULL ),        //ถนัด
    m_pReqSaText ( NULL ),        //เล็ง
    m_pReqMaText ( NULL ),        //พลังงาน
    m_pHitRateText ( NULL ),    //โจมตี
    m_pAvoidRateText ( NULL ),    //หลบหลีก
    m_pHPText ( NULL ),            //HP
    m_pMPText ( NULL ),            //MP
    m_pSPText ( NULL ),            //SP


    //Right
    m_pDamageHighTextUp ( NULL ), //ความแรงสูงสุด
    m_pDamageLowTextUp ( NULL ),    //ความแรงต่ำสุด
    m_pDefenseTextUp ( NULL ),    //ป้องกัน
    m_pReqPaTextUp ( NULL ),        //ถนัด
    m_pReqSaTextUp ( NULL ),        //เล็ง
    m_pReqMaTextUp ( NULL ),        //พลังงาน
    m_pHitRateTextUp ( NULL ),    //โจมตี
    m_pAvoidRateTextUp ( NULL ),    //หลบหลีก
    m_pHPTextUp ( NULL ),            //HP
    m_pMPTextUp ( NULL ),            //MP
    m_pSPTextUp ( NULL ),            //SP


    m_pFireText ( NULL ),        //ไฟ
    m_pColdText ( NULL ),        //น้ำแข็ง
    m_pElectricText ( NULL ),    //ไฟฟ้า
    m_pPoisonText ( NULL ),        //พิษ
    m_pSpiritText ( NULL ),        //เวทย์
    m_pGradeText ( NULL ),        //ชื่อเสียง
    m_pGradeValue ( NULL ),        //ชื่อเสียง
    m_pBrightSlider ( NULL ),    //ความดี
    m_pActivityPointText ( NULL ),    //ผลงาน
    m_pActivityPointValue ( NULL ),    //ผลงาน
    m_pAcademy_Department ( NULL ),    //สถาบัน    //สายอาชชีพ
    m_pd3dDevice ( NULL ),
    m_pMobileText( NULL ),
    m_pSkinChar(NULL),


    m_vMax(6,20,6),
    m_vMin(-6,0,-6),
    m_fHeight(20.f)
{
    memset ( m_pPageButton, 0, sizeof ( m_pPageButton ) );
    memset ( m_pPageButton, 0, sizeof ( CBasicTextButton* ) * nMAXPAGENEW );


    memset ( m_pButtonPlus, 0, sizeof ( m_pButtonPlus ) );
    memset ( m_pButtonMinus, 0, sizeof ( m_pButtonMinus ) );
    D3DXMatrixIdentity( &m_matTrans );
}


CCharacterWindow::~CCharacterWindow ()
{
}




CBasicTextBox* CCharacterWindow::CreateStaticControl ( char* szControlKeyword, CD3DFontPar* pFont, int nAlign, const UIGUID& cID )
{
    CBasicTextBox* pStaticText = new CBasicTextBox;
    pStaticText->CreateSub ( this, szControlKeyword, UI_FLAG_DEFAULT, cID );
    pStaticText->SetFont ( pFont );
    pStaticText->SetTextAlign ( nAlign );    
    RegisterControl ( pStaticText );


    return pStaticText;
}


CBasicTextButton*  CCharacterWindow::CreateTextButton23 ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE23;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON23", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::RADIO_FLIP, szText ,_DEFAULT_FONT_SHADOW_FLAG );
    RegisterControl ( pTextButton );
    return pTextButton;
}


CBasicTextButton*  CCharacterWindow::CreateTextButton24 ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE24;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON24", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::CLICK_FLIP, szText , _DEFAULT_FONT_SHADOW_FLAG );
    RegisterControl ( pTextButton );
    return pTextButton;
}


CBasicTextButton*  CCharacterWindow::CreateTextButton25 ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE25;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON25", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::CLICK_FLIP, szText , _DEFAULT_FONT_SHADOW_FLAG );
    RegisterControl ( pTextButton );
    return pTextButton;
}


void CCharacterWindow::CreateSubControl ()
{
    CD3DFontPar* pFont6Shadow = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 7, _DEFAULT_FONT_SHADOW_FLAG );
    CD3DFontPar* pFont8Shadow = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 8, _DEFAULT_FONT_SHADOW_FLAG );
    CD3DFontPar* pFont = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 9, _DEFAULT_FONT_SHADOW_FLAG );
    CD3DFontPar* pFont10 = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 10, _DEFAULT_FONT_SHADOW_FLAG );


    const EMCHARCLASS emCharClass = DxGlobalStage::GetInstance().GetGameStage()->GetCharJoinData().m_CharData2.m_emClass;
    const int nClassType = CharClassToIndex ( emCharClass );


    const int nAlignLeft = TEXT_ALIGN_LEFT;
    const int nAlignCenter = TEXT_ALIGN_CENTER_X;        
    const DWORD& dwSilver = NS_UITEXTCOLOR::SILVER;
    const DWORD& dwWhite = NS_UITEXTCOLOR::WHITE;
    const DWORD& dwSubTitle = NS_UITEXTCOLOR::PALEGOLDENROD;


    //พื้นหลังสีขาว
    {
        m_bg_white = new CUIControl;
        m_bg_white->CreateSub ( this, "RNCHARACTER_WINDOW_REGION", UI_FLAG_DEFAULT);    
        m_bg_white->SetVisibleSingle ( TRUE );
        RegisterControl ( m_bg_white );
    }


    CString    strPageKeyword[nMAXPAGENEW] = 
    {
        "RNCHARACTER_WINDOW_CHAR_TAP",
        "RNCHARACTER_WINDOW_VEHICLE_TAP",
        "RNCHARACTER_WINDOW_PET_TAP",
    };        


        CBasicComboBox* pComboBox = NULL;
        CBasicComboBoxRollOver*    pComboBoxRollOver = NULL;


        pComboBox = new CBasicComboBox;
        pComboBox->CreateSub ( this, "BASIC_COMBOBOX", UI_FLAG_XSIZE, NICKNAME_COMBO_OPEN );
        pComboBox->CreateBaseComboBox ( "NICKNAME_COMBO_OPEN" );
        RegisterControl ( pComboBox );
        m_pComboBoxNickNameOpen = pComboBox;


        pComboBoxRollOver = new CBasicComboBoxRollOver;
        pComboBoxRollOver->CreateSub ( this, "BASIC_COMBOBOX_ROLLOVER", UI_FLAG_XSIZE | UI_FLAG_YSIZE, NICKNAME_COMBO_ROLLOVER );
        pComboBoxRollOver->CreateBaseComboBoxRollOver ( "NICKNAME_COMBO_ROLLOVER" );
        pComboBoxRollOver->SetVisibleSingle ( FALSE );
        RegisterControl ( pComboBoxRollOver );
        m_pComboBoxNickNameRollOver = pComboBoxRollOver;


    for ( int i = 0; i < nMAXPAGENEW; i++ )
    {        
        m_pPageButton[i] = CreateTextButton23 ( strPageKeyword[i].GetString (), RNCHARACTER_WINDOW_CHAR_TAP + i, (char*)ID2GAMEWORD ( "RNCHARACTER_WINDOW_CHAR_TAP", i ) );
    }
        


        
    {    
        // พื้นหลัง ตัวละคร
        m_pBackLine1 = new CBasicLineBox;
        m_pBackLine1->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pBackLine1->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_EQUIP_REGION" );
        RegisterControl ( m_pBackLine1 );


        //พื้นหลัง ข้อมูลส่วนล่าง
        m_pBackLine2 = new CBasicLineBox;
        m_pBackLine2->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pBackLine2->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_SCHOOL_REGION" );
        RegisterControl ( m_pBackLine2 );
    }


    {
        m_pStatusLine1 = new CBasicLineBox;
        m_pStatusLine1->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine1->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT1_REGION" );
        RegisterControl ( m_pStatusLine1 );    
    
        m_pStatusLine2 = new CBasicLineBox;
        m_pStatusLine2->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine2->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT2_REGION" );
        RegisterControl ( m_pStatusLine2 );    
    
        m_pStatusLine3 = new CBasicLineBox;
        m_pStatusLine3->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine3->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT3_REGION" );
        RegisterControl ( m_pStatusLine3 );
    }


    {
        m_pStatusLine4 = new CBasicLineBox;
        m_pStatusLine4->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine4->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT4_REGION" );
        RegisterControl ( m_pStatusLine4 );


        m_pStatusLine5 = new CBasicLineBox;
        m_pStatusLine5->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine5->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT5_REGION" );
        RegisterControl ( m_pStatusLine5 );


        m_pStatusLine6 = new CBasicLineBox;
        m_pStatusLine6->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine6->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT6_REGION" );
        RegisterControl ( m_pStatusLine6 );
    }


    {
        m_pStatusLine7 = new CBasicLineBox;
        m_pStatusLine7->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine7->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT7_REGION" );
        RegisterControl ( m_pStatusLine7 );


        m_pStatusLine8 = new CBasicLineBox;
        m_pStatusLine8->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine8->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT8_REGION" );
        RegisterControl ( m_pStatusLine8 );


        m_pStatusLine9 = new CBasicLineBox;
        m_pStatusLine9->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine9->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT9_REGION" );
        RegisterControl ( m_pStatusLine9 );


        CreateControl ( "CHARACTER_REGIST_FIRE_ICON" );
        CreateControl ( "CHARACTER_REGIST_ICE_ICON" );
        CreateControl ( "CHARACTER_REGIST_ELECTRIC_ICON" );
        CreateControl ( "CHARACTER_REGIST_POISON_ICON" );
        CreateControl ( "CHARACTER_REGIST_SPIRIT_ICON" );
    }


        if( nClassType == GLCI_FIGHTER_M || nClassType == GLCI_FIGHTER_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_BRAWLER )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }
    else if( nClassType == GLCI_ARMS_M || nClassType == GLCI_ARMS_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SWORDSMAN )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
    
            SetVisiblePage ( 0 );
        }
    }    
    else if( nClassType == GLCI_ARCHER_M || nClassType == GLCI_ARCHER_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ARCHER)
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_SPIRIT_M || nClassType == GLCI_SPIRIT_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SHAMMAN )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_EXTREME_M || nClassType == GLCI_EXTREME_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_EXTREME )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_SCIENCE_M || nClassType == GLCI_SCIENCE_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SCIENCE )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_ASSASSIN_M || nClassType == GLCI_ASSASSIN_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ASSASSIN )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }


        m_pVehicleWindow = new CVehicleWindow;
        m_pVehicleWindow->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_VEHICLEWINDOW );
        m_pVehicleWindow->CreateSubControl ();
        RegisterControl ( m_pVehicleWindow );
        
        m_pPetWindow = new CPetWindow;
        m_pPetWindow->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_PETWINDOW );
        m_pPetWindow->CreateSubControl ();
        RegisterControl ( m_pPetWindow );
        SetVisibleSingle( 0 );
        


    {
        m_pClubMark = CreateControl ( "CLUB_WINDOW_MARK_CHARACTERWINDOW" );        
        m_pClubMark->SetUseRender ( TRUE );
    }
    
    m_pAcademy_Department = CreateStaticControl ( "RNCHARACTER_WINDOW_ACADEMY_DEPARTMENT_TEXT", pFont, nAlignLeft );


    m_pSchoolText = CreateStaticControl ( "CHARACTER_SCHOOL_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );


    m_pCopyRightText = CreateStaticControl ( "CHARACTER_COPYRIGHT_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );


    m_pPKStateText = CreateStaticControl ( "CHARACTER_PKSTATE_TEXT", pFont, nAlignLeft );
    
    CBasicTextBox* pTextBox = CreateStaticControl ( "RNCHARACTER_WINDOW_BRIGHT_TEXT", pFont8Shadow, nAlignLeft );
    pTextBox->AddText ( ID2GAMEWORD("CHARACTER_SOCIAL_STATIC", 5), dwWhite );


    m_pGradeText = CreateStaticControl ( "RNCHARACTER_WINDOW_CONTRIBUTION_POINT_TEXT", pFont8Shadow, nAlignLeft );
    m_pGradeValue = CreateStaticControl ( "RNCHARACTER_WINDOW_CONTRIBUTION_POINT_VALUE", pFont8Shadow, nAlignLeft );
    
    m_pActivityPointText = CreateStaticControl ( "RNCHARACTER_WINDOW_ACTIVITY_POINT_TEXT", pFont8Shadow, nAlignLeft );
    m_pActivityPointValue = CreateStaticControl ( "RNCHARACTER_WINDOW_ACTIVITY_POINT_VALUE", pFont8Shadow, nAlignLeft );
    
    m_pBrightFrame = CreateControl ( "RNCHARACTER_WINDOW_BRIGHTBAR",CHARACTER_BIRGHTER );        
    m_pBrightSlider = CreateControl ( "RNCHARACTER_WINDOW_BRIGHTBAR_THUMB" );


    m_pPointTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POINT_TEXT", pFont, nAlignLeft );
    m_pPointText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POINT_VALUE", pFont, nAlignLeft );


    m_pPointTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_POINT"), dwWhite );


    m_pPowTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POW_TEXT", pFont6Shadow, nAlignLeft );
    m_pDexTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_DEX_TEXT", pFont6Shadow, nAlignLeft );
    m_pSpiTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_SPI_TEXT", pFont6Shadow, nAlignLeft );
    m_pStrTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STR_TEXT", pFont6Shadow, nAlignLeft );
    m_pStaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STA_TEXT", pFont6Shadow, nAlignLeft );


    m_pPowTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 0), dwWhite );
    m_pDexTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 1), dwWhite );
    m_pSpiTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 2), dwWhite );
    m_pStrTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 4), dwWhite );
    m_pStaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 5), dwWhite );


    m_pPowText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POW_VALUE", pFont6Shadow, nAlignCenter );
    m_pDexText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_DEX_VALUE", pFont6Shadow, nAlignCenter );
    m_pSpiText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_SPI_VALUE", pFont6Shadow, nAlignCenter );
    m_pStrText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STR_VALUE", pFont6Shadow, nAlignCenter );
    m_pStaText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STA_VALUE", pFont6Shadow, nAlignCenter );


    m_pPowTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POW_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pDexTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_DEX_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pSpiTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_SPI_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pStrTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STR_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pStaTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STA_UP_VALUE", pFont6Shadow, nAlignCenter );


    CString    strButtonPlus[5] = 
    {
        "RNCHARACTER_WINDOW_STAT_POW_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_DEX_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_SPI_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STR_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STA_PLUS_BUTTON"
    };


    CString    strButtonMinus[5] = 
    {
        "RNCHARACTER_WINDOW_STAT_POW_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_DEX_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_SPI_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STR_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STA_MINUS_BUTTON"
    };


    for ( int i = 0; i < 5; i++ )
    {    
        m_pButtonPlus[i] = CreateTextButton24 ( strButtonPlus[i].GetString (), CHARACTER_WINDOW_STAT_POW_PLUS_BUTTON + i, "+" );
        m_pButtonMinus[i] = CreateTextButton24 ( strButtonMinus[i].GetString (), CHARACTER_WINDOW_STAT_POW_MINUS_BUTTON + i, "-" );
    }


    m_pButtonOk = CreateTextButton25 ( "RNCHARACTER_WINDOW_STAT_APPLY_BUTTON", CHARACTER_WINDOW_STAT_OK , ID2GAMEWORD("CHARACTER_STAT_APPLY") );
    m_pButtonCancel = CreateTextButton25 ( "RNCHARACTER_WINDOW_STAT_INIT_BUTTON", CHARACTER_WINDOW_STAT_CANCEL , ID2GAMEWORD("CHARACTER_STAT_INIT") );


    m_pDamageHighTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MAX_TEXT", pFont6Shadow, nAlignLeft );
    m_pDamageLowTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MIN_TEXT", pFont6Shadow, nAlignLeft );
    m_pDefenseTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_DEFENSE_TEXT", pFont6Shadow, nAlignLeft );
    m_pReqPaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_FIGHT_TEXT", pFont6Shadow, nAlignLeft );
    m_pReqSaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SHOOT_TEXT", pFont6Shadow, nAlignLeft );
    m_pReqMaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_STAMINA_TEXT", pFont6Shadow, nAlignLeft );
    m_pHitRateTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HIT_TEXT", pFont6Shadow, nAlignLeft );
    m_pAvoidRateTextv = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_AVOID_TEXT", pFont6Shadow, nAlignLeft );
    m_pHPTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HP_TEXT", pFont6Shadow, nAlignLeft );
    m_pMPTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_MP_TEXT", pFont6Shadow, nAlignLeft );
    m_pSPTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SP_TEXT", pFont6Shadow, nAlignLeft );
    
    m_pDamageHighTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 14), dwWhite );
    m_pDamageLowTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 15), dwWhite );
    m_pDefenseTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 3), dwWhite );
    m_pReqPaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 4), dwWhite );
    m_pReqSaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 5), dwWhite );
    m_pReqMaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 11), dwWhite );
    m_pHitRateTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 9), dwWhite );
    m_pAvoidRateTextv->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 10), dwWhite );
    m_pHPTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 16), dwWhite );
    m_pMPTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 17), dwWhite );
    m_pSPTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 18), dwWhite );


    m_pDamageHighText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MAX_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pDamageLowText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MIN_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pDefenseText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_DEFENSE_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pReqPaText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_FIGHT_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pReqSaText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SHOOT_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pReqMaText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_STAMINA_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pHitRateText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HIT_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pAvoidRateText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_AVOID_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pHPText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HP_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pMPText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_MP_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pSPText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SP_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );


    /*m_pDamageHighTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MAX_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pDamageLowTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MIN_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pDefenseTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_DEFENSE_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pReqPaTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_FIGHT_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pReqSaTextUp    = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SHOOT_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pReqMaTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_STAMINA_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pHitRateTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HIT_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pAvoidRateTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_AVOID_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pHPTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HP_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pMPTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_MP_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pSPTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SP_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );*/


    m_pFireTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_FIRE_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pColdTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_COLD_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pElectricTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_ELECTRIC_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pPoisonTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_POISON_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pSpiritTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_SPIRIT_RESIST_TEXT", pFont6Shadow, nAlignLeft );


    m_pFireTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 1), dwWhite );
    m_pColdTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 2), dwWhite );
    m_pElectricTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 3), dwWhite );
    m_pPoisonTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 4), dwWhite );
    m_pSpiritTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 5), dwWhite );


    m_pFireText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_FIRE_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pColdText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_COLD_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pElectricText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_ELECTRIC_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pPoisonText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_POISON_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pSpiritText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_SPIRIT_RESIST_VALUE", pFont6Shadow, nAlignLeft );


    m_pLevelText = CreateStaticControl ( "CHARACTER_LEVEL_AND_NAME_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );
    m_pClubText = CreateStaticControl ( "CHARACTER_CLUB_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );
    m_pBadgeText = CreateStaticControl ( "CHARACTER_BADGE_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );
    {
        CUIControl    TempControl;
        TempControl.Create ( 1, "CHARACTER_SCHOOL_MARK" );


        const UIRECT& rcLocalPos = TempControl.GetLocalPos ();


        CString strSchoolMark[] = 
        {
            "NAME_DISPLAY_SCHOOL1",
            "NAME_DISPLAY_SCHOOL2",
            "NAME_DISPLAY_SCHOOL3"
        };


        for ( int i = 0; i < nSCHOOL_MARK; ++i )
        {
            m_pSchoolMark[i] = CreateControl ( strSchoolMark[i].GetString() );
            m_pSchoolMark[i]->SetLocalPos ( rcLocalPos );
            m_pSchoolMark[i]->SetVisibleSingle ( FALSE );
        }
    }
}
CBasicTextButton*  CCharacterWindow::CreateTextButton ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE23;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON23", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::RADIO_FLIP, szText );
    RegisterControl ( pTextButton );
    return pTextButton;
}


void CCharacterWindow::SetGlobalPos(const D3DXVECTOR2& vPos)
{
    CUIGroup::SetGlobalPos( vPos );
    const GLCHARLOGIC& sCharData = GLGaeaClient::GetInstance().GetCharacterLogic ();    
    
    SetBright( sCharData );
}
void CCharacterWindow::LoadComboData()
{
    m_pComboBoxNickNameRollOver->ClearText ();
    for ( int i = 0; i < EMPTYITEMOPT_SIZE; i++ )
    {
        m_pComboBoxNickNameRollOver->SetTextAlign( TEXT_ALIGN_CENTER_X );
        m_pComboBoxNickNameRollOver->AddText( (char*)ID2GAMEWORD("PARTY_MODAL_ITEM_OPTION", i) );
    }
}
void CCharacterWindow::LoadItem ()
{
    m_pComboBoxNickNameOpen->SetTextAlign( TEXT_ALIGN_CENTER_X );
    m_pComboBoxNickNameOpen->SetText ( (char*)ID2GAMEWORD("PARTY_MODAL_ITEM_OPTION", nIndex) );
}
/*void CCharacterWindow::SetVisibleSingle ( BOOL bVisible )
{
    CUIWindow::SetVisibleSingle( bVisible );


    if( bVisible )
    {
        const GLCHARLOGIC& sCharData = GLGaeaClient::GetInstance().GetCharacterLogic ();
        
        if( m_pPageWearEx )
        {
            if( GLGaeaClient::GetInstance().GetCharacter()->IsUseArmSub() )
            {
                m_pPageWearEx->SetTabButton( FALSE );
            }
            else
            {
                m_pPageWearEx->SetTabButton( TRUE );
            }


        }
    }
}*/


void CCharacterWindow::SetArmSwapTabButton( BOOL bArmSub )
{
    if( m_pPageWearEx )
    {
        m_pPageWearEx->SetTabButton( bArmSub );
    }
}
HRESULT CCharacterWindow::InitDeviceObjects ( LPDIRECT3DDEVICEQ pd3dDevice )
{
    GASSERT( pd3dDevice );
    m_pd3dDevice = pd3dDevice;


    HRESULT hr = S_OK;
    {
        hr = CUIWindowEx::InitDeviceObjects( pd3dDevice );
        //hr = m_pd3dDevice->GetDeviceCaps ( &m_d3dCaps );
        if ( FAILED ( hr ) ) return hr;
    }
    m_CharacterNew = GLGaeaClient::GetInstance().GetCharacter();


    D3DXVECTOR3 m_vPos = D3DXVECTOR3(12.0f,-135.0f,400.0f);
    D3DXVECTOR3    m_vDir = m_CharacterNew->GetDirectionVector();
    D3DXVECTOR3 m_vDirOrig = m_CharacterNew->GetOrig();


    //D3DXMATRIX matTrans, matYRot;
    //D3DXMatrixTranslation ( &matTrans, m_vPos.x, m_vPos.y, m_vPos.z );
    //float fThetaY = DXGetThetaYFromDirection ( m_vDir, m_vDirOrig );
    //D3DXMatrixRotationY ( &matYRot, fThetaY );


    EMCHARINDEX emIndex = CharClassToIndex( m_CharacterNew->m_emClass );
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( GLCONST_CHAR::szCharSkin[emIndex], m_pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;


    SAFE_DELETE( m_pSkinChar );
    m_pSkinChar = new DxSkinChar;
    m_pSkinChar->SetCharData ( pSkinChar, m_pd3dDevice, TRUE );
    UpdateSuit ();


    return S_OK;
}
BOOL CCharacterWindow::IsCurUseArm( EMSLOT emSlot )
{
    if( IsUseArmSub() )
    {
        if( emSlot == SLOT_RHAND || emSlot == SLOT_LHAND ) return FALSE;
    }
    else
    {
        if( emSlot == SLOT_RHAND_S || emSlot == SLOT_LHAND_S ) return FALSE;
    }




    return TRUE;
}






//HRESULT CCharacterWindow::Create ();
//{
//}
//    Note : Adding : GM Glenox | 11-16-2013 | Character Render 
/*HRESULT CCharacterWindow::Create (DWORD dwGaeaID, LPDIRECT3DDEVICEQ pd3dDevice )
{
    GASSERT(pd3dDevice);
    HRESULT hr;


    m_pd3dDevice = pd3dDevice;
    m_dwGaeaID = dwGaeaID;


    //    Note : Adding : GM Glenox | 11-16-2013 | Character Render 
    //
EMCHARINDEX emIndex = CharClassToIndex( m_CharacterNew->m_emClass );
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( GLCONST_CHAR::szCharSkin[emIndex], pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;


    SAFE_DELETE(m_pSkinChar);
    m_pSkinChar = new DxSkinChar;
    m_pSkinChar->SetCharData ( pSkinChar, pd3dDevice, TRUE );
    UpdateSuit ();


    // Note : Control Hieght
    m_pSkinChar->GetAABBBox( m_vMaxOrg, m_vMinOrg );
    m_fHeight = m_vMaxOrg.y - m_vMinOrg.y;




    //    Note : Adding : GM Glenox | 11-16-2013 | Character Render 
    //
/*    if ( pCharData->dwFLAGS & SDROP_CHAR::CHAR_GEN )
    {
//        if ( !IsSTATE(EM_REQ_VISIBLENONE) && !IsSTATE(EM_REQ_VISIBLEOFF) )
        {
            D3DXMATRIX matEffect;
            D3DXMatrixTranslation ( &matEffect, m_vPos.x, m_vPos.y, m_vPos.z );


//            STARGETID sTargetID(CROW_PC,pCharData->dwGaeaID,m_vPos);
            DxEffGroupPlayer::GetInstance().NewEffGroup
            (
            GLCONST_CHAR::strREBIRTH_EFFECT.c_str(),
                matEffect,
                &sTargetID
            );
        }
    }


    if ( !m_pSkinChar->GETCURANIMNODE() )
    {
        CDebugSet::ToLogFile ( "ERORR : current animation node null point error [ %s ] [ M %d S %d ]", m_pSkinChar->GetFileName(), m_pSkinChar->GETCURMTYPE(), m_pSkinChar->GETCURSTYPE() );
        m_pSkinChar->DEFAULTANI ();
    }


    return S_OK;
}*/


HRESULT CCharacterWindow::SkinLoad ( LPDIRECT3DDEVICEQ pd3dDevice )
{
    EMCHARINDEX emIndex = CharClassToIndex(m_CharacterNew->m_emClass);
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( GLCONST_CHAR::szCharSkin[emIndex], pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;




    SAFE_DELETE(m_pSkinChar);
    m_pSkinChar = new DxSkinChar;


    m_pSkinChar->SetCharData ( pSkinChar, pd3dDevice, TRUE );
    
    UpdateSuit();


    return S_OK;
}


HRESULT CCharacterWindow::SkinLoadForTool( LPDIRECT3DDEVICEQ pd3dDevice, const char* szFile )
{
    EMCHARINDEX emIndex = CharClassToIndex(m_CharacterNew->m_emClass);
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( szFile, pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;




    SAFE_DELETE(m_pSkinChar);
    m_pSkinChar = new DxSkinChar;


    m_pSkinChar->SetCharData ( pSkinChar, pd3dDevice, TRUE );




//    UpdateSuit( TRUE );


    // Note : 1.AABB Boxธฆ ฐกมฎฟยดู. 2.ณ๔ภฬธฆ ฐ่ปEุ ณ๕ดยดู.
    m_pSkinChar->GetAABBBox( m_vMaxOrg, m_vMinOrg );
    m_fHeight = m_vMaxOrg.y - m_vMinOrg.y;


    //    Note : ฟกดฯธภฬผว รสฑโศญ.
    //
    if ( m_pSkinChar )
    {
//        m_pSkinChar->SELECTANI ( AN_SHOCK, GLCHARLOGIC::m_emANISUBTYPE );


        //Added by geger009 | 11-8-2012 | add VPS and VCF code
        if ( m_pSkinChar->m_pSkinVehicle )
        {
            m_pSkinChar->m_pSkinVehicle->SELECTANI( AN_GUARD_N , AN_SUB_NONE );
        }


        if ( !m_pSkinChar->GETCURANIMNODE() )
        {
//            CDebugSet::ToLogFile ( "ERORR : current animation node null point error [ %s ] [ M %d S %d ]", m_pSkinChar->m_szFileName, AN_SHOCK, GLCHARLOGIC::m_emANISUBTYPE );
            m_pSkinChar->DEFAULTANI ();
        }
    }


    //    Note : ฝบลณ น๖วม, ป๓ลยภฬปEศฟฐEปผบ.
//    FACTEFF::ReNewEffect ( STARGETID(CROW_PC,m_dwGaeaID,m_vPos), m_pSkinChar, m_sSKILLFACT, m_sSTATEBLOWS, m_matTrans, m_vDir );






    return S_OK;
}


HRESULT CCharacterWindow::UpdateSuit ()
{
    GASSERT( m_pd3dDevice );


    EMCHARINDEX emIndex = CharClassToIndex( m_CharacterNew->m_emClass );
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().FindData ( GLCONST_CHAR::szCharSkin[emIndex] );
    if ( !pSkinChar )    return E_FAIL;


    const GLCONST_CHARCLASS &sCONST = GLCONST_CHAR::cCONSTCLASS[emIndex];


    if ( sCONST.dwHEADNUM > m_CharacterNew->m_wFace )
    {
        std::string strHEAD_CPS = sCONST.strHEAD_CPS[m_CharacterNew->m_wFace];


        PDXCHARPART pCharPart = NULL;
        pCharPart = m_pSkinChar->GetPiece(PIECE_HEAD);        //    ว๖มฆ ภๅย๘ ฝบลฒ.


        if ( pCharPart && strcmp(strHEAD_CPS.c_str(),pCharPart->GetFileName()) )
        {
            m_pSkinChar->SetPiece ( strHEAD_CPS.c_str(), m_pd3dDevice, 0x0, 0, TRUE );
        }
    }


    if ( sCONST.dwHAIRNUM > m_CharacterNew->m_wHair )
    {
        std::string strHAIR_CPS = sCONST.strHAIR_CPS[m_CharacterNew->m_wHair];
    




        PDXCHARPART pCharPart = NULL;
        pCharPart = m_pSkinChar->GetPiece(PIECE_HAIR);        //    ว๖มฆ ภๅย๘ ฝบลฒ.






        if ( pCharPart && strcmp(strHAIR_CPS.c_str(),pCharPart->GetFileName()) )
        {
            m_pSkinChar->SetPiece ( strHAIR_CPS.c_str(), m_pd3dDevice, 0x0, 0, TRUE );
        }
    }




    m_pSkinChar->SetHairColor( m_CharacterNew->m_wHairColor );












    for ( int i=0; i<SLOT_NSIZE_S_2; i++ )
    {
        // ว๖ภ็ ภๅย๘ม฿ภฮ นซฑโฐก พฦดฯธ้ ณัพ๎ฐฃดู.
        if( !IsCurUseArm( EMSLOT(i) ) ) continue;












        SITEMCUSTOM &ItemClient = m_CharacterNew->m_PutOnItems[i];












        SNATIVEID nidITEM = ItemClient.nidDISGUISE;
        if ( nidITEM==SNATIVEID(false) )    nidITEM = ItemClient.sNativeID;












        /*if ( !m_bVehicle && i == SLOT_VEHICLE  ) nidITEM = SNATIVEID(false);
        else if ( i == SLOT_VEHICLE )
        {
            nidITEM = m_sVehicle.GetSkinID();
            if ( nidITEM == SNATIVEID(false) )
            {
                m_sVehicle.m_sVehicleID = ItemClient.sNativeID;
                nidITEM = ItemClient.sNativeID;
            }
        }*/




        if ( nidITEM == SNATIVEID(false) )
        {
            //    Note : ฑโบป ฝบลฒฐ๚ ม๖ฑ ภๅย๘ตศ ฝบลฒภฬ ฦฒธฑ ฐๆฟ์.
            //    SLOT->PIECE.
            PDXSKINPIECE pSkinPiece = NULL;    //    ฑโบป ฝบลฒ.
            PDXCHARPART pCharPart = NULL;    //    ว๖มฆ ภๅย๘ ฝบลฒ.


            EMPIECECHAR emPiece = SLOT_2_PIECE(EMSLOT(i));
            if ( emPiece!=PIECE_SIZE )
            {
                pSkinPiece = pSkinChar->GetPiece(emPiece);    //    ฑโบป ฝบลฒ.
                pCharPart = m_pSkinChar->GetPiece(emPiece);    //    ว๖มฆ ภๅย๘ ฝบลฒ.
            }


            if ( pSkinPiece )
            {
                if ( pCharPart && strcmp(pSkinPiece->m_szFileName,pCharPart->GetFileName()) )
                    m_pSkinChar->SetPiece ( pSkinPiece->m_szFileName, m_pd3dDevice, 0x0, 0, TRUE );
            }
            else
            {
                if ( pCharPart )    m_pSkinChar->ResetPiece(emPiece);
            }
        }
        else
        {
            SITEM* pItem = GLItemMan::GetInstance().GetItem ( nidITEM );
            if ( pItem )
            {
                m_pSkinChar->SetPiece ( pItem->GetWearingFile(emIndex), m_pd3dDevice, NULL, ItemClient.GETGRADE_EFFECT(), TRUE );
            }
        }
    }


    /*if( m_dwTransfromSkill != SNATIVEID::ID_NULL )
    {












        PGLSKILL pSkill = GLSkillMan::GetInstance().GetData ( m_sSKILLFACT[m_dwTransfromSkill].sNATIVEID.wMainID, m_sSKILLFACT[m_dwTransfromSkill].sNATIVEID.wSubID );
        if( pSkill ) 
        {
            for( BYTE i = 0; i < SKILL::EMTRANSFORM_NSIZE; i++ )
            {
                if( m_CharData.wSex == 1 )
                {                
                    m_pSkinChar->SetPiece ( pSkill->m_sSPECIAL_SKILL.strTransform_Man[i].c_str(), m_pd3dDevice, 0X0, 0, TRUE );
                }else{
                    m_pSkinChar->SetPiece ( pSkill->m_sSPECIAL_SKILL.strTransform_Woman[i].c_str(), m_pd3dDevice, 0X0, 0, TRUE );
                }
            }
        }
    }






    //    Note : ฝบลณ น๖วม, ป๓ลยภฬป๓ ศฟฐ๚ ปผบ.
    FACTEFF::ReNewEffect ( STARGETID(CROW_PC,m_dwGaeaID,m_vPos), m_pSkinChar, m_sSKILLFACT, m_sSTATEBLOWS, m_matTrans, m_vDir );


    if( GLCONST_CHAR::cCONSTCLASS[emIndex].strCLASS_EFFECT.size() != 0 )
    {












        DxEffcharDataMan::GetInstance().PutPassiveEffect ( m_pSkinChar, GLCONST_CHAR::cCONSTCLASS[emIndex].strCLASS_EFFECT.c_str(), &m_vDir );
    }*/










    return S_OK;
}






HRESULT CCharacterWindow::FrameMove ( float fTime, float fElapsedTime )
{
    GASSERT( m_pd3dDevice );


    D3DXVECTOR3 vFromPt        = DxViewPort::GetInstance().GetFromPt();
    D3DXVECTOR3 vLookatPt    = DxViewPort::GetInstance().GetLookatPt();
    D3DXVECTOR3 vUpVec        = D3DXVECTOR3( 0.0f, 1.0f, 0.0f );


    m_pSkinChar->FrameMove( fTime,fElapsedTime );


    D3DXMATRIX matTrans , matYRot;
    D3DXMatrixTranslation ( &matTrans, vLookatPt.x, vLookatPt.y, vLookatPt.z );
    float fThetaY = DXGetThetaYFromDirection ( vUpVec, vFromPt );
    D3DXMatrixRotationY ( &matYRot, fThetaY );


    // Get D3DX to fill in the matrix values
    D3DXMATRIX matView;
    D3DXMatrixLookAtLH( &matView, &vFromPt, &vLookatPt, &vUpVec );


    // Set our view matrix
    //m_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );


    m_matTrans = matTrans ;


    return S_OK;
}




HRESULT    CCharacterWindow::Render ( LPDIRECT3DDEVICEQ pd3dDevice, CLIPVOLUME &cv, BOOL bRendAABB )
{
    GASSERT( pd3dDevice );
    CLIPVOLUME &CV = DxViewPort::GetInstance().GetClipVolume ();


    //if ( m_bNeedData && !(m_dwRevData&RECEIVE_CHARDATA) )    return S_FALSE;
    if ( !m_pSkinChar )    


    if ( bRendAABB ) EDITMESHS::RENDERAABB ( pd3dDevice, m_vMax, m_vMin );    //    ลืฝบฦฎฟ๋.
    if( !IsVisible() ) return S_OK;


    HRESULT hr = S_OK;
hr = CUIWindowEx::Render ( pd3dDevice );
        if ( FAILED ( hr ) ) return hr;


    m_pClubMark->SetVisibleSingle ( FALSE );
    {
        hr = CUIWindowEx::Render ( pd3dDevice );
        if( FAILED ( hr ) ) return hr;
    }
    m_pClubMark->SetVisibleSingle ( TRUE );


    GLCLUB& sCLUB = GLGaeaClient::GetInstance().GetCharacter ()->m_sCLUB;


    //    ฑๆตๅฟ๘ภฬ พฦดั ฐๆฟ์
    if ( sCLUB.m_dwID==CLUB_NULL ) return S_OK;


    int nServer = static_cast<int>(GLGaeaClient::GetInstance().GetCharacter()->m_dwServerID);
    int nID = static_cast<int>(sCLUB.m_dwID);
    DWORD dwVer = sCLUB.m_dwMarkVER;


    //if ( !DxClubMan::GetInstance().IsValidData ( nServer, nID, dwVer ) ) return S_OK;
    const DxClubMan::DXDATA& sMarkData = DxClubMan::GetInstance().GetClubData ( pd3dDevice, nServer, nID, dwVer );


    //const UIRECT& rcGlobalPos = m_pClubMark->GetGlobalPos ();
    //m_pClubMark->SetGlobalPos ( UIRECT ( ceil(rcGlobalPos.left), ceil(rcGlobalPos.top),
    //    ceil(rcGlobalPos.sizeX), ceil(rcGlobalPos.sizeY) ) );


    m_pClubMark->SetTexturePos ( 0, sMarkData.vTex_1_LU );
    m_pClubMark->SetTexturePos ( 1, sMarkData.vTex_2_RU );
    m_pClubMark->SetTexturePos ( 3, sMarkData.vTex_3_LD );
    m_pClubMark->SetTexturePos ( 2, sMarkData.vTex_4_RD );


    //    ธธต้พ๎พ฿วิ
    m_pClubMark->SetTexture ( sMarkData.pddsTexture );
    {
        hr = m_pClubMark->Render ( pd3dDevice );
        if( FAILED ( hr ) ) return hr;
    }


    return S_OK;
}
void CCharacterWindow::SetVisiblePage ( int nPage )
{
    const EMCHARCLASS emCharClass = DxGlobalStage::GetInstance().GetGameStage()->GetCharJoinData().m_CharData2.m_emClass;
    const int nClassType = CharClassToIndex ( emCharClass );


    for ( int i = 0; i < nMAXPAGENEW; i++ )
    {
        m_pPageButton[i]->SetFlip ( FALSE );        
    }


    m_pPageWear->SetVisibleSingle ( FALSE );
    m_pPageWearEx->SetVisibleSingle ( FALSE );
    m_pVehicleWindow->SetVisibleSingle ( FALSE );
    m_pPetWindow->SetVisibleSingle ( FALSE );


    if( nClassType == GLCI_FIGHTER_M || nClassType == GLCI_FIGHTER_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_BRAWLER )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }
    else if( nClassType == GLCI_ARMS_M || nClassType == GLCI_ARMS_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SWORDSMAN )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_ARCHER_M || nClassType == GLCI_ARCHER_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ARCHER)    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_SPIRIT_M || nClassType == GLCI_SPIRIT_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SHAMMAN )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_EXTREME_M || nClassType == GLCI_EXTREME_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_EXTREME )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_SCIENCE_M || nClassType == GLCI_SCIENCE_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SCIENCE )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_ASSASSIN_M || nClassType == GLCI_ASSASSIN_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ASSASSIN )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    


    if ( nPage == 0 )
    {
        m_pPageButton[0]->SetFlip ( TRUE );


        if( nClassType == GLCI_FIGHTER_M || nClassType == GLCI_FIGHTER_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_BRAWLER )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }
        else if( nClassType == GLCI_ARMS_M || nClassType == GLCI_ARMS_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_SWORDSMAN )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_ARCHER_M || nClassType == GLCI_ARCHER_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_ARCHER)    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_SPIRIT_M || nClassType == GLCI_SPIRIT_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_SHAMMAN )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_EXTREME_M || nClassType == GLCI_EXTREME_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_EXTREME )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_SCIENCE_M || nClassType == GLCI_SCIENCE_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_SCIENCE )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_ASSASSIN_M || nClassType == GLCI_ASSASSIN_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_ASSASSIN )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
    }


    else if ( nPage == 2 )
    {
        m_pPageButton[2]->SetFlip ( TRUE );
        m_pPetWindow->SetVisibleSingle ( TRUE );
    }
    else if ( nPage == 1 )
    {
        m_pPageButton[1]->SetFlip ( TRUE );
        m_pVehicleWindow->SetVisibleSingle ( TRUE );
    }


}
 
Last edited:
i think you nid to put code in characterwindowmsg.cpp



When i click vehicle and pet tap its bugtrap error
How to fix sir

View attachment 143961View attachment 143957View attachment 143958

Code:
#include "StdAfx.h"#include "./CharacterWindow.h"
#include "DxGlobalStage.h"
#include "./GLCharClient.h"
#include "./GLFactEffect.h"
#include "./GLGaeaClient.h"
#include "./GLItemMan.h"
#include "./GLStrikeM.h"


#include "../EngineUILib/GUInterface/BasicTextBox.h"
#include "../EngineUILib/GUInterface/BasicProgressBar.h"
#include "../EngineUILib/GUInterface/BasicButton.h"
#include "../EngineLib/DxCommon/d3dfont.h"
#include "GLCharacter.h"
#include "GLChar.h"
#include "GLCharData.h"
#include "DxGameStage.h"
#include "../RanClientUILib/Interface/InnerInterface.h"
#include "../../EngineLib/DxCommon/DxShadowMap.h"
#include "../../EngineLib/DxEffect/Char/DxEffCharData.h"
#include "../../EngineLib/DxEffect/Single/DxEffGroupPlayer.h"
#include "../RanClientUILib/Interface/ItemShopIconMan.h"


#include "../Interface/BasicTextButton.h"
#include "../Interface/UITextControl.h"
#include "../Interface/GameTextControl.h"
#include "../RanClientLib/G-Logic/GLGaeaClient.h"
#include "BasicComboBox.h"
#include "BasicComboBoxRollOver.h"


#include "DxEffectMan.h"
#include "DxEnvironment.h"
#include "DxSurfaceTex.h"
#include "DxGlowMan.h"
#include "DxPostProcess.h"
#include "DxCubeMap.h"
#include "DxSkyMan.h"
#include "DxEffGroupPlayer.h"
#include "../EngineLib/DxCommon/DxViewPort.h"
#include "../EngineLib/DxCommon/DxFontMan.h"
#include "../EngineLib/DxCommon/DxInputDevice.h"
#include "../EngineLib/DxCommon/DxLightMan.h"
#include "DxSkinChar.h"
#include "DxClubMan.h"


#include "BasicLineBox.h"
#include "BasicTextBoxEx.h"
#include "InventoryPageWear.h"
#include "InventoryPageWearEx.h"
#include "VehicleWindow.h"
#include "PetWindow.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#endif


CCharacterWindow::CCharacterWindow () :
    m_pNameText ( NULL ),
    m_pLevelText ( NULL ),
    
    m_pButtonOk ( NULL ),
    m_pButtonCancel ( NULL ),


    m_pAButton ( NULL ),
    m_pALHandSlot ( NULL ),
    m_pARHandSlot ( NULL ),
    m_pBButton ( NULL ),
    m_pBLHandSlot ( NULL ),
    m_pBRHandSlot ( NULL ),


    m_pPageWear( NULL ),
    m_pPageWearEx( NULL ),
    m_pPetWindow( NULL ),
    m_pPointText ( NULL ),
    
    //Left
    m_pPowText ( NULL ),
    m_pDexText ( NULL ),
    m_pSpiText ( NULL ),
    //m_pIntText ( NULL ),
    m_pStrText ( NULL ),
    m_pStaText ( NULL ),


    //Right
    m_pPowTextUp ( NULL ),
    m_pDexTextUp ( NULL ),
    m_pSpiTextUp ( NULL ),
    m_pIntTextUp ( NULL ),
    m_pStrTextUp ( NULL ),
    m_pStaTextUp ( NULL ),
    m_pClubText ( NULL ), //by J.A Dev for guild name
    m_pBadgeText ( NULL ),
    m_pSchoolText ( NULL ),
    m_pCopyRightText ( NULL ),
    m_pPKStateText ( NULL ),


    m_pNewPow ( 0 ),
    m_pNewDex ( 0 ),
    m_pNewSpi ( 0 ),
    m_pNewStr ( 0 ),
    m_pNewSta ( 0 ),
    m_pNewPoint ( 0 ),
    nIndex ( 0 ),


    //Left
    m_pDamageHighText ( NULL ), //ความแรงสูงสุด
    m_pDamageLowText ( NULL ),    //ความแรงต่ำสุด
    m_pDefenseText ( NULL ),    //ป้องกัน
    m_pReqPaText ( NULL ),        //ถนัด
    m_pReqSaText ( NULL ),        //เล็ง
    m_pReqMaText ( NULL ),        //พลังงาน
    m_pHitRateText ( NULL ),    //โจมตี
    m_pAvoidRateText ( NULL ),    //หลบหลีก
    m_pHPText ( NULL ),            //HP
    m_pMPText ( NULL ),            //MP
    m_pSPText ( NULL ),            //SP


    //Right
    m_pDamageHighTextUp ( NULL ), //ความแรงสูงสุด
    m_pDamageLowTextUp ( NULL ),    //ความแรงต่ำสุด
    m_pDefenseTextUp ( NULL ),    //ป้องกัน
    m_pReqPaTextUp ( NULL ),        //ถนัด
    m_pReqSaTextUp ( NULL ),        //เล็ง
    m_pReqMaTextUp ( NULL ),        //พลังงาน
    m_pHitRateTextUp ( NULL ),    //โจมตี
    m_pAvoidRateTextUp ( NULL ),    //หลบหลีก
    m_pHPTextUp ( NULL ),            //HP
    m_pMPTextUp ( NULL ),            //MP
    m_pSPTextUp ( NULL ),            //SP


    m_pFireText ( NULL ),        //ไฟ
    m_pColdText ( NULL ),        //น้ำแข็ง
    m_pElectricText ( NULL ),    //ไฟฟ้า
    m_pPoisonText ( NULL ),        //พิษ
    m_pSpiritText ( NULL ),        //เวทย์
    m_pGradeText ( NULL ),        //ชื่อเสียง
    m_pGradeValue ( NULL ),        //ชื่อเสียง
    m_pBrightSlider ( NULL ),    //ความดี
    m_pActivityPointText ( NULL ),    //ผลงาน
    m_pActivityPointValue ( NULL ),    //ผลงาน
    m_pAcademy_Department ( NULL ),    //สถาบัน    //สายอาชชีพ
    m_pd3dDevice ( NULL ),
    m_pMobileText( NULL ),
    m_pSkinChar(NULL),


    m_vMax(6,20,6),
    m_vMin(-6,0,-6),
    m_fHeight(20.f)
{
    memset ( m_pPageButton, 0, sizeof ( m_pPageButton ) );
    memset ( m_pPageButton, 0, sizeof ( CBasicTextButton* ) * nMAXPAGENEW );


    memset ( m_pButtonPlus, 0, sizeof ( m_pButtonPlus ) );
    memset ( m_pButtonMinus, 0, sizeof ( m_pButtonMinus ) );
    D3DXMatrixIdentity( &m_matTrans );
}


CCharacterWindow::~CCharacterWindow ()
{
}




CBasicTextBox* CCharacterWindow::CreateStaticControl ( char* szControlKeyword, CD3DFontPar* pFont, int nAlign, const UIGUID& cID )
{
    CBasicTextBox* pStaticText = new CBasicTextBox;
    pStaticText->CreateSub ( this, szControlKeyword, UI_FLAG_DEFAULT, cID );
    pStaticText->SetFont ( pFont );
    pStaticText->SetTextAlign ( nAlign );    
    RegisterControl ( pStaticText );


    return pStaticText;
}


CBasicTextButton*  CCharacterWindow::CreateTextButton23 ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE23;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON23", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::RADIO_FLIP, szText ,_DEFAULT_FONT_SHADOW_FLAG );
    RegisterControl ( pTextButton );
    return pTextButton;
}


CBasicTextButton*  CCharacterWindow::CreateTextButton24 ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE24;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON24", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::CLICK_FLIP, szText , _DEFAULT_FONT_SHADOW_FLAG );
    RegisterControl ( pTextButton );
    return pTextButton;
}


CBasicTextButton*  CCharacterWindow::CreateTextButton25 ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE25;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON25", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::CLICK_FLIP, szText , _DEFAULT_FONT_SHADOW_FLAG );
    RegisterControl ( pTextButton );
    return pTextButton;
}


void CCharacterWindow::CreateSubControl ()
{
    CD3DFontPar* pFont6Shadow = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 7, _DEFAULT_FONT_SHADOW_FLAG );
    CD3DFontPar* pFont8Shadow = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 8, _DEFAULT_FONT_SHADOW_FLAG );
    CD3DFontPar* pFont = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 9, _DEFAULT_FONT_SHADOW_FLAG );
    CD3DFontPar* pFont10 = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 10, _DEFAULT_FONT_SHADOW_FLAG );


    const EMCHARCLASS emCharClass = DxGlobalStage::GetInstance().GetGameStage()->GetCharJoinData().m_CharData2.m_emClass;
    const int nClassType = CharClassToIndex ( emCharClass );


    const int nAlignLeft = TEXT_ALIGN_LEFT;
    const int nAlignCenter = TEXT_ALIGN_CENTER_X;        
    const DWORD& dwSilver = NS_UITEXTCOLOR::SILVER;
    const DWORD& dwWhite = NS_UITEXTCOLOR::WHITE;
    const DWORD& dwSubTitle = NS_UITEXTCOLOR::PALEGOLDENROD;


    //พื้นหลังสีขาว
    {
        m_bg_white = new CUIControl;
        m_bg_white->CreateSub ( this, "RNCHARACTER_WINDOW_REGION", UI_FLAG_DEFAULT);    
        m_bg_white->SetVisibleSingle ( TRUE );
        RegisterControl ( m_bg_white );
    }


    CString    strPageKeyword[nMAXPAGENEW] = 
    {
        "RNCHARACTER_WINDOW_CHAR_TAP",
        "RNCHARACTER_WINDOW_VEHICLE_TAP",
        "RNCHARACTER_WINDOW_PET_TAP",
    };        


        CBasicComboBox* pComboBox = NULL;
        CBasicComboBoxRollOver*    pComboBoxRollOver = NULL;


        pComboBox = new CBasicComboBox;
        pComboBox->CreateSub ( this, "BASIC_COMBOBOX", UI_FLAG_XSIZE, NICKNAME_COMBO_OPEN );
        pComboBox->CreateBaseComboBox ( "NICKNAME_COMBO_OPEN" );
        RegisterControl ( pComboBox );
        m_pComboBoxNickNameOpen = pComboBox;


        pComboBoxRollOver = new CBasicComboBoxRollOver;
        pComboBoxRollOver->CreateSub ( this, "BASIC_COMBOBOX_ROLLOVER", UI_FLAG_XSIZE | UI_FLAG_YSIZE, NICKNAME_COMBO_ROLLOVER );
        pComboBoxRollOver->CreateBaseComboBoxRollOver ( "NICKNAME_COMBO_ROLLOVER" );
        pComboBoxRollOver->SetVisibleSingle ( FALSE );
        RegisterControl ( pComboBoxRollOver );
        m_pComboBoxNickNameRollOver = pComboBoxRollOver;


    for ( int i = 0; i < nMAXPAGENEW; i++ )
    {        
        m_pPageButton[i] = CreateTextButton23 ( strPageKeyword[i].GetString (), RNCHARACTER_WINDOW_CHAR_TAP + i, (char*)ID2GAMEWORD ( "RNCHARACTER_WINDOW_CHAR_TAP", i ) );
    }
        


        
    {    
        // พื้นหลัง ตัวละคร
        m_pBackLine1 = new CBasicLineBox;
        m_pBackLine1->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pBackLine1->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_EQUIP_REGION" );
        RegisterControl ( m_pBackLine1 );


        //พื้นหลัง ข้อมูลส่วนล่าง
        m_pBackLine2 = new CBasicLineBox;
        m_pBackLine2->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pBackLine2->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_SCHOOL_REGION" );
        RegisterControl ( m_pBackLine2 );
    }


    {
        m_pStatusLine1 = new CBasicLineBox;
        m_pStatusLine1->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine1->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT1_REGION" );
        RegisterControl ( m_pStatusLine1 );    
    
        m_pStatusLine2 = new CBasicLineBox;
        m_pStatusLine2->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine2->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT2_REGION" );
        RegisterControl ( m_pStatusLine2 );    
    
        m_pStatusLine3 = new CBasicLineBox;
        m_pStatusLine3->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine3->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT3_REGION" );
        RegisterControl ( m_pStatusLine3 );
    }


    {
        m_pStatusLine4 = new CBasicLineBox;
        m_pStatusLine4->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine4->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT4_REGION" );
        RegisterControl ( m_pStatusLine4 );


        m_pStatusLine5 = new CBasicLineBox;
        m_pStatusLine5->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine5->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT5_REGION" );
        RegisterControl ( m_pStatusLine5 );


        m_pStatusLine6 = new CBasicLineBox;
        m_pStatusLine6->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine6->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT6_REGION" );
        RegisterControl ( m_pStatusLine6 );
    }


    {
        m_pStatusLine7 = new CBasicLineBox;
        m_pStatusLine7->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine7->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT7_REGION" );
        RegisterControl ( m_pStatusLine7 );


        m_pStatusLine8 = new CBasicLineBox;
        m_pStatusLine8->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine8->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT8_REGION" );
        RegisterControl ( m_pStatusLine8 );


        m_pStatusLine9 = new CBasicLineBox;
        m_pStatusLine9->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine9->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT9_REGION" );
        RegisterControl ( m_pStatusLine9 );


        CreateControl ( "CHARACTER_REGIST_FIRE_ICON" );
        CreateControl ( "CHARACTER_REGIST_ICE_ICON" );
        CreateControl ( "CHARACTER_REGIST_ELECTRIC_ICON" );
        CreateControl ( "CHARACTER_REGIST_POISON_ICON" );
        CreateControl ( "CHARACTER_REGIST_SPIRIT_ICON" );
    }


        if( nClassType == GLCI_FIGHTER_M || nClassType == GLCI_FIGHTER_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_BRAWLER )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }
    else if( nClassType == GLCI_ARMS_M || nClassType == GLCI_ARMS_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SWORDSMAN )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
    
            SetVisiblePage ( 0 );
        }
    }    
    else if( nClassType == GLCI_ARCHER_M || nClassType == GLCI_ARCHER_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ARCHER)
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_SPIRIT_M || nClassType == GLCI_SPIRIT_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SHAMMAN )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_EXTREME_M || nClassType == GLCI_EXTREME_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_EXTREME )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_SCIENCE_M || nClassType == GLCI_SCIENCE_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SCIENCE )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_ASSASSIN_M || nClassType == GLCI_ASSASSIN_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ASSASSIN )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }


        m_pVehicleWindow = new CVehicleWindow;
        m_pVehicleWindow->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_VEHICLEWINDOW );
        m_pVehicleWindow->CreateSubControl ();
        RegisterControl ( m_pVehicleWindow );
        
        m_pPetWindow = new CPetWindow;
        m_pPetWindow->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_PETWINDOW );
        m_pPetWindow->CreateSubControl ();
        RegisterControl ( m_pPetWindow );
        SetVisibleSingle( 0 );
        


    {
        m_pClubMark = CreateControl ( "CLUB_WINDOW_MARK_CHARACTERWINDOW" );        
        m_pClubMark->SetUseRender ( TRUE );
    }
    
    m_pAcademy_Department = CreateStaticControl ( "RNCHARACTER_WINDOW_ACADEMY_DEPARTMENT_TEXT", pFont, nAlignLeft );


    m_pSchoolText = CreateStaticControl ( "CHARACTER_SCHOOL_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );


    m_pCopyRightText = CreateStaticControl ( "CHARACTER_COPYRIGHT_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );


    m_pPKStateText = CreateStaticControl ( "CHARACTER_PKSTATE_TEXT", pFont, nAlignLeft );
    
    CBasicTextBox* pTextBox = CreateStaticControl ( "RNCHARACTER_WINDOW_BRIGHT_TEXT", pFont8Shadow, nAlignLeft );
    pTextBox->AddText ( ID2GAMEWORD("CHARACTER_SOCIAL_STATIC", 5), dwWhite );


    m_pGradeText = CreateStaticControl ( "RNCHARACTER_WINDOW_CONTRIBUTION_POINT_TEXT", pFont8Shadow, nAlignLeft );
    m_pGradeValue = CreateStaticControl ( "RNCHARACTER_WINDOW_CONTRIBUTION_POINT_VALUE", pFont8Shadow, nAlignLeft );
    
    m_pActivityPointText = CreateStaticControl ( "RNCHARACTER_WINDOW_ACTIVITY_POINT_TEXT", pFont8Shadow, nAlignLeft );
    m_pActivityPointValue = CreateStaticControl ( "RNCHARACTER_WINDOW_ACTIVITY_POINT_VALUE", pFont8Shadow, nAlignLeft );
    
    m_pBrightFrame = CreateControl ( "RNCHARACTER_WINDOW_BRIGHTBAR",CHARACTER_BIRGHTER );        
    m_pBrightSlider = CreateControl ( "RNCHARACTER_WINDOW_BRIGHTBAR_THUMB" );


    m_pPointTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POINT_TEXT", pFont, nAlignLeft );
    m_pPointText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POINT_VALUE", pFont, nAlignLeft );


    m_pPointTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_POINT"), dwWhite );


    m_pPowTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POW_TEXT", pFont6Shadow, nAlignLeft );
    m_pDexTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_DEX_TEXT", pFont6Shadow, nAlignLeft );
    m_pSpiTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_SPI_TEXT", pFont6Shadow, nAlignLeft );
    m_pStrTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STR_TEXT", pFont6Shadow, nAlignLeft );
    m_pStaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STA_TEXT", pFont6Shadow, nAlignLeft );


    m_pPowTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 0), dwWhite );
    m_pDexTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 1), dwWhite );
    m_pSpiTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 2), dwWhite );
    m_pStrTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 4), dwWhite );
    m_pStaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 5), dwWhite );


    m_pPowText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POW_VALUE", pFont6Shadow, nAlignCenter );
    m_pDexText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_DEX_VALUE", pFont6Shadow, nAlignCenter );
    m_pSpiText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_SPI_VALUE", pFont6Shadow, nAlignCenter );
    m_pStrText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STR_VALUE", pFont6Shadow, nAlignCenter );
    m_pStaText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STA_VALUE", pFont6Shadow, nAlignCenter );


    m_pPowTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POW_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pDexTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_DEX_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pSpiTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_SPI_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pStrTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STR_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pStaTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STA_UP_VALUE", pFont6Shadow, nAlignCenter );


    CString    strButtonPlus[5] = 
    {
        "RNCHARACTER_WINDOW_STAT_POW_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_DEX_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_SPI_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STR_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STA_PLUS_BUTTON"
    };


    CString    strButtonMinus[5] = 
    {
        "RNCHARACTER_WINDOW_STAT_POW_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_DEX_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_SPI_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STR_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STA_MINUS_BUTTON"
    };


    for ( int i = 0; i < 5; i++ )
    {    
        m_pButtonPlus[i] = CreateTextButton24 ( strButtonPlus[i].GetString (), CHARACTER_WINDOW_STAT_POW_PLUS_BUTTON + i, "+" );
        m_pButtonMinus[i] = CreateTextButton24 ( strButtonMinus[i].GetString (), CHARACTER_WINDOW_STAT_POW_MINUS_BUTTON + i, "-" );
    }


    m_pButtonOk = CreateTextButton25 ( "RNCHARACTER_WINDOW_STAT_APPLY_BUTTON", CHARACTER_WINDOW_STAT_OK , ID2GAMEWORD("CHARACTER_STAT_APPLY") );
    m_pButtonCancel = CreateTextButton25 ( "RNCHARACTER_WINDOW_STAT_INIT_BUTTON", CHARACTER_WINDOW_STAT_CANCEL , ID2GAMEWORD("CHARACTER_STAT_INIT") );


    m_pDamageHighTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MAX_TEXT", pFont6Shadow, nAlignLeft );
    m_pDamageLowTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MIN_TEXT", pFont6Shadow, nAlignLeft );
    m_pDefenseTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_DEFENSE_TEXT", pFont6Shadow, nAlignLeft );
    m_pReqPaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_FIGHT_TEXT", pFont6Shadow, nAlignLeft );
    m_pReqSaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SHOOT_TEXT", pFont6Shadow, nAlignLeft );
    m_pReqMaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_STAMINA_TEXT", pFont6Shadow, nAlignLeft );
    m_pHitRateTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HIT_TEXT", pFont6Shadow, nAlignLeft );
    m_pAvoidRateTextv = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_AVOID_TEXT", pFont6Shadow, nAlignLeft );
    m_pHPTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HP_TEXT", pFont6Shadow, nAlignLeft );
    m_pMPTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_MP_TEXT", pFont6Shadow, nAlignLeft );
    m_pSPTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SP_TEXT", pFont6Shadow, nAlignLeft );
    
    m_pDamageHighTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 14), dwWhite );
    m_pDamageLowTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 15), dwWhite );
    m_pDefenseTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 3), dwWhite );
    m_pReqPaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 4), dwWhite );
    m_pReqSaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 5), dwWhite );
    m_pReqMaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 11), dwWhite );
    m_pHitRateTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 9), dwWhite );
    m_pAvoidRateTextv->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 10), dwWhite );
    m_pHPTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 16), dwWhite );
    m_pMPTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 17), dwWhite );
    m_pSPTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 18), dwWhite );


    m_pDamageHighText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MAX_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pDamageLowText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MIN_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pDefenseText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_DEFENSE_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pReqPaText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_FIGHT_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pReqSaText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SHOOT_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pReqMaText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_STAMINA_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pHitRateText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HIT_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pAvoidRateText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_AVOID_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pHPText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HP_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pMPText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_MP_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pSPText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SP_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );


    /*m_pDamageHighTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MAX_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pDamageLowTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MIN_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pDefenseTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_DEFENSE_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pReqPaTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_FIGHT_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pReqSaTextUp    = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SHOOT_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pReqMaTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_STAMINA_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pHitRateTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HIT_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pAvoidRateTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_AVOID_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pHPTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HP_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pMPTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_MP_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pSPTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SP_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );*/


    m_pFireTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_FIRE_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pColdTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_COLD_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pElectricTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_ELECTRIC_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pPoisonTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_POISON_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pSpiritTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_SPIRIT_RESIST_TEXT", pFont6Shadow, nAlignLeft );


    m_pFireTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 1), dwWhite );
    m_pColdTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 2), dwWhite );
    m_pElectricTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 3), dwWhite );
    m_pPoisonTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 4), dwWhite );
    m_pSpiritTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 5), dwWhite );


    m_pFireText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_FIRE_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pColdText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_COLD_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pElectricText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_ELECTRIC_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pPoisonText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_POISON_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pSpiritText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_SPIRIT_RESIST_VALUE", pFont6Shadow, nAlignLeft );


    m_pLevelText = CreateStaticControl ( "CHARACTER_LEVEL_AND_NAME_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );
    m_pClubText = CreateStaticControl ( "CHARACTER_CLUB_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );
    m_pBadgeText = CreateStaticControl ( "CHARACTER_BADGE_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );
    {
        CUIControl    TempControl;
        TempControl.Create ( 1, "CHARACTER_SCHOOL_MARK" );


        const UIRECT& rcLocalPos = TempControl.GetLocalPos ();


        CString strSchoolMark[] = 
        {
            "NAME_DISPLAY_SCHOOL1",
            "NAME_DISPLAY_SCHOOL2",
            "NAME_DISPLAY_SCHOOL3"
        };


        for ( int i = 0; i < nSCHOOL_MARK; ++i )
        {
            m_pSchoolMark[i] = CreateControl ( strSchoolMark[i].GetString() );
            m_pSchoolMark[i]->SetLocalPos ( rcLocalPos );
            m_pSchoolMark[i]->SetVisibleSingle ( FALSE );
        }
    }
}
CBasicTextButton*  CCharacterWindow::CreateTextButton ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE23;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON23", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::RADIO_FLIP, szText );
    RegisterControl ( pTextButton );
    return pTextButton;
}


void CCharacterWindow::SetGlobalPos(const D3DXVECTOR2& vPos)
{
    CUIGroup::SetGlobalPos( vPos );
    const GLCHARLOGIC& sCharData = GLGaeaClient::GetInstance().GetCharacterLogic ();    
    
    SetBright( sCharData );
}
void CCharacterWindow::LoadComboData()
{
    m_pComboBoxNickNameRollOver->ClearText ();
    for ( int i = 0; i < EMPTYITEMOPT_SIZE; i++ )
    {
        m_pComboBoxNickNameRollOver->SetTextAlign( TEXT_ALIGN_CENTER_X );
        m_pComboBoxNickNameRollOver->AddText( (char*)ID2GAMEWORD("PARTY_MODAL_ITEM_OPTION", i) );
    }
}
void CCharacterWindow::LoadItem ()
{
    m_pComboBoxNickNameOpen->SetTextAlign( TEXT_ALIGN_CENTER_X );
    m_pComboBoxNickNameOpen->SetText ( (char*)ID2GAMEWORD("PARTY_MODAL_ITEM_OPTION", nIndex) );
}
/*void CCharacterWindow::SetVisibleSingle ( BOOL bVisible )
{
    CUIWindow::SetVisibleSingle( bVisible );


    if( bVisible )
    {
        const GLCHARLOGIC& sCharData = GLGaeaClient::GetInstance().GetCharacterLogic ();
        
        if( m_pPageWearEx )
        {
            if( GLGaeaClient::GetInstance().GetCharacter()->IsUseArmSub() )
            {
                m_pPageWearEx->SetTabButton( FALSE );
            }
            else
            {
                m_pPageWearEx->SetTabButton( TRUE );
            }


        }
    }
}*/


void CCharacterWindow::SetArmSwapTabButton( BOOL bArmSub )
{
    if( m_pPageWearEx )
    {
        m_pPageWearEx->SetTabButton( bArmSub );
    }
}
HRESULT CCharacterWindow::InitDeviceObjects ( LPDIRECT3DDEVICEQ pd3dDevice )
{
    GASSERT( pd3dDevice );
    m_pd3dDevice = pd3dDevice;


    HRESULT hr = S_OK;
    {
        hr = CUIWindowEx::InitDeviceObjects( pd3dDevice );
        //hr = m_pd3dDevice->GetDeviceCaps ( &m_d3dCaps );
        if ( FAILED ( hr ) ) return hr;
    }
    m_CharacterNew = GLGaeaClient::GetInstance().GetCharacter();


    D3DXVECTOR3 m_vPos = D3DXVECTOR3(12.0f,-135.0f,400.0f);
    D3DXVECTOR3    m_vDir = m_CharacterNew->GetDirectionVector();
    D3DXVECTOR3 m_vDirOrig = m_CharacterNew->GetOrig();


    //D3DXMATRIX matTrans, matYRot;
    //D3DXMatrixTranslation ( &matTrans, m_vPos.x, m_vPos.y, m_vPos.z );
    //float fThetaY = DXGetThetaYFromDirection ( m_vDir, m_vDirOrig );
    //D3DXMatrixRotationY ( &matYRot, fThetaY );


    EMCHARINDEX emIndex = CharClassToIndex( m_CharacterNew->m_emClass );
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( GLCONST_CHAR::szCharSkin[emIndex], m_pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;


    SAFE_DELETE( m_pSkinChar );
    m_pSkinChar = new DxSkinChar;
    m_pSkinChar->SetCharData ( pSkinChar, m_pd3dDevice, TRUE );
    UpdateSuit ();


    return S_OK;
}
BOOL CCharacterWindow::IsCurUseArm( EMSLOT emSlot )
{
    if( IsUseArmSub() )
    {
        if( emSlot == SLOT_RHAND || emSlot == SLOT_LHAND ) return FALSE;
    }
    else
    {
        if( emSlot == SLOT_RHAND_S || emSlot == SLOT_LHAND_S ) return FALSE;
    }




    return TRUE;
}






//HRESULT CCharacterWindow::Create ();
//{
//}
//    Note : Adding : GM Glenox | 11-16-2013 | Character Render 
/*HRESULT CCharacterWindow::Create (DWORD dwGaeaID, LPDIRECT3DDEVICEQ pd3dDevice )
{
    GASSERT(pd3dDevice);
    HRESULT hr;


    m_pd3dDevice = pd3dDevice;
    m_dwGaeaID = dwGaeaID;


    //    Note : Adding : GM Glenox | 11-16-2013 | Character Render 
    //
EMCHARINDEX emIndex = CharClassToIndex( m_CharacterNew->m_emClass );
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( GLCONST_CHAR::szCharSkin[emIndex], pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;


    SAFE_DELETE(m_pSkinChar);
    m_pSkinChar = new DxSkinChar;
    m_pSkinChar->SetCharData ( pSkinChar, pd3dDevice, TRUE );
    UpdateSuit ();


    // Note : Control Hieght
    m_pSkinChar->GetAABBBox( m_vMaxOrg, m_vMinOrg );
    m_fHeight = m_vMaxOrg.y - m_vMinOrg.y;




    //    Note : Adding : GM Glenox | 11-16-2013 | Character Render 
    //
/*    if ( pCharData->dwFLAGS & SDROP_CHAR::CHAR_GEN )
    {
//        if ( !IsSTATE(EM_REQ_VISIBLENONE) && !IsSTATE(EM_REQ_VISIBLEOFF) )
        {
            D3DXMATRIX matEffect;
            D3DXMatrixTranslation ( &matEffect, m_vPos.x, m_vPos.y, m_vPos.z );


//            STARGETID sTargetID(CROW_PC,pCharData->dwGaeaID,m_vPos);
            DxEffGroupPlayer::GetInstance().NewEffGroup
            (
            GLCONST_CHAR::strREBIRTH_EFFECT.c_str(),
                matEffect,
                &sTargetID
            );
        }
    }


    if ( !m_pSkinChar->GETCURANIMNODE() )
    {
        CDebugSet::ToLogFile ( "ERORR : current animation node null point error [ %s ] [ M %d S %d ]", m_pSkinChar->GetFileName(), m_pSkinChar->GETCURMTYPE(), m_pSkinChar->GETCURSTYPE() );
        m_pSkinChar->DEFAULTANI ();
    }


    return S_OK;
}*/


HRESULT CCharacterWindow::SkinLoad ( LPDIRECT3DDEVICEQ pd3dDevice )
{
    EMCHARINDEX emIndex = CharClassToIndex(m_CharacterNew->m_emClass);
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( GLCONST_CHAR::szCharSkin[emIndex], pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;




    SAFE_DELETE(m_pSkinChar);
    m_pSkinChar = new DxSkinChar;


    m_pSkinChar->SetCharData ( pSkinChar, pd3dDevice, TRUE );
    
    UpdateSuit();


    return S_OK;
}


HRESULT CCharacterWindow::SkinLoadForTool( LPDIRECT3DDEVICEQ pd3dDevice, const char* szFile )
{
    EMCHARINDEX emIndex = CharClassToIndex(m_CharacterNew->m_emClass);
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( szFile, pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;




    SAFE_DELETE(m_pSkinChar);
    m_pSkinChar = new DxSkinChar;


    m_pSkinChar->SetCharData ( pSkinChar, pd3dDevice, TRUE );




//    UpdateSuit( TRUE );


    // Note : 1.AABB Boxธฆ ฐกมฎฟยดู. 2.ณ๔ภฬธฆ ฐ่ปEุ ณ๕ดยดู.
    m_pSkinChar->GetAABBBox( m_vMaxOrg, m_vMinOrg );
    m_fHeight = m_vMaxOrg.y - m_vMinOrg.y;


    //    Note : ฟกดฯธภฬผว รสฑโศญ.
    //
    if ( m_pSkinChar )
    {
//        m_pSkinChar->SELECTANI ( AN_SHOCK, GLCHARLOGIC::m_emANISUBTYPE );


        //Added by geger009 | 11-8-2012 | add VPS and VCF code
        if ( m_pSkinChar->m_pSkinVehicle )
        {
            m_pSkinChar->m_pSkinVehicle->SELECTANI( AN_GUARD_N , AN_SUB_NONE );
        }


        if ( !m_pSkinChar->GETCURANIMNODE() )
        {
//            CDebugSet::ToLogFile ( "ERORR : current animation node null point error [ %s ] [ M %d S %d ]", m_pSkinChar->m_szFileName, AN_SHOCK, GLCHARLOGIC::m_emANISUBTYPE );
            m_pSkinChar->DEFAULTANI ();
        }
    }


    //    Note : ฝบลณ น๖วม, ป๓ลยภฬปEศฟฐEปผบ.
//    FACTEFF::ReNewEffect ( STARGETID(CROW_PC,m_dwGaeaID,m_vPos), m_pSkinChar, m_sSKILLFACT, m_sSTATEBLOWS, m_matTrans, m_vDir );






    return S_OK;
}


HRESULT CCharacterWindow::UpdateSuit ()
{
    GASSERT( m_pd3dDevice );


    EMCHARINDEX emIndex = CharClassToIndex( m_CharacterNew->m_emClass );
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().FindData ( GLCONST_CHAR::szCharSkin[emIndex] );
    if ( !pSkinChar )    return E_FAIL;


    const GLCONST_CHARCLASS &sCONST = GLCONST_CHAR::cCONSTCLASS[emIndex];


    if ( sCONST.dwHEADNUM > m_CharacterNew->m_wFace )
    {
        std::string strHEAD_CPS = sCONST.strHEAD_CPS[m_CharacterNew->m_wFace];


        PDXCHARPART pCharPart = NULL;
        pCharPart = m_pSkinChar->GetPiece(PIECE_HEAD);        //    ว๖มฆ ภๅย๘ ฝบลฒ.


        if ( pCharPart && strcmp(strHEAD_CPS.c_str(),pCharPart->GetFileName()) )
        {
            m_pSkinChar->SetPiece ( strHEAD_CPS.c_str(), m_pd3dDevice, 0x0, 0, TRUE );
        }
    }


    if ( sCONST.dwHAIRNUM > m_CharacterNew->m_wHair )
    {
        std::string strHAIR_CPS = sCONST.strHAIR_CPS[m_CharacterNew->m_wHair];
    




        PDXCHARPART pCharPart = NULL;
        pCharPart = m_pSkinChar->GetPiece(PIECE_HAIR);        //    ว๖มฆ ภๅย๘ ฝบลฒ.






        if ( pCharPart && strcmp(strHAIR_CPS.c_str(),pCharPart->GetFileName()) )
        {
            m_pSkinChar->SetPiece ( strHAIR_CPS.c_str(), m_pd3dDevice, 0x0, 0, TRUE );
        }
    }




    m_pSkinChar->SetHairColor( m_CharacterNew->m_wHairColor );












    for ( int i=0; i<SLOT_NSIZE_S_2; i++ )
    {
        // ว๖ภ็ ภๅย๘ม฿ภฮ นซฑโฐก พฦดฯธ้ ณัพ๎ฐฃดู.
        if( !IsCurUseArm( EMSLOT(i) ) ) continue;












        SITEMCUSTOM &ItemClient = m_CharacterNew->m_PutOnItems[i];












        SNATIVEID nidITEM = ItemClient.nidDISGUISE;
        if ( nidITEM==SNATIVEID(false) )    nidITEM = ItemClient.sNativeID;












        /*if ( !m_bVehicle && i == SLOT_VEHICLE  ) nidITEM = SNATIVEID(false);
        else if ( i == SLOT_VEHICLE )
        {
            nidITEM = m_sVehicle.GetSkinID();
            if ( nidITEM == SNATIVEID(false) )
            {
                m_sVehicle.m_sVehicleID = ItemClient.sNativeID;
                nidITEM = ItemClient.sNativeID;
            }
        }*/




        if ( nidITEM == SNATIVEID(false) )
        {
            //    Note : ฑโบป ฝบลฒฐ๚ ม๖ฑ ภๅย๘ตศ ฝบลฒภฬ ฦฒธฑ ฐๆฟ์.
            //    SLOT->PIECE.
            PDXSKINPIECE pSkinPiece = NULL;    //    ฑโบป ฝบลฒ.
            PDXCHARPART pCharPart = NULL;    //    ว๖มฆ ภๅย๘ ฝบลฒ.


            EMPIECECHAR emPiece = SLOT_2_PIECE(EMSLOT(i));
            if ( emPiece!=PIECE_SIZE )
            {
                pSkinPiece = pSkinChar->GetPiece(emPiece);    //    ฑโบป ฝบลฒ.
                pCharPart = m_pSkinChar->GetPiece(emPiece);    //    ว๖มฆ ภๅย๘ ฝบลฒ.
            }


            if ( pSkinPiece )
            {
                if ( pCharPart && strcmp(pSkinPiece->m_szFileName,pCharPart->GetFileName()) )
                    m_pSkinChar->SetPiece ( pSkinPiece->m_szFileName, m_pd3dDevice, 0x0, 0, TRUE );
            }
            else
            {
                if ( pCharPart )    m_pSkinChar->ResetPiece(emPiece);
            }
        }
        else
        {
            SITEM* pItem = GLItemMan::GetInstance().GetItem ( nidITEM );
            if ( pItem )
            {
                m_pSkinChar->SetPiece ( pItem->GetWearingFile(emIndex), m_pd3dDevice, NULL, ItemClient.GETGRADE_EFFECT(), TRUE );
            }
        }
    }


    /*if( m_dwTransfromSkill != SNATIVEID::ID_NULL )
    {












        PGLSKILL pSkill = GLSkillMan::GetInstance().GetData ( m_sSKILLFACT[m_dwTransfromSkill].sNATIVEID.wMainID, m_sSKILLFACT[m_dwTransfromSkill].sNATIVEID.wSubID );
        if( pSkill ) 
        {
            for( BYTE i = 0; i < SKILL::EMTRANSFORM_NSIZE; i++ )
            {
                if( m_CharData.wSex == 1 )
                {                
                    m_pSkinChar->SetPiece ( pSkill->m_sSPECIAL_SKILL.strTransform_Man[i].c_str(), m_pd3dDevice, 0X0, 0, TRUE );
                }else{
                    m_pSkinChar->SetPiece ( pSkill->m_sSPECIAL_SKILL.strTransform_Woman[i].c_str(), m_pd3dDevice, 0X0, 0, TRUE );
                }
            }
        }
    }






    //    Note : ฝบลณ น๖วม, ป๓ลยภฬป๓ ศฟฐ๚ ปผบ.
    FACTEFF::ReNewEffect ( STARGETID(CROW_PC,m_dwGaeaID,m_vPos), m_pSkinChar, m_sSKILLFACT, m_sSTATEBLOWS, m_matTrans, m_vDir );


    if( GLCONST_CHAR::cCONSTCLASS[emIndex].strCLASS_EFFECT.size() != 0 )
    {












        DxEffcharDataMan::GetInstance().PutPassiveEffect ( m_pSkinChar, GLCONST_CHAR::cCONSTCLASS[emIndex].strCLASS_EFFECT.c_str(), &m_vDir );
    }*/










    return S_OK;
}






HRESULT CCharacterWindow::FrameMove ( float fTime, float fElapsedTime )
{
    GASSERT( m_pd3dDevice );


    D3DXVECTOR3 vFromPt        = DxViewPort::GetInstance().GetFromPt();
    D3DXVECTOR3 vLookatPt    = DxViewPort::GetInstance().GetLookatPt();
    D3DXVECTOR3 vUpVec        = D3DXVECTOR3( 0.0f, 1.0f, 0.0f );


    m_pSkinChar->FrameMove( fTime,fElapsedTime );


    D3DXMATRIX matTrans , matYRot;
    D3DXMatrixTranslation ( &matTrans, vLookatPt.x, vLookatPt.y, vLookatPt.z );
    float fThetaY = DXGetThetaYFromDirection ( vUpVec, vFromPt );
    D3DXMatrixRotationY ( &matYRot, fThetaY );


    // Get D3DX to fill in the matrix values
    D3DXMATRIX matView;
    D3DXMatrixLookAtLH( &matView, &vFromPt, &vLookatPt, &vUpVec );


    // Set our view matrix
    //m_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );


    m_matTrans = matTrans ;


    return S_OK;
}




HRESULT    CCharacterWindow::Render ( LPDIRECT3DDEVICEQ pd3dDevice, CLIPVOLUME &cv, BOOL bRendAABB )
{
    GASSERT( pd3dDevice );
    CLIPVOLUME &CV = DxViewPort::GetInstance().GetClipVolume ();


    //if ( m_bNeedData && !(m_dwRevData&RECEIVE_CHARDATA) )    return S_FALSE;
    if ( !m_pSkinChar )    


    if ( bRendAABB ) EDITMESHS::RENDERAABB ( pd3dDevice, m_vMax, m_vMin );    //    ลืฝบฦฎฟ๋.
    if( !IsVisible() ) return S_OK;


    HRESULT hr = S_OK;
hr = CUIWindowEx::Render ( pd3dDevice );
        if ( FAILED ( hr ) ) return hr;


    m_pClubMark->SetVisibleSingle ( FALSE );
    {
        hr = CUIWindowEx::Render ( pd3dDevice );
        if( FAILED ( hr ) ) return hr;
    }
    m_pClubMark->SetVisibleSingle ( TRUE );


    GLCLUB& sCLUB = GLGaeaClient::GetInstance().GetCharacter ()->m_sCLUB;


    //    ฑๆตๅฟ๘ภฬ พฦดั ฐๆฟ์
    if ( sCLUB.m_dwID==CLUB_NULL ) return S_OK;


    int nServer = static_cast<int>(GLGaeaClient::GetInstance().GetCharacter()->m_dwServerID);
    int nID = static_cast<int>(sCLUB.m_dwID);
    DWORD dwVer = sCLUB.m_dwMarkVER;


    //if ( !DxClubMan::GetInstance().IsValidData ( nServer, nID, dwVer ) ) return S_OK;
    const DxClubMan::DXDATA& sMarkData = DxClubMan::GetInstance().GetClubData ( pd3dDevice, nServer, nID, dwVer );


    //const UIRECT& rcGlobalPos = m_pClubMark->GetGlobalPos ();
    //m_pClubMark->SetGlobalPos ( UIRECT ( ceil(rcGlobalPos.left), ceil(rcGlobalPos.top),
    //    ceil(rcGlobalPos.sizeX), ceil(rcGlobalPos.sizeY) ) );


    m_pClubMark->SetTexturePos ( 0, sMarkData.vTex_1_LU );
    m_pClubMark->SetTexturePos ( 1, sMarkData.vTex_2_RU );
    m_pClubMark->SetTexturePos ( 3, sMarkData.vTex_3_LD );
    m_pClubMark->SetTexturePos ( 2, sMarkData.vTex_4_RD );


    //    ธธต้พ๎พ฿วิ
    m_pClubMark->SetTexture ( sMarkData.pddsTexture );
    {
        hr = m_pClubMark->Render ( pd3dDevice );
        if( FAILED ( hr ) ) return hr;
    }


    return S_OK;
}
void CCharacterWindow::SetVisiblePage ( int nPage )
{
    const EMCHARCLASS emCharClass = DxGlobalStage::GetInstance().GetGameStage()->GetCharJoinData().m_CharData2.m_emClass;
    const int nClassType = CharClassToIndex ( emCharClass );


    for ( int i = 0; i < nMAXPAGENEW; i++ )
    {
        m_pPageButton[i]->SetFlip ( FALSE );        
    }


    m_pPageWear->SetVisibleSingle ( FALSE );
    m_pPageWearEx->SetVisibleSingle ( FALSE );
    m_pVehicleWindow->SetVisibleSingle ( FALSE );
    m_pPetWindow->SetVisibleSingle ( FALSE );


    if( nClassType == GLCI_FIGHTER_M || nClassType == GLCI_FIGHTER_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_BRAWLER )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }
    else if( nClassType == GLCI_ARMS_M || nClassType == GLCI_ARMS_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SWORDSMAN )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_ARCHER_M || nClassType == GLCI_ARCHER_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ARCHER)    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_SPIRIT_M || nClassType == GLCI_SPIRIT_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SHAMMAN )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_EXTREME_M || nClassType == GLCI_EXTREME_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_EXTREME )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_SCIENCE_M || nClassType == GLCI_SCIENCE_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SCIENCE )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_ASSASSIN_M || nClassType == GLCI_ASSASSIN_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ASSASSIN )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    


    if ( nPage == 0 )
    {
        m_pPageButton[0]->SetFlip ( TRUE );


        if( nClassType == GLCI_FIGHTER_M || nClassType == GLCI_FIGHTER_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_BRAWLER )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }
        else if( nClassType == GLCI_ARMS_M || nClassType == GLCI_ARMS_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_SWORDSMAN )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_ARCHER_M || nClassType == GLCI_ARCHER_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_ARCHER)    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_SPIRIT_M || nClassType == GLCI_SPIRIT_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_SHAMMAN )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_EXTREME_M || nClassType == GLCI_EXTREME_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_EXTREME )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_SCIENCE_M || nClassType == GLCI_SCIENCE_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_SCIENCE )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_ASSASSIN_M || nClassType == GLCI_ASSASSIN_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_ASSASSIN )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
    }


    else if ( nPage == 2 )
    {
        m_pPageButton[2]->SetFlip ( TRUE );
        m_pPetWindow->SetVisibleSingle ( TRUE );
    }
    else if ( nPage == 1 )
    {
        m_pPageButton[1]->SetFlip ( TRUE );
        m_pVehicleWindow->SetVisibleSingle ( TRUE );
    }


}


i think you nid to put a code in characterwindowmsg.cpp ?
 
i think you nid to put code in characterwindowmsg.cpp






i think you nid to put a code in characterwindowmsg.cpp ?


CharacterwindowMsg.cpp

Code:
#include "StdAfx.h"#include "./CharacterWindow.h"


#include "../G-Logic/GLGaeaClient.h"


#include "../EngineUILib/GUInterface/BasicTextBox.h"
#include "../EngineUILib/GUInterface/BasicButton.h"


#include "../Interface/ModalCallerID.h"
#include "../Interface/ModalWindow.h"
#include "../Interface/InnerInterface.h"
#include "../Interface/UITextControl.h"
#include "../Interface/GameTextControl.h"
#include "InventoryPageWear.h"
#include "InventoryPageWearEx.h"
#include "BasicComboBox.h"
#include "BasicComboBoxRollOver.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#endif


void CCharacterWindow::TranslateUIMessage ( UIGUID ControlID, DWORD dwMsg )
{
	CUIWindowEx::TranslateUIMessage ( ControlID, dwMsg );


	const GLCHARLOGIC& sCharData = GLGaeaClient::GetInstance().GetCharacterLogic ();


	const float fBUTTON_CLICK = CBasicButton::fBUTTON_CLICK;


	switch ( ControlID )
	{
	case ET_CONTROL_TITLE:
	case ET_CONTROL_TITLE_F:
		{
			if ( (dwMsg & UIMSG_LB_DUP) && CHECK_MOUSE_IN ( dwMsg ) )
			{
				CInnerInterface::GetInstance().SetDefaultPosInterface( CHARACTER_WINDOW );
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_POW_PLUS_BUTTON:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{					
					if ( sCharData.m_wStatsPoint > 0 )
					{
						m_pNewPow++;
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointDown();
					}
				}
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_DEX_PLUS_BUTTON:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{					
					if ( sCharData.m_wStatsPoint > 0)
					{
						m_pNewDex++;
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointDown();
					}
				}
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_SPI_PLUS_BUTTON:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{					
					if ( sCharData.m_wStatsPoint > 0)
					{
						m_pNewSpi++;
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointDown();
					}
				}
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_STR_PLUS_BUTTON:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{					
					if ( sCharData.m_wStatsPoint > 0 )
					{
						m_pNewStr++;
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointDown();
					}
				}
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_STA_PLUS_BUTTON:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{					
					if ( sCharData.m_wStatsPoint > 0)
					{
						m_pNewSta++;
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointDown();
					}
				}
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_POW_MINUS_BUTTON:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{					
					if ( m_pNewPow > 0)
					{
						m_pNewPow--;
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointUp();
					}
				}
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_DEX_MINUS_BUTTON:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{					
					if ( m_pNewDex > 0)
					{
						m_pNewDex--;
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointUp();
					}
				}
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_SPI_MINUS_BUTTON:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{					
					if ( m_pNewSpi > 0)
					{
						m_pNewSpi--;
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointUp();
					}
				}
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_STR_MINUS_BUTTON:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{					
					if ( m_pNewStr > 0)
					{
						m_pNewStr--;
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointUp();
					}
				}
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_STA_MINUS_BUTTON:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{					
					if ( m_pNewSta > 0)
					{
						m_pNewSta--;
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointUp();
					}
				}
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_OK:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_DOWN_LIKE ( dwMsg ) )
				{
				}


				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{	
					int num = m_pNewPow + m_pNewDex + m_pNewSpi + m_pNewStr + m_pNewSta;
					for (int i = 0; i < num; i++)
					{
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointUp();
					}
					if ( m_pNewPow > 0)
					{
						for ( int i = 0; i < m_pNewPow; i++)
						{
							GLGaeaClient::GetInstance().GetCharacter()->ReqStatsUp ( EMPOW );
						}
					}
					if ( m_pNewDex > 0)
					{
						for ( int i = 0; i < m_pNewDex; i++)
						{
							GLGaeaClient::GetInstance().GetCharacter()->ReqStatsUp ( EMDEX );
						}
					}
					if ( m_pNewSpi > 0)
					{
						for ( int i = 0; i < m_pNewSpi; i++)
						{
							GLGaeaClient::GetInstance().GetCharacter()->ReqStatsUp ( EMSPI );
						}
					}
					if ( m_pNewStr > 0)
					{
						for ( int i = 0; i < m_pNewStr; i++)
						{
							GLGaeaClient::GetInstance().GetCharacter()->ReqStatsUp ( EMSTR );
						}
					}
					if ( m_pNewSta > 0)
					{
						for ( int i = 0; i < m_pNewSta; i++)
						{
							GLGaeaClient::GetInstance().GetCharacter()->ReqStatsUp ( EMSTA );
						}
					}
					m_pNewPow = 0;
					m_pNewDex = 0;
					m_pNewSpi = 0;
					m_pNewStr = 0;
					m_pNewSta = 0;
				}
			}
		}
		break;
	case CHARACTER_WINDOW_STAT_CANCEL:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( CHECK_LB_UP_LIKE ( dwMsg ) )
				{					
					int num = m_pNewPow + m_pNewDex + m_pNewSpi + m_pNewStr + m_pNewSta;
					for (int i = 0; i < num; i++)
					{
						GLGaeaClient::GetInstance().GetCharacter()->SetStatusPointUp();
					}
					m_pNewPow = 0;
					m_pNewDex = 0;
					m_pNewSpi = 0;
					m_pNewStr = 0;
					m_pNewSta = 0;
				}


			}
		}
		break;
	case CHARACTER_BIRGHTER:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				GLCharacter* pCharacter = GLGaeaClient::GetInstance().GetCharacter ();


				CString strTemp;				
				strTemp.Format ( "%d", pCharacter->m_nBright );


				CInnerInterface::GetInstance().SHOW_COMMON_LINEINFO ( strTemp, NS_UITEXTCOLOR::WHITE );
			}
		}
		break;
	case CHARACTER_WINDOW_INVENTORY_PAGEWEAR:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				int nIndex = m_pPageWear->GetItemIndex ();
				if ( nIndex < 0 ) return ;				


				{
					SITEMCUSTOM sItemCustom = m_pPageWear->GetItem ( nIndex );
					if ( sItemCustom.sNativeID != NATIVEID_NULL () )
					{
						CInnerInterface::GetInstance().SHOW_ITEM_INFO ( sItemCustom, FALSE, FALSE, FALSE, USHRT_MAX, USHRT_MAX );
					}
				}


				if ( dwMsg & UIMSG_LB_UP )
				{
					EMSLOT emSlot = m_pPageWear->GetItemSlot ();
					GLGaeaClient::GetInstance().GetCharacter()->ReqSlotTo ( emSlot );
				}		
			}
		}
		break;
	case CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				int nIndex = m_pPageWearEx->GetItemIndex ();
				if ( nIndex < 0 ) return ;				


				{
					SITEMCUSTOM sItemCustom = m_pPageWearEx->GetItem ( nIndex );
					if ( sItemCustom.sNativeID != NATIVEID_NULL () )
					{
						CInnerInterface::GetInstance().SHOW_ITEM_INFO ( sItemCustom, FALSE, FALSE, FALSE, USHRT_MAX, USHRT_MAX );
					}
				}


				if ( dwMsg & UIMSG_LB_UP )
				{
					EMSLOT emSlot = m_pPageWearEx->GetItemSlot ();
					GLGaeaClient::GetInstance().GetCharacter()->ReqSlotTo ( emSlot );
				}
			}
		}
		break;
	case NICKNAME_COMBO_OPEN:
		{
			if ( CHECK_MOUSE_IN ( dwMsg ) )
			{
				if ( dwMsg & UIMSG_LB_DOWN )
				{
					m_pComboBoxNickNameRollOver->SetVisibleSingle ( TRUE );
				  //m_pComboBoxNickNameRollOver->SetScrollPercent ( 0.0f );					
				}
			}
		}
		break;
	case NICKNAME_COMBO_ROLLOVER:
		{


			


			if ( CHECK_MOUSEIN_LBUPLIKE ( dwMsg ) )
			{				
				nIndex = m_pComboBoxNickNameRollOver->GetSelectIndex ();
				if ( nIndex < 0 ) return ;
				LoadItem ();
				m_pComboBoxNickNameRollOver->SetVisibleSingle ( FALSE );
			}
		}
		break;
	case RNCHARACTER_WINDOW_CHAR_TAP:
		{
			if ( CHECK_MOUSEIN_LBUPLIKE ( dwMsg ) )
			{
				SetVisiblePage (0);
			}
		}
		break;


	case RNCHARACTER_WINDOW_VEHICLE_TAP:
		{
			if ( CHECK_MOUSEIN_LBUPLIKE ( dwMsg ) )
			{
				SetVisiblePage (1);
			}
		}
		break;


	case RNCHARACTER_WINDOW_PET_TAP:
		{
			if ( CHECK_MOUSEIN_LBUPLIKE ( dwMsg ) )
			{
				SetVisiblePage (2);
			}
		}
		break;		
	}
}
 
share full neo source code ready to compile with new interface and 237 skill working ep9 weapons and lightning on ups!!

Source Code



Client



Patch



Rcc Pass

1: 13#@$$#%#raFFy08)(4%$%$^%^%*&^*^&*^&*^@$#@$#@WED$%#$%$#

2: !@#!@#aA#!FAS$%@S%Jean$!#Mae%@#$Rose!!@#Mier!@#%#$%&%^^^$@#$

3: ea&"HS%/6WYKgUu:v-%Z+i9#tYf.s5.+1{#lf:bj6WdH~l}B1(:#r%j


After you put patch in the client get the xml in source code folder and find Needed files na folder

Merry Christmas XD



New link for patch. its already dead link
 
how to fix white backgroand anyone can help me please

wrong data\gui or texture\gui. Read the whole thread i'm sure you can find a compatible one.



Looking for someone who can share their skill.ssf and SkillStrTable.txt
Concern: How to remove the ?????? on the inactive skills. Tried to remove the requirements to set skill active but still no luck.

Assassins: Animation and skill problem. After casting skill animation stop or not working for next skill.

Anyone got fix? Or How to?

Reply = Like



how to fix white backgroand anyone can help me please

wrong data\gui or texture\gui. Read the whole thread i'm sure you can find a compatible one.



Looking for someone who can share their skill.ssf and SkillStrTable.txt
Concern: How to remove the ?????? on the inactive skills. Tried to remove the requirements to set skill active but still no luck.

Assassins: Animation and skill problem. After casting skill animation stop or not working for next skill.

Anyone got fix? Or How to?

Reply = Like
 

Attachments

  • Captur - Neo Source - RaGEZONE Forums
    Capture.webp
    14 KB · Views: 91
I think u didnt use raffy patch?

wrong data\gui or texture\gui. Read the whole thread i'm sure you can find a compatible one.



Looking for someone who can share their skill.ssf and SkillStrTable.txt
Concern: How to remove the ?????? on the inactive skills. Tried to remove the requirements to set skill active but still no luck.

Assassins: Animation and skill problem. After casting skill animation stop or not working for next skill.

Anyone got fix? Or How to?

Reply = Like





wrong data\gui or texture\gui. Read the whole thread i'm sure you can find a compatible one.



Looking for someone who can share their skill.ssf and SkillStrTable.txt
Concern: How to remove the ?????? on the inactive skills. Tried to remove the requirements to set skill active but still no luck.

Assassins: Animation and skill problem. After casting skill animation stop or not working for next skill.

Anyone got fix? Or How to?

Reply = Like
 
I think u didnt use raffy patch?

Thanks dude! Figured it out by your help.

For reference of others: by changing the default.charclass in data\1logic.rcc can effect skills animation. @Eil Nahd

For my skill animation fix: bring back the default.charclass, and manually change the desired char name color. Thenks!

Skill Not active with ??????? still in progress... -_-
 
When i click vehicle and pet tap its bugtrap error
How to fix sir

View attachment 143961View attachment 143957View attachment 143958

Code:
#include "StdAfx.h"#include "./CharacterWindow.h"
#include "DxGlobalStage.h"
#include "./GLCharClient.h"
#include "./GLFactEffect.h"
#include "./GLGaeaClient.h"
#include "./GLItemMan.h"
#include "./GLStrikeM.h"


#include "../EngineUILib/GUInterface/BasicTextBox.h"
#include "../EngineUILib/GUInterface/BasicProgressBar.h"
#include "../EngineUILib/GUInterface/BasicButton.h"
#include "../EngineLib/DxCommon/d3dfont.h"
#include "GLCharacter.h"
#include "GLChar.h"
#include "GLCharData.h"
#include "DxGameStage.h"
#include "../RanClientUILib/Interface/InnerInterface.h"
#include "../../EngineLib/DxCommon/DxShadowMap.h"
#include "../../EngineLib/DxEffect/Char/DxEffCharData.h"
#include "../../EngineLib/DxEffect/Single/DxEffGroupPlayer.h"
#include "../RanClientUILib/Interface/ItemShopIconMan.h"


#include "../Interface/BasicTextButton.h"
#include "../Interface/UITextControl.h"
#include "../Interface/GameTextControl.h"
#include "../RanClientLib/G-Logic/GLGaeaClient.h"
#include "BasicComboBox.h"
#include "BasicComboBoxRollOver.h"


#include "DxEffectMan.h"
#include "DxEnvironment.h"
#include "DxSurfaceTex.h"
#include "DxGlowMan.h"
#include "DxPostProcess.h"
#include "DxCubeMap.h"
#include "DxSkyMan.h"
#include "DxEffGroupPlayer.h"
#include "../EngineLib/DxCommon/DxViewPort.h"
#include "../EngineLib/DxCommon/DxFontMan.h"
#include "../EngineLib/DxCommon/DxInputDevice.h"
#include "../EngineLib/DxCommon/DxLightMan.h"
#include "DxSkinChar.h"
#include "DxClubMan.h"


#include "BasicLineBox.h"
#include "BasicTextBoxEx.h"
#include "InventoryPageWear.h"
#include "InventoryPageWearEx.h"
#include "VehicleWindow.h"
#include "PetWindow.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#endif


CCharacterWindow::CCharacterWindow () :
    m_pNameText ( NULL ),
    m_pLevelText ( NULL ),
    
    m_pButtonOk ( NULL ),
    m_pButtonCancel ( NULL ),


    m_pAButton ( NULL ),
    m_pALHandSlot ( NULL ),
    m_pARHandSlot ( NULL ),
    m_pBButton ( NULL ),
    m_pBLHandSlot ( NULL ),
    m_pBRHandSlot ( NULL ),


    m_pPageWear( NULL ),
    m_pPageWearEx( NULL ),
    m_pPetWindow( NULL ),
    m_pPointText ( NULL ),
    
    //Left
    m_pPowText ( NULL ),
    m_pDexText ( NULL ),
    m_pSpiText ( NULL ),
    //m_pIntText ( NULL ),
    m_pStrText ( NULL ),
    m_pStaText ( NULL ),


    //Right
    m_pPowTextUp ( NULL ),
    m_pDexTextUp ( NULL ),
    m_pSpiTextUp ( NULL ),
    m_pIntTextUp ( NULL ),
    m_pStrTextUp ( NULL ),
    m_pStaTextUp ( NULL ),
    m_pClubText ( NULL ), //by J.A Dev for guild name
    m_pBadgeText ( NULL ),
    m_pSchoolText ( NULL ),
    m_pCopyRightText ( NULL ),
    m_pPKStateText ( NULL ),


    m_pNewPow ( 0 ),
    m_pNewDex ( 0 ),
    m_pNewSpi ( 0 ),
    m_pNewStr ( 0 ),
    m_pNewSta ( 0 ),
    m_pNewPoint ( 0 ),
    nIndex ( 0 ),


    //Left
    m_pDamageHighText ( NULL ), //ความแรงสูงสุด
    m_pDamageLowText ( NULL ),    //ความแรงต่ำสุด
    m_pDefenseText ( NULL ),    //ป้องกัน
    m_pReqPaText ( NULL ),        //ถนัด
    m_pReqSaText ( NULL ),        //เล็ง
    m_pReqMaText ( NULL ),        //พลังงาน
    m_pHitRateText ( NULL ),    //โจมตี
    m_pAvoidRateText ( NULL ),    //หลบหลีก
    m_pHPText ( NULL ),            //HP
    m_pMPText ( NULL ),            //MP
    m_pSPText ( NULL ),            //SP


    //Right
    m_pDamageHighTextUp ( NULL ), //ความแรงสูงสุด
    m_pDamageLowTextUp ( NULL ),    //ความแรงต่ำสุด
    m_pDefenseTextUp ( NULL ),    //ป้องกัน
    m_pReqPaTextUp ( NULL ),        //ถนัด
    m_pReqSaTextUp ( NULL ),        //เล็ง
    m_pReqMaTextUp ( NULL ),        //พลังงาน
    m_pHitRateTextUp ( NULL ),    //โจมตี
    m_pAvoidRateTextUp ( NULL ),    //หลบหลีก
    m_pHPTextUp ( NULL ),            //HP
    m_pMPTextUp ( NULL ),            //MP
    m_pSPTextUp ( NULL ),            //SP


    m_pFireText ( NULL ),        //ไฟ
    m_pColdText ( NULL ),        //น้ำแข็ง
    m_pElectricText ( NULL ),    //ไฟฟ้า
    m_pPoisonText ( NULL ),        //พิษ
    m_pSpiritText ( NULL ),        //เวทย์
    m_pGradeText ( NULL ),        //ชื่อเสียง
    m_pGradeValue ( NULL ),        //ชื่อเสียง
    m_pBrightSlider ( NULL ),    //ความดี
    m_pActivityPointText ( NULL ),    //ผลงาน
    m_pActivityPointValue ( NULL ),    //ผลงาน
    m_pAcademy_Department ( NULL ),    //สถาบัน    //สายอาชชีพ
    m_pd3dDevice ( NULL ),
    m_pMobileText( NULL ),
    m_pSkinChar(NULL),


    m_vMax(6,20,6),
    m_vMin(-6,0,-6),
    m_fHeight(20.f)
{
    memset ( m_pPageButton, 0, sizeof ( m_pPageButton ) );
    memset ( m_pPageButton, 0, sizeof ( CBasicTextButton* ) * nMAXPAGENEW );


    memset ( m_pButtonPlus, 0, sizeof ( m_pButtonPlus ) );
    memset ( m_pButtonMinus, 0, sizeof ( m_pButtonMinus ) );
    D3DXMatrixIdentity( &m_matTrans );
}


CCharacterWindow::~CCharacterWindow ()
{
}




CBasicTextBox* CCharacterWindow::CreateStaticControl ( char* szControlKeyword, CD3DFontPar* pFont, int nAlign, const UIGUID& cID )
{
    CBasicTextBox* pStaticText = new CBasicTextBox;
    pStaticText->CreateSub ( this, szControlKeyword, UI_FLAG_DEFAULT, cID );
    pStaticText->SetFont ( pFont );
    pStaticText->SetTextAlign ( nAlign );    
    RegisterControl ( pStaticText );


    return pStaticText;
}


CBasicTextButton*  CCharacterWindow::CreateTextButton23 ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE23;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON23", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::RADIO_FLIP, szText ,_DEFAULT_FONT_SHADOW_FLAG );
    RegisterControl ( pTextButton );
    return pTextButton;
}


CBasicTextButton*  CCharacterWindow::CreateTextButton24 ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE24;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON24", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::CLICK_FLIP, szText , _DEFAULT_FONT_SHADOW_FLAG );
    RegisterControl ( pTextButton );
    return pTextButton;
}


CBasicTextButton*  CCharacterWindow::CreateTextButton25 ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE25;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON25", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::CLICK_FLIP, szText , _DEFAULT_FONT_SHADOW_FLAG );
    RegisterControl ( pTextButton );
    return pTextButton;
}


void CCharacterWindow::CreateSubControl ()
{
    CD3DFontPar* pFont6Shadow = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 7, _DEFAULT_FONT_SHADOW_FLAG );
    CD3DFontPar* pFont8Shadow = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 8, _DEFAULT_FONT_SHADOW_FLAG );
    CD3DFontPar* pFont = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 9, _DEFAULT_FONT_SHADOW_FLAG );
    CD3DFontPar* pFont10 = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 10, _DEFAULT_FONT_SHADOW_FLAG );


    const EMCHARCLASS emCharClass = DxGlobalStage::GetInstance().GetGameStage()->GetCharJoinData().m_CharData2.m_emClass;
    const int nClassType = CharClassToIndex ( emCharClass );


    const int nAlignLeft = TEXT_ALIGN_LEFT;
    const int nAlignCenter = TEXT_ALIGN_CENTER_X;        
    const DWORD& dwSilver = NS_UITEXTCOLOR::SILVER;
    const DWORD& dwWhite = NS_UITEXTCOLOR::WHITE;
    const DWORD& dwSubTitle = NS_UITEXTCOLOR::PALEGOLDENROD;


    //พื้นหลังสีขาว
    {
        m_bg_white = new CUIControl;
        m_bg_white->CreateSub ( this, "RNCHARACTER_WINDOW_REGION", UI_FLAG_DEFAULT);    
        m_bg_white->SetVisibleSingle ( TRUE );
        RegisterControl ( m_bg_white );
    }


    CString    strPageKeyword[nMAXPAGENEW] = 
    {
        "RNCHARACTER_WINDOW_CHAR_TAP",
        "RNCHARACTER_WINDOW_VEHICLE_TAP",
        "RNCHARACTER_WINDOW_PET_TAP",
    };        


        CBasicComboBox* pComboBox = NULL;
        CBasicComboBoxRollOver*    pComboBoxRollOver = NULL;


        pComboBox = new CBasicComboBox;
        pComboBox->CreateSub ( this, "BASIC_COMBOBOX", UI_FLAG_XSIZE, NICKNAME_COMBO_OPEN );
        pComboBox->CreateBaseComboBox ( "NICKNAME_COMBO_OPEN" );
        RegisterControl ( pComboBox );
        m_pComboBoxNickNameOpen = pComboBox;


        pComboBoxRollOver = new CBasicComboBoxRollOver;
        pComboBoxRollOver->CreateSub ( this, "BASIC_COMBOBOX_ROLLOVER", UI_FLAG_XSIZE | UI_FLAG_YSIZE, NICKNAME_COMBO_ROLLOVER );
        pComboBoxRollOver->CreateBaseComboBoxRollOver ( "NICKNAME_COMBO_ROLLOVER" );
        pComboBoxRollOver->SetVisibleSingle ( FALSE );
        RegisterControl ( pComboBoxRollOver );
        m_pComboBoxNickNameRollOver = pComboBoxRollOver;


    for ( int i = 0; i < nMAXPAGENEW; i++ )
    {        
        m_pPageButton[i] = CreateTextButton23 ( strPageKeyword[i].GetString (), RNCHARACTER_WINDOW_CHAR_TAP + i, (char*)ID2GAMEWORD ( "RNCHARACTER_WINDOW_CHAR_TAP", i ) );
    }
        


        
    {    
        // พื้นหลัง ตัวละคร
        m_pBackLine1 = new CBasicLineBox;
        m_pBackLine1->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pBackLine1->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_EQUIP_REGION" );
        RegisterControl ( m_pBackLine1 );


        //พื้นหลัง ข้อมูลส่วนล่าง
        m_pBackLine2 = new CBasicLineBox;
        m_pBackLine2->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pBackLine2->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_SCHOOL_REGION" );
        RegisterControl ( m_pBackLine2 );
    }


    {
        m_pStatusLine1 = new CBasicLineBox;
        m_pStatusLine1->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine1->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT1_REGION" );
        RegisterControl ( m_pStatusLine1 );    
    
        m_pStatusLine2 = new CBasicLineBox;
        m_pStatusLine2->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine2->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT2_REGION" );
        RegisterControl ( m_pStatusLine2 );    
    
        m_pStatusLine3 = new CBasicLineBox;
        m_pStatusLine3->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine3->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT3_REGION" );
        RegisterControl ( m_pStatusLine3 );
    }


    {
        m_pStatusLine4 = new CBasicLineBox;
        m_pStatusLine4->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine4->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT4_REGION" );
        RegisterControl ( m_pStatusLine4 );


        m_pStatusLine5 = new CBasicLineBox;
        m_pStatusLine5->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine5->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT5_REGION" );
        RegisterControl ( m_pStatusLine5 );


        m_pStatusLine6 = new CBasicLineBox;
        m_pStatusLine6->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine6->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT6_REGION" );
        RegisterControl ( m_pStatusLine6 );
    }


    {
        m_pStatusLine7 = new CBasicLineBox;
        m_pStatusLine7->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine7->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT7_REGION" );
        RegisterControl ( m_pStatusLine7 );


        m_pStatusLine8 = new CBasicLineBox;
        m_pStatusLine8->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine8->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT8_REGION" );
        RegisterControl ( m_pStatusLine8 );


        m_pStatusLine9 = new CBasicLineBox;
        m_pStatusLine9->CreateSub ( this, "BASIC_LINE_BOX_SKILL", UI_FLAG_XSIZE | UI_FLAG_YSIZE );
        m_pStatusLine9->CreateBaseBoxSkill ( "RNCHARACTER_WINDOW_STAT_POINT9_REGION" );
        RegisterControl ( m_pStatusLine9 );


        CreateControl ( "CHARACTER_REGIST_FIRE_ICON" );
        CreateControl ( "CHARACTER_REGIST_ICE_ICON" );
        CreateControl ( "CHARACTER_REGIST_ELECTRIC_ICON" );
        CreateControl ( "CHARACTER_REGIST_POISON_ICON" );
        CreateControl ( "CHARACTER_REGIST_SPIRIT_ICON" );
    }


        if( nClassType == GLCI_FIGHTER_M || nClassType == GLCI_FIGHTER_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_BRAWLER )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }
    else if( nClassType == GLCI_ARMS_M || nClassType == GLCI_ARMS_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SWORDSMAN )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
    
            SetVisiblePage ( 0 );
        }
    }    
    else if( nClassType == GLCI_ARCHER_M || nClassType == GLCI_ARCHER_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ARCHER)
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_SPIRIT_M || nClassType == GLCI_SPIRIT_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SHAMMAN )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_EXTREME_M || nClassType == GLCI_EXTREME_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_EXTREME )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_SCIENCE_M || nClassType == GLCI_SCIENCE_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SCIENCE )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }    
    else if( nClassType == GLCI_ASSASSIN_M || nClassType == GLCI_ASSASSIN_W )
    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ASSASSIN )
        {
            m_pPageWearEx = new CInventoryPageWearEx;
            m_pPageWearEx->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR_EX );
            m_pPageWearEx->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWearEx );
        }
        else
        {
            m_pPageWear = new CInventoryPageWear;
            m_pPageWear->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_WINDOW_INVENTORY_PAGEWEAR );
            m_pPageWear->CreateSubControl ( nClassType );
            RegisterControl ( m_pPageWear );
        }
    }


        m_pVehicleWindow = new CVehicleWindow;
        m_pVehicleWindow->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_VEHICLEWINDOW );
        m_pVehicleWindow->CreateSubControl ();
        RegisterControl ( m_pVehicleWindow );
        
        m_pPetWindow = new CPetWindow;
        m_pPetWindow->CreateSub ( this, "RNCHARACTER_WINDOW_WEAR_WINDOW", UI_FLAG_DEFAULT, CHARACTER_PETWINDOW );
        m_pPetWindow->CreateSubControl ();
        RegisterControl ( m_pPetWindow );
        SetVisibleSingle( 0 );
        


    {
        m_pClubMark = CreateControl ( "CLUB_WINDOW_MARK_CHARACTERWINDOW" );        
        m_pClubMark->SetUseRender ( TRUE );
    }
    
    m_pAcademy_Department = CreateStaticControl ( "RNCHARACTER_WINDOW_ACADEMY_DEPARTMENT_TEXT", pFont, nAlignLeft );


    m_pSchoolText = CreateStaticControl ( "CHARACTER_SCHOOL_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );


    m_pCopyRightText = CreateStaticControl ( "CHARACTER_COPYRIGHT_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );


    m_pPKStateText = CreateStaticControl ( "CHARACTER_PKSTATE_TEXT", pFont, nAlignLeft );
    
    CBasicTextBox* pTextBox = CreateStaticControl ( "RNCHARACTER_WINDOW_BRIGHT_TEXT", pFont8Shadow, nAlignLeft );
    pTextBox->AddText ( ID2GAMEWORD("CHARACTER_SOCIAL_STATIC", 5), dwWhite );


    m_pGradeText = CreateStaticControl ( "RNCHARACTER_WINDOW_CONTRIBUTION_POINT_TEXT", pFont8Shadow, nAlignLeft );
    m_pGradeValue = CreateStaticControl ( "RNCHARACTER_WINDOW_CONTRIBUTION_POINT_VALUE", pFont8Shadow, nAlignLeft );
    
    m_pActivityPointText = CreateStaticControl ( "RNCHARACTER_WINDOW_ACTIVITY_POINT_TEXT", pFont8Shadow, nAlignLeft );
    m_pActivityPointValue = CreateStaticControl ( "RNCHARACTER_WINDOW_ACTIVITY_POINT_VALUE", pFont8Shadow, nAlignLeft );
    
    m_pBrightFrame = CreateControl ( "RNCHARACTER_WINDOW_BRIGHTBAR",CHARACTER_BIRGHTER );        
    m_pBrightSlider = CreateControl ( "RNCHARACTER_WINDOW_BRIGHTBAR_THUMB" );


    m_pPointTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POINT_TEXT", pFont, nAlignLeft );
    m_pPointText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POINT_VALUE", pFont, nAlignLeft );


    m_pPointTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_POINT"), dwWhite );


    m_pPowTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POW_TEXT", pFont6Shadow, nAlignLeft );
    m_pDexTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_DEX_TEXT", pFont6Shadow, nAlignLeft );
    m_pSpiTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_SPI_TEXT", pFont6Shadow, nAlignLeft );
    m_pStrTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STR_TEXT", pFont6Shadow, nAlignLeft );
    m_pStaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STA_TEXT", pFont6Shadow, nAlignLeft );


    m_pPowTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 0), dwWhite );
    m_pDexTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 1), dwWhite );
    m_pSpiTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 2), dwWhite );
    m_pStrTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 4), dwWhite );
    m_pStaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STAT_STATIC", 5), dwWhite );


    m_pPowText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POW_VALUE", pFont6Shadow, nAlignCenter );
    m_pDexText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_DEX_VALUE", pFont6Shadow, nAlignCenter );
    m_pSpiText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_SPI_VALUE", pFont6Shadow, nAlignCenter );
    m_pStrText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STR_VALUE", pFont6Shadow, nAlignCenter );
    m_pStaText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STA_VALUE", pFont6Shadow, nAlignCenter );


    m_pPowTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_POW_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pDexTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_DEX_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pSpiTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_SPI_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pStrTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STR_UP_VALUE", pFont6Shadow, nAlignCenter );
    m_pStaTextUp = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_1_STA_UP_VALUE", pFont6Shadow, nAlignCenter );


    CString    strButtonPlus[5] = 
    {
        "RNCHARACTER_WINDOW_STAT_POW_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_DEX_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_SPI_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STR_PLUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STA_PLUS_BUTTON"
    };


    CString    strButtonMinus[5] = 
    {
        "RNCHARACTER_WINDOW_STAT_POW_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_DEX_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_SPI_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STR_MINUS_BUTTON",
        "RNCHARACTER_WINDOW_STAT_STA_MINUS_BUTTON"
    };


    for ( int i = 0; i < 5; i++ )
    {    
        m_pButtonPlus[i] = CreateTextButton24 ( strButtonPlus[i].GetString (), CHARACTER_WINDOW_STAT_POW_PLUS_BUTTON + i, "+" );
        m_pButtonMinus[i] = CreateTextButton24 ( strButtonMinus[i].GetString (), CHARACTER_WINDOW_STAT_POW_MINUS_BUTTON + i, "-" );
    }


    m_pButtonOk = CreateTextButton25 ( "RNCHARACTER_WINDOW_STAT_APPLY_BUTTON", CHARACTER_WINDOW_STAT_OK , ID2GAMEWORD("CHARACTER_STAT_APPLY") );
    m_pButtonCancel = CreateTextButton25 ( "RNCHARACTER_WINDOW_STAT_INIT_BUTTON", CHARACTER_WINDOW_STAT_CANCEL , ID2GAMEWORD("CHARACTER_STAT_INIT") );


    m_pDamageHighTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MAX_TEXT", pFont6Shadow, nAlignLeft );
    m_pDamageLowTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MIN_TEXT", pFont6Shadow, nAlignLeft );
    m_pDefenseTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_DEFENSE_TEXT", pFont6Shadow, nAlignLeft );
    m_pReqPaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_FIGHT_TEXT", pFont6Shadow, nAlignLeft );
    m_pReqSaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SHOOT_TEXT", pFont6Shadow, nAlignLeft );
    m_pReqMaTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_STAMINA_TEXT", pFont6Shadow, nAlignLeft );
    m_pHitRateTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HIT_TEXT", pFont6Shadow, nAlignLeft );
    m_pAvoidRateTextv = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_AVOID_TEXT", pFont6Shadow, nAlignLeft );
    m_pHPTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HP_TEXT", pFont6Shadow, nAlignLeft );
    m_pMPTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_MP_TEXT", pFont6Shadow, nAlignLeft );
    m_pSPTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SP_TEXT", pFont6Shadow, nAlignLeft );
    
    m_pDamageHighTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 14), dwWhite );
    m_pDamageLowTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 15), dwWhite );
    m_pDefenseTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 3), dwWhite );
    m_pReqPaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 4), dwWhite );
    m_pReqSaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 5), dwWhite );
    m_pReqMaTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 11), dwWhite );
    m_pHitRateTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 9), dwWhite );
    m_pAvoidRateTextv->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 10), dwWhite );
    m_pHPTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 16), dwWhite );
    m_pMPTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 17), dwWhite );
    m_pSPTextStatic->AddText ( ID2GAMEWORD("CHARACTER_STATUS_STATIC", 18), dwWhite );


    m_pDamageHighText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MAX_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pDamageLowText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MIN_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pDefenseText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_DEFENSE_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pReqPaText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_FIGHT_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pReqSaText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SHOOT_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pReqMaText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_STAMINA_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pHitRateText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HIT_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pAvoidRateText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_AVOID_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pHPText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HP_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pMPText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_MP_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );
    m_pSPText  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SP_VALUE", pFont6Shadow, TEXT_ALIGN_RIGHT );


    /*m_pDamageHighTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MAX_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pDamageLowTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_ATTACK_MIN_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pDefenseTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_DEFENSE_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pReqPaTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_FIGHT_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pReqSaTextUp    = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SHOOT_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pReqMaTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_STAMINA_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pHitRateTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HIT_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pAvoidRateTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_AVOID_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pHPTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_HP_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pMPTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_MP_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );
    m_pSPTextUp  = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_2_SP_UP_VALUE", pFont8Shadow, TEXT_ALIGN_RIGHT );*/


    m_pFireTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_FIRE_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pColdTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_COLD_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pElectricTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_ELECTRIC_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pPoisonTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_POISON_RESIST_TEXT", pFont6Shadow, nAlignLeft );
    m_pSpiritTextStatic = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_SPIRIT_RESIST_TEXT", pFont6Shadow, nAlignLeft );


    m_pFireTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 1), dwWhite );
    m_pColdTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 2), dwWhite );
    m_pElectricTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 3), dwWhite );
    m_pPoisonTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 4), dwWhite );
    m_pSpiritTextStatic->AddText ( ID2GAMEWORD("CHARACTER_RESI_STATIC", 5), dwWhite );


    m_pFireText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_FIRE_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pColdText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_COLD_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pElectricText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_ELECTRIC_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pPoisonText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_POISON_RESIST_VALUE", pFont6Shadow, nAlignLeft );
    m_pSpiritText = CreateStaticControl ( "RNCHARACTER_WINDOW_STAT_3_SPIRIT_RESIST_VALUE", pFont6Shadow, nAlignLeft );


    m_pLevelText = CreateStaticControl ( "CHARACTER_LEVEL_AND_NAME_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );
    m_pClubText = CreateStaticControl ( "CHARACTER_CLUB_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );
    m_pBadgeText = CreateStaticControl ( "CHARACTER_BADGE_TEXT", pFont8Shadow, TEXT_ALIGN_CENTER_X );
    {
        CUIControl    TempControl;
        TempControl.Create ( 1, "CHARACTER_SCHOOL_MARK" );


        const UIRECT& rcLocalPos = TempControl.GetLocalPos ();


        CString strSchoolMark[] = 
        {
            "NAME_DISPLAY_SCHOOL1",
            "NAME_DISPLAY_SCHOOL2",
            "NAME_DISPLAY_SCHOOL3"
        };


        for ( int i = 0; i < nSCHOOL_MARK; ++i )
        {
            m_pSchoolMark[i] = CreateControl ( strSchoolMark[i].GetString() );
            m_pSchoolMark[i]->SetLocalPos ( rcLocalPos );
            m_pSchoolMark[i]->SetVisibleSingle ( FALSE );
        }
    }
}
CBasicTextButton*  CCharacterWindow::CreateTextButton ( const char* szButton, UIGUID ControlID, const char* szText )
{
    const int nBUTTONSIZE = CBasicTextButton::SIZE23;
    CBasicTextButton* pTextButton = new CBasicTextButton;
    pTextButton->CreateSub ( this, "BASIC_TEXT_BUTTON23", UI_FLAG_XSIZE, ControlID );
    pTextButton->CreateBaseButton ( szButton, nBUTTONSIZE, CBasicButton::RADIO_FLIP, szText );
    RegisterControl ( pTextButton );
    return pTextButton;
}


void CCharacterWindow::SetGlobalPos(const D3DXVECTOR2& vPos)
{
    CUIGroup::SetGlobalPos( vPos );
    const GLCHARLOGIC& sCharData = GLGaeaClient::GetInstance().GetCharacterLogic ();    
    
    SetBright( sCharData );
}
void CCharacterWindow::LoadComboData()
{
    m_pComboBoxNickNameRollOver->ClearText ();
    for ( int i = 0; i < EMPTYITEMOPT_SIZE; i++ )
    {
        m_pComboBoxNickNameRollOver->SetTextAlign( TEXT_ALIGN_CENTER_X );
        m_pComboBoxNickNameRollOver->AddText( (char*)ID2GAMEWORD("PARTY_MODAL_ITEM_OPTION", i) );
    }
}
void CCharacterWindow::LoadItem ()
{
    m_pComboBoxNickNameOpen->SetTextAlign( TEXT_ALIGN_CENTER_X );
    m_pComboBoxNickNameOpen->SetText ( (char*)ID2GAMEWORD("PARTY_MODAL_ITEM_OPTION", nIndex) );
}
/*void CCharacterWindow::SetVisibleSingle ( BOOL bVisible )
{
    CUIWindow::SetVisibleSingle( bVisible );


    if( bVisible )
    {
        const GLCHARLOGIC& sCharData = GLGaeaClient::GetInstance().GetCharacterLogic ();
        
        if( m_pPageWearEx )
        {
            if( GLGaeaClient::GetInstance().GetCharacter()->IsUseArmSub() )
            {
                m_pPageWearEx->SetTabButton( FALSE );
            }
            else
            {
                m_pPageWearEx->SetTabButton( TRUE );
            }


        }
    }
}*/


void CCharacterWindow::SetArmSwapTabButton( BOOL bArmSub )
{
    if( m_pPageWearEx )
    {
        m_pPageWearEx->SetTabButton( bArmSub );
    }
}
HRESULT CCharacterWindow::InitDeviceObjects ( LPDIRECT3DDEVICEQ pd3dDevice )
{
    GASSERT( pd3dDevice );
    m_pd3dDevice = pd3dDevice;


    HRESULT hr = S_OK;
    {
        hr = CUIWindowEx::InitDeviceObjects( pd3dDevice );
        //hr = m_pd3dDevice->GetDeviceCaps ( &m_d3dCaps );
        if ( FAILED ( hr ) ) return hr;
    }
    m_CharacterNew = GLGaeaClient::GetInstance().GetCharacter();


    D3DXVECTOR3 m_vPos = D3DXVECTOR3(12.0f,-135.0f,400.0f);
    D3DXVECTOR3    m_vDir = m_CharacterNew->GetDirectionVector();
    D3DXVECTOR3 m_vDirOrig = m_CharacterNew->GetOrig();


    //D3DXMATRIX matTrans, matYRot;
    //D3DXMatrixTranslation ( &matTrans, m_vPos.x, m_vPos.y, m_vPos.z );
    //float fThetaY = DXGetThetaYFromDirection ( m_vDir, m_vDirOrig );
    //D3DXMatrixRotationY ( &matYRot, fThetaY );


    EMCHARINDEX emIndex = CharClassToIndex( m_CharacterNew->m_emClass );
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( GLCONST_CHAR::szCharSkin[emIndex], m_pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;


    SAFE_DELETE( m_pSkinChar );
    m_pSkinChar = new DxSkinChar;
    m_pSkinChar->SetCharData ( pSkinChar, m_pd3dDevice, TRUE );
    UpdateSuit ();


    return S_OK;
}
BOOL CCharacterWindow::IsCurUseArm( EMSLOT emSlot )
{
    if( IsUseArmSub() )
    {
        if( emSlot == SLOT_RHAND || emSlot == SLOT_LHAND ) return FALSE;
    }
    else
    {
        if( emSlot == SLOT_RHAND_S || emSlot == SLOT_LHAND_S ) return FALSE;
    }




    return TRUE;
}






//HRESULT CCharacterWindow::Create ();
//{
//}
//    Note : Adding : GM Glenox | 11-16-2013 | Character Render 
/*HRESULT CCharacterWindow::Create (DWORD dwGaeaID, LPDIRECT3DDEVICEQ pd3dDevice )
{
    GASSERT(pd3dDevice);
    HRESULT hr;


    m_pd3dDevice = pd3dDevice;
    m_dwGaeaID = dwGaeaID;


    //    Note : Adding : GM Glenox | 11-16-2013 | Character Render 
    //
EMCHARINDEX emIndex = CharClassToIndex( m_CharacterNew->m_emClass );
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( GLCONST_CHAR::szCharSkin[emIndex], pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;


    SAFE_DELETE(m_pSkinChar);
    m_pSkinChar = new DxSkinChar;
    m_pSkinChar->SetCharData ( pSkinChar, pd3dDevice, TRUE );
    UpdateSuit ();


    // Note : Control Hieght
    m_pSkinChar->GetAABBBox( m_vMaxOrg, m_vMinOrg );
    m_fHeight = m_vMaxOrg.y - m_vMinOrg.y;




    //    Note : Adding : GM Glenox | 11-16-2013 | Character Render 
    //
/*    if ( pCharData->dwFLAGS & SDROP_CHAR::CHAR_GEN )
    {
//        if ( !IsSTATE(EM_REQ_VISIBLENONE) && !IsSTATE(EM_REQ_VISIBLEOFF) )
        {
            D3DXMATRIX matEffect;
            D3DXMatrixTranslation ( &matEffect, m_vPos.x, m_vPos.y, m_vPos.z );


//            STARGETID sTargetID(CROW_PC,pCharData->dwGaeaID,m_vPos);
            DxEffGroupPlayer::GetInstance().NewEffGroup
            (
            GLCONST_CHAR::strREBIRTH_EFFECT.c_str(),
                matEffect,
                &sTargetID
            );
        }
    }


    if ( !m_pSkinChar->GETCURANIMNODE() )
    {
        CDebugSet::ToLogFile ( "ERORR : current animation node null point error [ %s ] [ M %d S %d ]", m_pSkinChar->GetFileName(), m_pSkinChar->GETCURMTYPE(), m_pSkinChar->GETCURSTYPE() );
        m_pSkinChar->DEFAULTANI ();
    }


    return S_OK;
}*/


HRESULT CCharacterWindow::SkinLoad ( LPDIRECT3DDEVICEQ pd3dDevice )
{
    EMCHARINDEX emIndex = CharClassToIndex(m_CharacterNew->m_emClass);
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( GLCONST_CHAR::szCharSkin[emIndex], pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;




    SAFE_DELETE(m_pSkinChar);
    m_pSkinChar = new DxSkinChar;


    m_pSkinChar->SetCharData ( pSkinChar, pd3dDevice, TRUE );
    
    UpdateSuit();


    return S_OK;
}


HRESULT CCharacterWindow::SkinLoadForTool( LPDIRECT3DDEVICEQ pd3dDevice, const char* szFile )
{
    EMCHARINDEX emIndex = CharClassToIndex(m_CharacterNew->m_emClass);
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().LoadData( szFile, pd3dDevice, TRUE );
    if ( !pSkinChar )    return E_FAIL;




    SAFE_DELETE(m_pSkinChar);
    m_pSkinChar = new DxSkinChar;


    m_pSkinChar->SetCharData ( pSkinChar, pd3dDevice, TRUE );




//    UpdateSuit( TRUE );


    // Note : 1.AABB Boxธฆ ฐกมฎฟยดู. 2.ณ๔ภฬธฆ ฐ่ปEุ ณ๕ดยดู.
    m_pSkinChar->GetAABBBox( m_vMaxOrg, m_vMinOrg );
    m_fHeight = m_vMaxOrg.y - m_vMinOrg.y;


    //    Note : ฟกดฯธภฬผว รสฑโศญ.
    //
    if ( m_pSkinChar )
    {
//        m_pSkinChar->SELECTANI ( AN_SHOCK, GLCHARLOGIC::m_emANISUBTYPE );


        //Added by geger009 | 11-8-2012 | add VPS and VCF code
        if ( m_pSkinChar->m_pSkinVehicle )
        {
            m_pSkinChar->m_pSkinVehicle->SELECTANI( AN_GUARD_N , AN_SUB_NONE );
        }


        if ( !m_pSkinChar->GETCURANIMNODE() )
        {
//            CDebugSet::ToLogFile ( "ERORR : current animation node null point error [ %s ] [ M %d S %d ]", m_pSkinChar->m_szFileName, AN_SHOCK, GLCHARLOGIC::m_emANISUBTYPE );
            m_pSkinChar->DEFAULTANI ();
        }
    }


    //    Note : ฝบลณ น๖วม, ป๓ลยภฬปEศฟฐEปผบ.
//    FACTEFF::ReNewEffect ( STARGETID(CROW_PC,m_dwGaeaID,m_vPos), m_pSkinChar, m_sSKILLFACT, m_sSTATEBLOWS, m_matTrans, m_vDir );






    return S_OK;
}


HRESULT CCharacterWindow::UpdateSuit ()
{
    GASSERT( m_pd3dDevice );


    EMCHARINDEX emIndex = CharClassToIndex( m_CharacterNew->m_emClass );
    DxSkinCharData* pSkinChar = DxSkinCharDataContainer::GetInstance().FindData ( GLCONST_CHAR::szCharSkin[emIndex] );
    if ( !pSkinChar )    return E_FAIL;


    const GLCONST_CHARCLASS &sCONST = GLCONST_CHAR::cCONSTCLASS[emIndex];


    if ( sCONST.dwHEADNUM > m_CharacterNew->m_wFace )
    {
        std::string strHEAD_CPS = sCONST.strHEAD_CPS[m_CharacterNew->m_wFace];


        PDXCHARPART pCharPart = NULL;
        pCharPart = m_pSkinChar->GetPiece(PIECE_HEAD);        //    ว๖มฆ ภๅย๘ ฝบลฒ.


        if ( pCharPart && strcmp(strHEAD_CPS.c_str(),pCharPart->GetFileName()) )
        {
            m_pSkinChar->SetPiece ( strHEAD_CPS.c_str(), m_pd3dDevice, 0x0, 0, TRUE );
        }
    }


    if ( sCONST.dwHAIRNUM > m_CharacterNew->m_wHair )
    {
        std::string strHAIR_CPS = sCONST.strHAIR_CPS[m_CharacterNew->m_wHair];
    




        PDXCHARPART pCharPart = NULL;
        pCharPart = m_pSkinChar->GetPiece(PIECE_HAIR);        //    ว๖มฆ ภๅย๘ ฝบลฒ.






        if ( pCharPart && strcmp(strHAIR_CPS.c_str(),pCharPart->GetFileName()) )
        {
            m_pSkinChar->SetPiece ( strHAIR_CPS.c_str(), m_pd3dDevice, 0x0, 0, TRUE );
        }
    }




    m_pSkinChar->SetHairColor( m_CharacterNew->m_wHairColor );












    for ( int i=0; i<SLOT_NSIZE_S_2; i++ )
    {
        // ว๖ภ็ ภๅย๘ม฿ภฮ นซฑโฐก พฦดฯธ้ ณัพ๎ฐฃดู.
        if( !IsCurUseArm( EMSLOT(i) ) ) continue;












        SITEMCUSTOM &ItemClient = m_CharacterNew->m_PutOnItems[i];












        SNATIVEID nidITEM = ItemClient.nidDISGUISE;
        if ( nidITEM==SNATIVEID(false) )    nidITEM = ItemClient.sNativeID;












        /*if ( !m_bVehicle && i == SLOT_VEHICLE  ) nidITEM = SNATIVEID(false);
        else if ( i == SLOT_VEHICLE )
        {
            nidITEM = m_sVehicle.GetSkinID();
            if ( nidITEM == SNATIVEID(false) )
            {
                m_sVehicle.m_sVehicleID = ItemClient.sNativeID;
                nidITEM = ItemClient.sNativeID;
            }
        }*/




        if ( nidITEM == SNATIVEID(false) )
        {
            //    Note : ฑโบป ฝบลฒฐ๚ ม๖ฑ ภๅย๘ตศ ฝบลฒภฬ ฦฒธฑ ฐๆฟ์.
            //    SLOT->PIECE.
            PDXSKINPIECE pSkinPiece = NULL;    //    ฑโบป ฝบลฒ.
            PDXCHARPART pCharPart = NULL;    //    ว๖มฆ ภๅย๘ ฝบลฒ.


            EMPIECECHAR emPiece = SLOT_2_PIECE(EMSLOT(i));
            if ( emPiece!=PIECE_SIZE )
            {
                pSkinPiece = pSkinChar->GetPiece(emPiece);    //    ฑโบป ฝบลฒ.
                pCharPart = m_pSkinChar->GetPiece(emPiece);    //    ว๖มฆ ภๅย๘ ฝบลฒ.
            }


            if ( pSkinPiece )
            {
                if ( pCharPart && strcmp(pSkinPiece->m_szFileName,pCharPart->GetFileName()) )
                    m_pSkinChar->SetPiece ( pSkinPiece->m_szFileName, m_pd3dDevice, 0x0, 0, TRUE );
            }
            else
            {
                if ( pCharPart )    m_pSkinChar->ResetPiece(emPiece);
            }
        }
        else
        {
            SITEM* pItem = GLItemMan::GetInstance().GetItem ( nidITEM );
            if ( pItem )
            {
                m_pSkinChar->SetPiece ( pItem->GetWearingFile(emIndex), m_pd3dDevice, NULL, ItemClient.GETGRADE_EFFECT(), TRUE );
            }
        }
    }


    /*if( m_dwTransfromSkill != SNATIVEID::ID_NULL )
    {












        PGLSKILL pSkill = GLSkillMan::GetInstance().GetData ( m_sSKILLFACT[m_dwTransfromSkill].sNATIVEID.wMainID, m_sSKILLFACT[m_dwTransfromSkill].sNATIVEID.wSubID );
        if( pSkill ) 
        {
            for( BYTE i = 0; i < SKILL::EMTRANSFORM_NSIZE; i++ )
            {
                if( m_CharData.wSex == 1 )
                {                
                    m_pSkinChar->SetPiece ( pSkill->m_sSPECIAL_SKILL.strTransform_Man[i].c_str(), m_pd3dDevice, 0X0, 0, TRUE );
                }else{
                    m_pSkinChar->SetPiece ( pSkill->m_sSPECIAL_SKILL.strTransform_Woman[i].c_str(), m_pd3dDevice, 0X0, 0, TRUE );
                }
            }
        }
    }






    //    Note : ฝบลณ น๖วม, ป๓ลยภฬป๓ ศฟฐ๚ ปผบ.
    FACTEFF::ReNewEffect ( STARGETID(CROW_PC,m_dwGaeaID,m_vPos), m_pSkinChar, m_sSKILLFACT, m_sSTATEBLOWS, m_matTrans, m_vDir );


    if( GLCONST_CHAR::cCONSTCLASS[emIndex].strCLASS_EFFECT.size() != 0 )
    {












        DxEffcharDataMan::GetInstance().PutPassiveEffect ( m_pSkinChar, GLCONST_CHAR::cCONSTCLASS[emIndex].strCLASS_EFFECT.c_str(), &m_vDir );
    }*/










    return S_OK;
}






HRESULT CCharacterWindow::FrameMove ( float fTime, float fElapsedTime )
{
    GASSERT( m_pd3dDevice );


    D3DXVECTOR3 vFromPt        = DxViewPort::GetInstance().GetFromPt();
    D3DXVECTOR3 vLookatPt    = DxViewPort::GetInstance().GetLookatPt();
    D3DXVECTOR3 vUpVec        = D3DXVECTOR3( 0.0f, 1.0f, 0.0f );


    m_pSkinChar->FrameMove( fTime,fElapsedTime );


    D3DXMATRIX matTrans , matYRot;
    D3DXMatrixTranslation ( &matTrans, vLookatPt.x, vLookatPt.y, vLookatPt.z );
    float fThetaY = DXGetThetaYFromDirection ( vUpVec, vFromPt );
    D3DXMatrixRotationY ( &matYRot, fThetaY );


    // Get D3DX to fill in the matrix values
    D3DXMATRIX matView;
    D3DXMatrixLookAtLH( &matView, &vFromPt, &vLookatPt, &vUpVec );


    // Set our view matrix
    //m_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );


    m_matTrans = matTrans ;


    return S_OK;
}




HRESULT    CCharacterWindow::Render ( LPDIRECT3DDEVICEQ pd3dDevice, CLIPVOLUME &cv, BOOL bRendAABB )
{
    GASSERT( pd3dDevice );
    CLIPVOLUME &CV = DxViewPort::GetInstance().GetClipVolume ();


    //if ( m_bNeedData && !(m_dwRevData&RECEIVE_CHARDATA) )    return S_FALSE;
    if ( !m_pSkinChar )    


    if ( bRendAABB ) EDITMESHS::RENDERAABB ( pd3dDevice, m_vMax, m_vMin );    //    ลืฝบฦฎฟ๋.
    if( !IsVisible() ) return S_OK;


    HRESULT hr = S_OK;
hr = CUIWindowEx::Render ( pd3dDevice );
        if ( FAILED ( hr ) ) return hr;


    m_pClubMark->SetVisibleSingle ( FALSE );
    {
        hr = CUIWindowEx::Render ( pd3dDevice );
        if( FAILED ( hr ) ) return hr;
    }
    m_pClubMark->SetVisibleSingle ( TRUE );


    GLCLUB& sCLUB = GLGaeaClient::GetInstance().GetCharacter ()->m_sCLUB;


    //    ฑๆตๅฟ๘ภฬ พฦดั ฐๆฟ์
    if ( sCLUB.m_dwID==CLUB_NULL ) return S_OK;


    int nServer = static_cast<int>(GLGaeaClient::GetInstance().GetCharacter()->m_dwServerID);
    int nID = static_cast<int>(sCLUB.m_dwID);
    DWORD dwVer = sCLUB.m_dwMarkVER;


    //if ( !DxClubMan::GetInstance().IsValidData ( nServer, nID, dwVer ) ) return S_OK;
    const DxClubMan::DXDATA& sMarkData = DxClubMan::GetInstance().GetClubData ( pd3dDevice, nServer, nID, dwVer );


    //const UIRECT& rcGlobalPos = m_pClubMark->GetGlobalPos ();
    //m_pClubMark->SetGlobalPos ( UIRECT ( ceil(rcGlobalPos.left), ceil(rcGlobalPos.top),
    //    ceil(rcGlobalPos.sizeX), ceil(rcGlobalPos.sizeY) ) );


    m_pClubMark->SetTexturePos ( 0, sMarkData.vTex_1_LU );
    m_pClubMark->SetTexturePos ( 1, sMarkData.vTex_2_RU );
    m_pClubMark->SetTexturePos ( 3, sMarkData.vTex_3_LD );
    m_pClubMark->SetTexturePos ( 2, sMarkData.vTex_4_RD );


    //    ธธต้พ๎พ฿วิ
    m_pClubMark->SetTexture ( sMarkData.pddsTexture );
    {
        hr = m_pClubMark->Render ( pd3dDevice );
        if( FAILED ( hr ) ) return hr;
    }


    return S_OK;
}
void CCharacterWindow::SetVisiblePage ( int nPage )
{
    const EMCHARCLASS emCharClass = DxGlobalStage::GetInstance().GetGameStage()->GetCharJoinData().m_CharData2.m_emClass;
    const int nClassType = CharClassToIndex ( emCharClass );


    for ( int i = 0; i < nMAXPAGENEW; i++ )
    {
        m_pPageButton[i]->SetFlip ( FALSE );        
    }


    m_pPageWear->SetVisibleSingle ( FALSE );
    m_pPageWearEx->SetVisibleSingle ( FALSE );
    m_pVehicleWindow->SetVisibleSingle ( FALSE );
    m_pPetWindow->SetVisibleSingle ( FALSE );


    if( nClassType == GLCI_FIGHTER_M || nClassType == GLCI_FIGHTER_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_BRAWLER )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }
    else if( nClassType == GLCI_ARMS_M || nClassType == GLCI_ARMS_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SWORDSMAN )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_ARCHER_M || nClassType == GLCI_ARCHER_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ARCHER)    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_SPIRIT_M || nClassType == GLCI_SPIRIT_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SHAMMAN )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_EXTREME_M || nClassType == GLCI_EXTREME_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_EXTREME )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_SCIENCE_M || nClassType == GLCI_SCIENCE_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_SCIENCE )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    
    else if( nClassType == GLCI_ASSASSIN_M || nClassType == GLCI_ASSASSIN_W )    {
        if (GLCONST_CHAR::bDUAL_WEAPON_ASSASSIN )    {
            m_pPageWearEx->SetVisibleSingle ( FALSE );    }
        else    {    m_pPageWear->SetVisibleSingle ( FALSE );    }
    }    


    if ( nPage == 0 )
    {
        m_pPageButton[0]->SetFlip ( TRUE );


        if( nClassType == GLCI_FIGHTER_M || nClassType == GLCI_FIGHTER_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_BRAWLER )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }
        else if( nClassType == GLCI_ARMS_M || nClassType == GLCI_ARMS_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_SWORDSMAN )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_ARCHER_M || nClassType == GLCI_ARCHER_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_ARCHER)    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_SPIRIT_M || nClassType == GLCI_SPIRIT_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_SHAMMAN )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_EXTREME_M || nClassType == GLCI_EXTREME_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_EXTREME )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_SCIENCE_M || nClassType == GLCI_SCIENCE_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_SCIENCE )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
        else if( nClassType == GLCI_ASSASSIN_M || nClassType == GLCI_ASSASSIN_W )    {
            if (GLCONST_CHAR::bDUAL_WEAPON_ASSASSIN )    {
                m_pPageWearEx->SetVisibleSingle ( TRUE );    }
            else    {    m_pPageWear->SetVisibleSingle ( TRUE );    }
        }    
    }


    else if ( nPage == 2 )
    {
        m_pPageButton[2]->SetFlip ( TRUE );
        m_pPetWindow->SetVisibleSingle ( TRUE );
    }
    else if ( nPage == 1 )
    {
        m_pPageButton[1]->SetFlip ( TRUE );
        m_pVehicleWindow->SetVisibleSingle ( TRUE );
    }


}

Check All CharacterWindow
 
how to fix ?
-----------------------------------------------
ERROR REPORT
-----------------------------------------------

Execution time : 2014-03-06 23:38:55
[2014-03-06 23:38:59] 117,15, IN_117_015 : À߸øµÈ apply numÀÔ´Ï´Ù.
[2014-03-06 23:38:59] 117,19, IN_117_019 : À߸øµÈ apply numÀÔ´Ï´Ù.
[2014-03-06 23:39:00] ERROR : SaleInvenLoadFile(), inven_Premium_3.crowsale
[2014-03-06 23:39:00] ERROR : SaleInvenLoadFile(), inven_SP_blueEvil_3.crowsale
[2014-03-06 23:39:04] file read error : C:\Users\testran\Ran World New Client\Data\Animation\a_m_safezone.bin
 
New Link for Source Please,,,,

I cant download with mega :(

===================================

I still have problem in connecting to server,client say "Internet Connection Error"

My Settings are:

Server PC dedicated = 192.168.1.6
Firewall Disable (Domain,Public & Private)

Client PC Dedicated = 192.168.1.7


Agend,Field,Session and login server already connected withour error on bind or in ports, my problem is client cant connect to Server even server cant detect an incomming connection.

any body help me?

Maybe i need a working Server Files and Client like this?

-Agend,Field,Session and login server With compatible .cfg
-glogicserver.rcc
-glogic.rcc
-param.ini
-Game.exe
and more?....


Please help.

thanks a lot God Bless :)
 
Last edited:
Back