- Joined
- Mar 20, 2012
- Messages
- 760
- Reaction score
- 368
Add skill lock and potion lock button
BasicPotionTray.cpp
Code:
#include "GLGaeaClient.h"
#include "ItemMove.h"
#include "d3dfont.h"
[COLOR="#FF0000"]#include "GameTextControl.h" <-- add this[/COLOR]
Code:
pButton->SetControlNameEx ( "狞浇吩飘饭捞 努肺令滚瓢" );
RegisterControl ( pButton );
// #endif
[COLOR="#FF0000"] CBasicButton* pLockButton = new CBasicButton;
pLockButton->CreateSub ( this, "QUICK_POTION_TRAY_LOCK_BUTTON_LOCK_H", UI_FLAG_DEFAULT, QUICK_POTION_TRAY_LOCK_BUTTON_LOCK_H );
pLockButton->CreateFlip ( "QUICK_POTION_TRAY_LOCK_BUTTON_UNLOCK_H", CBasicButton::KEEP_FLIP );
pLockButton->SetUseGlobalAction ( TRUE );
RegisterControl ( pLockButton );
SetLock(TRUE);[/COLOR]
Code:
void CBasicPotionTray::TranslateUIMessage ( UIGUID ControlID, DWORD dwMsg )
{
switch ( ControlID )
{
[COLOR="#FF0000"]case QUICK_POTION_TRAY_LOCK_BUTTON_LOCK_H:
{
if ( CHECK_MOUSE_IN ( dwMsg ) )
{
CInnerInterface::GetInstance().SHOW_COMMON_LINEINFO ( ID2GAMEINTEXT("LOCK_POTION_MESSAGE"), NS_UITEXTCOLOR::WHITE );
if ( CHECK_LB_UP_LIKE ( dwMsg ) )
{
if(!bPotionLock)
{
SetLock(TRUE);
}
else
{
SetLock(FALSE);
}
}
}
}
break;[/COLOR]
case QUICK_POTION_SLOT0:
case QUICK_POTION_SLOT1:
case QUICK_POTION_SLOT2:
case QUICK_POTION_SLOT3:
case QUICK_POTION_SLOT4:
case QUICK_POTION_SLOT5:
Code:
if ( dwMsg & UIMSG_LB_UP )
{
const SITEMCUSTOM& sItemCustom = GLGaeaClient::GetInstance().GetCharacter()->GET_HOLD_ITEM ();
if ( sItemCustom.sNativeID != NATIVEID_NULL () ) // 汲沥
{
[COLOR="#FF0000"]if(bPotionLock)
{
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("LOCK_POTION_MESSAGE_PRESS") );
return;
}[/COLOR]
GLGaeaClient::GetInstance().GetCharacter()->ReqItemQuickSet ( (WORD) nIndex );
}
Code:
// 狞 酒捞袍 秦力
if ( dwMsg & UIMSG_RB_UP )
{
[COLOR="#FF0000"]if(bPotionLock)
{
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("LOCK_POTION_MESSAGE_PRESS") );
return;
}[/COLOR]
GLGaeaClient::GetInstance().GetCharacter()->ReqItemQuickReSet ( (WORD) nIndex );
}
Code:
case QUICK_POTION_TRAY_CLOSE_BUTTON:
{
if ( CHECK_MOUSE_IN ( dwMsg ) )
{
if ( CHECK_LB_UP_LIKE ( dwMsg ) )
{
[COLOR="#FF0000"]if(bPotionLock)
{
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("LOCK_POTION_MESSAGE_PRESS") );
return;
}[/COLOR]
AddMessageEx ( UIMSG_TRAY_CLOSE_LBUP );
}
}
}
break;
}
}
Code:
void CBasicPotionTray::SetShotcutText ( DWORD nID, CString& strTemp )
{
m_pSlot[nID]->SetShotcutText(strTemp );
[COLOR="#FF0000"]}
void CBasicPotionTray::SetLock(BOOL bLock)
{
bPotionLock = bLock;[/COLOR]
}
BasicPotionTray.h
Code:
private:
enum
{
QUICK_POTION_SLOT0 = NO_ID + 1,
QUICK_POTION_SLOT1,
QUICK_POTION_SLOT2,
QUICK_POTION_SLOT3,
QUICK_POTION_SLOT4,
QUICK_POTION_SLOT5,
[COLOR="#FF0000"] QUICK_POTION_TRAY_LOCK_BUTTON_LOCK_H,
QUICK_POTION_TRAY_LOCK_BUTTON_UNLOCK_H,[/COLOR]
QUICK_POTION_TRAY_CLOSE_BUTTON,
};
Code:
public:
int GetSlotIndex () { return m_nIndex; }
void SetSlotIndex ( int nIndex ) { m_nIndex = nIndex; }
void SetShotcutText ( DWORD nID, CString& strTemp );
[COLOR="#FF0000"] BOOL bPotionLock;
void SetLock(BOOL bLock);[/COLOR]
BasicSkillTray.cpp
Code:
const int CBasicSkillTray::nLBUPSKIP = 1;
CBasicSkillTray::CBasicSkillTray ()
: m_nLBUPSKIP(0)
, m_pSkillInfo(NULL)
[COLOR="#FF0000"], bSkillLock(false)[/COLOR]
{
memset ( m_pSlotEx, 0, sizeof ( m_pSlotEx ) );
}
CBasicSkillTray::~CBasicSkillTray ()
{
}
Code:
if ( dwMsg & UIMSG_LB_UP )
{
SNATIVEID sNativeID = pSkillWindowToTray->GetSkill ();
// 胶懦 殿废
if ( sNativeID != NATIVEID_NULL () )
{
[COLOR="#FF0000"]if(bSkillLock)
{
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("LOCK_SKILL_MESSAGE_PRESS") );
return;
}[/COLOR]
GLGaeaClient::GetInstance().GetCharacter()->ReqSkillQuickSet ( sNativeID, nG_Index );
pSkillWindowToTray->ResetSkill ();
m_nLBUPSKIP = 0;
}
Code:
// 胶懦 秦力
if ( dwMsg & UIMSG_RB_UP )
{
[COLOR="#FF0000"]if(bSkillLock)
{
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("LOCK_SKILL_MESSAGE_PRESS") );
return;
}[/COLOR]
GLGaeaClient::GetInstance().GetCharacter()->ReqSkillQuickReSet ( nG_Index );
}
}
}
break;
BasicSkillTray.h
Code:
class CBasicSkillTray : public CUIGroup
{
private:
static const int nLBUPSKIP;
[COLOR="#FF0000"]bool bSkillLock;[/COLOR]
Code:
public:
void CreateSubControl( INT nTabIndex );
[COLOR="#FF0000"] void SetLockOn() {bSkillLock = true;}
void SetLockOff() {bSkillLock = false;}[/COLOR]
SkillTrayTab.cpp
Code:
#include "BasicTextButton.h"
#include "BasicLevelDisplay.h"
[COLOR="#FF0000"]#include "UITextControl.h"[/COLOR]
INT CSkillTrayTab::NEXT_INDEX[] = {1, 2, 0};
CSkillTrayTab::CSkillTrayTab(void)
: m_nTabIndex(0)
, m_nCount(0)
[COLOR="#FF0000"], m_bSkillLock(false)[/COLOR]
{
memset( m_pSkillTray, 0, sizeof( CBasicSkillTray* ) * MAX_TAB_INDEX );
memset( m_pTextButton, 0, sizeof( CBasicTextButton* ) * MAX_TAB_INDEX );
}
Code:
// #ifndef CH_PARAM // 吝惫 牢磐其捞胶 函版
CBasicButton * pButton = new CBasicButton;
pButton->CreateSub( this, "QUICK_SKILL_TRAY_CLOSE_BUTTON", UI_FLAG_DEFAULT, QUICK_SKILL_TRAY_CLOSE_BUTTON );
pButton->CreateFlip( "QUICK_SKILL_TRAY_CLOSE_BUTTON_F", CBasicButton::MOUSEIN_FLIP );
pButton->SetUseGlobalAction ( TRUE );
RegisterControl( pButton );
// #endif
[COLOR="#FF0000"] CBasicButton * pLockButton = new CBasicButton;
pLockButton->CreateSub( this, "QUICK_SKILL_TRAY_LOCK_BUTTON_OPEN_LOCK", UI_FLAG_DEFAULT, QUICK_SKILL_TRAY_LOCK_BUTTON_OPEN_LOCK );
pLockButton->CreateFlip( "QUICK_SKILL_TRAY_LOCK_BUTTON_OPEN_UNLOCK", CBasicButton::KEEP_FLIP );
pLockButton->SetFlip( TRUE );
pLockButton->SetUseGlobalAction ( TRUE );
RegisterControl( pLockButton );
SetLock(TRUE);
[/COLOR]
}
Code:
void CSkillTrayTab::TranslateUIMessage ( UIGUID ControlID, DWORD dwMsg )
{
switch ( ControlID )
{
case QUICK_SKILL_TRAY_CLOSE_BUTTON:
{
if ( CHECK_MOUSE_IN ( dwMsg ) )
{
if ( CHECK_LB_UP_LIKE ( dwMsg ) )
{
[COLOR="#FF0000"]if(m_bSkillLock)
{
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("LOCK_SKILL_MESSAGE_PRESS") );
return;
}[/COLOR]
CInnerInterface::GetInstance().HideGroup ( GetWndID () );
CInnerInterface::GetInstance().ShowGroupBottom ( QUICK_SKILL_TRAY_OPEN_BUTTON, true );
}
}
}
break;
[COLOR="#FF0000"]case QUICK_SKILL_TRAY_LOCK_BUTTON_OPEN_LOCK:
{
if ( CHECK_MOUSE_IN ( dwMsg ) )
{
CInnerInterface::GetInstance().SHOW_COMMON_LINEINFO ( ID2GAMEINTEXT("LOCK_SKILL_MESSAGE"), NS_UITEXTCOLOR::WHITE );
if ( CHECK_LB_UP_LIKE ( dwMsg ) )
{
if(!m_bSkillLock)
{
SetLock(true);
}
else
{
SetLock(false);
}
}
}
}
break;[/COLOR]
Code:
void CSkillTrayTab::SetShotcutText ( DWORD nID, CString& strTemp )
{
m_pSkillTray[0]->SetShotcutText( nID, strTemp );
m_pSkillTray[1]->SetShotcutText( nID, strTemp );
m_pSkillTray[2]->SetShotcutText( nID, strTemp );
[COLOR="#FF0000"]}
void CSkillTrayTab::SetLock(bool bLock)
{
m_bSkillLock = bLock;
if(bLock)
{
m_pSkillTray[0]->SetLockOn();
m_pSkillTray[1]->SetLockOn();
m_pSkillTray[2]->SetLockOn();
}
else
{
m_pSkillTray[0]->SetLockOff();
m_pSkillTray[1]->SetLockOff();
m_pSkillTray[2]->SetLockOff();
}[/COLOR]
}
SkillTrayTab.h
Code:
public:
enum
{
BASIC_QUICK_SKILL_TRAY_F2 = NO_ID + 1,
BASIC_QUICK_SKILL_TRAY_F3,
BASIC_QUICK_SKILL_TRAY_F4,
BASIC_TEXT_BUTTON_F2,
BASIC_TEXT_BUTTON_F3,
BASIC_TEXT_BUTTON_F4,
BASIC_LEVEL_DISPLAY,
[COLOR="#FF0000"]QUICK_SKILL_TRAY_LOCK_BUTTON_OPEN_UNLOCK,
QUICK_SKILL_TRAY_LOCK_BUTTON_OPEN_LOCK,[/COLOR]
QUICK_SKILL_TRAY_CLOSE_BUTTON
};
Code:
public:
void CreateSubControl();
void SetTabIndex( INT nIndex ) { GASSERT( 0 <= nIndex && nIndex <= MAX_TAB_INDEX ); m_nTabIndex = nIndex; }
INT GetTabIndex() { return m_nTabIndex; }
[COLOR="#FF0000"]bool m_bSkillLock;[/COLOR]
Code:
public:
virtual void Update( int x, int y, BYTE LB, BYTE MB, BYTE RB, int nScroll, float fElapsedTime, BOOL bFirstControl );
virtual void TranslateUIMessage( UIGUID ControlID, DWORD dwMsg );
virtual void SetVisibleSingle( BOOL bVisible );
void SetShotcutText ( DWORD nID, CString& strTemp );
[COLOR="#FF0000"]void SetLock(bool bLock);[/COLOR]
For xml :
gameintext.xml
Code:
<WORD Ver="1" Id="LOCK_SKILL_MESSAGE">
<VALUE Lang="pe" Index="0">Unlock/Lock Skill Tray</VALUE>
</WORD>
<WORD Ver="1" Id="LOCK_POTION_MESSAGE">
<VALUE Lang="pe" Index="0">Unlock/Lock Potion Tray</VALUE>
</WORD>
<WORD Ver="1" Id="LOCK_SKILL_MESSAGE_PRESS">
<VALUE Lang="pe" Index="0">Skill Tray is Lock.</VALUE>
</WORD>
<WORD Ver="1" Id="LOCK_POTION_MESSAGE_PRESS">
<VALUE Lang="pe" Index="0">Potion Tray is Lock.</VALUE>
</WORD>
uiinnercfg01.xml
Code:
<CONTROL Local="Common" Id="QUICK_POTION_TRAY_LOCK_BUTTON_LOCK_H">
<WINDOW_POS X="226" Y="0" W="20" H="41" />
<TEXTURE SizeX="128" SizeY="128">GUI_skilltray_lock.dds</TEXTURE>
<TEXTURE_POS X="0" Y="40" W="20" H="41" />
</CONTROL>
<CONTROL Local="Common" Id="QUICK_POTION_TRAY_LOCK_BUTTON_UNLOCK_H">
<WINDOW_POS X="0" Y="0" W="20" H="41" />
<TEXTURE SizeX="128" SizeY="128">GUI_skilltray_lock.dds</TEXTURE>
<TEXTURE_POS X="40" Y="40" W="20" H="41" />
</CONTROL>
<CONTROL Local="Common" Id="QUICK_SKILL_TRAY_LOCK_BUTTON_OPEN_LOCK">
<WINDOW_POS X="0" Y="398" W="41" H="20" />
<TEXTURE SizeX="128" SizeY="128">GUI_skilltray_lock.dds</TEXTURE>
<TEXTURE_POS X="0" Y="0" W="41" H="20" />
</CONTROL>
<CONTROL Local="Common" Id="QUICK_SKILL_TRAY_LOCK_BUTTON_OPEN_UNLOCK">
<WINDOW_POS X="0" Y="0" W="41" H="20" />
<TEXTURE SizeX="128" SizeY="128">GUI_skilltray_lock.dds</TEXTURE>
<TEXTURE_POS X="0" Y="20" W="41" H="20" />
</CONTROL>
GUI_skilltray_lock.dds :
You must be registered to see links
GOOD LUCK
Credits :
Marckie - source code
Last edited: