Neo Source

Page 69 of 76 FirstFirst ... 195961626364656667686970717273747576 LastLast
Results 1,021 to 1,035 of 1134
  1. #1021
    Apprentice xea is offline
    MemberRank
    Jan 2014 Join Date
    8Posts

    Re: Neo Source

    mob_ch_01.chf what i need to add? when i run svrfield it always shown .? O.O

  2. #1022
    Enthusiast nattapon is offline
    MemberRank
    Oct 2013 Join Date
    39Posts

    Re: Neo Source

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

    1.png2.jpg3.png

    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 by nattapon; 20-02-14 at 08:33 AM.

  3. #1023
    Proficient Member sexual123 is offline
    MemberRank
    Aug 2011 Join Date
    178Posts

    Re: Neo Source

    i think you nid to put code in characterwindowmsg.cpp

    - - - Updated - - -

    Quote Originally Posted by nattapon View Post
    When i click vehicle and pet tap its bugtrap error
    How to fix sir

    1.png2.jpg3.png

    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 ?

  4. #1024
    Enthusiast nattapon is offline
    MemberRank
    Oct 2013 Join Date
    39Posts

    Re: Neo Source

    Quote Originally Posted by sexual123 View Post
    i think you nid to put code in characterwindowmsg.cpp

    - - - Updated - - -




    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;		
    	}
    }

  5. #1025
    Apprentice xea is offline
    MemberRank
    Jan 2014 Join Date
    8Posts

    Re: Neo Source

    Quote Originally Posted by raffy0809 View Post
    share full neo source code ready to compile with new interface and 237 skill working ep9 weapons and lightning on ups!!

    Source Code
    https://mega.co.nz/#!rJNVXQaQ!bR59Wx...LMd7dPKNWMncH0


    Client
    Ran World New Client - Скачать - 4shared - francia hershey


    Patch
    http://braker.info/raffy.rar


    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

  6. #1026
    Proficient Member tengonciang is offline
    MemberRank
    Jun 2007 Join Date
    Каламба,Location
    155Posts

    Re: Neo Source

    Quote Originally Posted by onepieceann View Post
    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

    - - - Updated - - -

    Quote Originally Posted by onepieceann View Post
    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
    Attached Thumbnails Attached Thumbnails capture.png  

  7. #1027
    Permanent Ban Eil Nahd is offline
    MemberRank
    Dec 2013 Join Date
    MysticPeak CampLocation
    347Posts

    Re: Neo Source

    I think u didnt use raffy patch?

    Quote Originally Posted by tengonciang View Post
    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

    - - - Updated - - -



    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

  8. #1028
    Proficient Member tengonciang is offline
    MemberRank
    Jun 2007 Join Date
    Каламба,Location
    155Posts

    Re: Neo Source

    Quote Originally Posted by Eil Nahd View Post
    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... -_-

  9. #1029
    TsunaKun blackcatyb is offline
    MemberRank
    Jan 2010 Join Date
    Việt NamLocation
    931Posts

    Re: Neo Source

    Quote Originally Posted by nattapon View Post
    When i click vehicle and pet tap its bugtrap error
    How to fix sir

    1.png2.jpg3.png

    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

  10. #1030
    Member mntd_k is offline
    MemberRank
    Dec 2006 Join Date
    54Posts

    Re: Neo Source

    This source pet dual skill not working right?

  11. #1031
    Permanent Ban Eil Nahd is offline
    MemberRank
    Dec 2013 Join Date
    MysticPeak CampLocation
    347Posts

    Re: Neo Source

    The source shared by raffy dont have pet and vehicle tap included u must add it by ur own :D

    Quote Originally Posted by mntd_k View Post
    This source pet dual skill not working right?

  12. #1032
    Member mntd_k is offline
    MemberRank
    Dec 2006 Join Date
    54Posts

    Re: Neo Source

    Quote Originally Posted by Eil Nahd View Post
    The source shared by raffy dont have pet and vehicle tap included u must add it by ur own :D
    bro Can u tell me how to add it.

  13. #1033
    Permanent Ban Eil Nahd is offline
    MemberRank
    Dec 2013 Join Date
    MysticPeak CampLocation
    347Posts

    Re: Neo Source

    if u have a knowledge on programing just use
    the character window with vehicle and pet tab source here and apply on this source if not use compiled one like mine

    Quote Originally Posted by mntd_k View Post
    bro Can u tell me how to add it.

  14. #1034
    Enthusiast founder23 is offline
    MemberRank
    Dec 2010 Join Date
    46Posts

    Re: Neo Source

    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

  15. #1035
    Account Upgraded | Title Enabled! zarahlee is offline
    MemberRank
    Mar 2012 Join Date
    C:\ProgramFilesLocation
    685Posts

    Re: Neo Source



    Solution?



Advertisement