#include "stdafx.h" #include "SStringDB.h" #include #include "SGameManager.h" #include "SGameMessage.h" //#include "SGameMessageUI.h" #include "SMessengerMgr.h" #include "SPlayerInfoMgr.h" #include "KUIControlButton.h" #include "SUIGuildSubMasterTabAuthority.h" SUIGuildSubMasterTabAuthority::SUIGuildSubMasterTabAuthority( SGameManager * pGameManager ) : SUIWnd( pGameManager ) { } SUIGuildSubMasterTabAuthority::~SUIGuildSubMasterTabAuthority() { Release(); } void SUIGuildSubMasterTabAuthority::Release() { } bool SUIGuildSubMasterTabAuthority::InitControls( KPoint kPos ) { KUIControlButton * pBtn = dynamicCast< KUIControlButton * >( GetChild( "button_master_01" ) ); pBtn->SetEnableColor( "<#ffffff>" ); pBtn->SetDisableColor( "<#a0a0a0>" ); pBtn = dynamicCast< KUIControlButton * >( GetChild( "button_master_02" ) ); pBtn->SetEnableColor( "<#ffffff>" ); pBtn->SetDisableColor( "<#a0a0a0>" ); return SUIWnd::InitControls( kPos ); } void SUIGuildSubMasterTabAuthority::OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd) { if( bOpen ) { } else { // 길드장 인계 팝업 윈도우 닫기. m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE, false ) ); } } void SUIGuildSubMasterTabAuthority::ProcMsgAtStatic( SGameMessage* pMsg ) { switch( pMsg->nType ) { // 길드해체. case IMSG_UI_GUILD_DESTROY : /// 2011.05.16 ProcMsgAtStatic는 정적 입력 변수이다 - prodongi //m_pGameManager->ProcMsgAtStatic( new SMSG_GUILD_COMMAND( SMSG_GUILD_COMMAND::GUILD_DESTROY ) ); m_pGameManager->ProcMsgAtStatic( &SMSG_GUILD_COMMAND( SMSG_GUILD_COMMAND::GUILD_DESTROY ) ); pMsg->bUse = true; break; case IMSG_UI_GUILD_UPGRADE: m_pGameManager->PostMsgAtDynamic( new SMSG_GUILD_COMMAND( SMSG_GUILD_COMMAND::GUILD_UPGRADE ) ); pMsg->bUse = true; break; } } void SUIGuildSubMasterTabAuthority::PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam ) { switch( nMessage ) { case KUI_MESSAGE::KBUTTON_CLICK : // 길드장 인계. if( !::_stricmp( lpszControlID, "button_master_01" ) ) { // 길드마스터인가? if( GetIsMaster() ) { //m_pGameManager->PostMsgAtDynamic( new SIMSG_REQ_OPEN_MSGBOX( SIMSG_REQ_OPEN_MSGBOX::_MSGBOXID::MSGBOX_GUILD_YES, "인계버튼" ) ); // 이전에 열려있을 경우를 대비해서 닫는다. //m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE, false ) ); KUIWnd * pPosCtrl = GetChild( "pos_master_authority_01" ); KPoint pos( 100, 100 ); if( pPosCtrl ) { pos.x = pPosCtrl->GetRect().left; pos.y = pPosCtrl->GetRect().top; } //m_pGameManager->PostMsgAtDynamic( new SIMSG_UI_MOVE( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE, pos.x, pos.y ) ); // 위치 지정. //m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE, true ) ); // 팝업 Wnd 열기. m_pGameManager->PostMsgAtDynamic( new SIMSG_UI_MOVE( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE, pos.x, pos.y ) ); // 위치 지정. m_pGameManager->PostMsgAtDynamic( new SIMSG_TOGGLE_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::_UIWINDOW_TYPE::UIWINDOW_GUILD_SUB_MASTER_PROMOTE ) ); // 팝업 Wnd 열기. } } // 길드 해체. if( !::_stricmp( lpszControlID, "button_master_02" ) ) { // 길드마스터인가? if( GetIsMaster() ) { string strMsg( S(611) ); // string DB 필요. CStringUtil::ReplacePhrase( strMsg, "#@guild_name@#", m_GuildMgr.GetGuildName() ); /// 2011.05.16 ProcMsgAtStatic는 정적 입력 변수이다 - prodongi //m_pGameManager->ProcMsgAtStatic( new SIMSG_REQ_OPEN_MSGBOX( SIMSG_REQ_OPEN_MSGBOX::_MSGBOXID::MSGBOX_GUILD_DESTROY, strMsg.c_str(), true ) ); m_pGameManager->ProcMsgAtStatic( &SIMSG_REQ_OPEN_MSGBOX( SIMSG_REQ_OPEN_MSGBOX::_MSGBOXID::MSGBOX_GUILD_DESTROY, strMsg.c_str(), true ) ); } } if( !::_stricmp( lpszControlID, "button_master_03" ) ) { if( GetIsMaster() ) { string strMsg( SR( 758, "#@point@#", m_GuildMgr.GetGuildObjectif() ) ); m_pGameManager->ProcMsgAtStatic( &SIMSG_REQ_OPEN_MSGBOX( SIMSG_REQ_OPEN_MSGBOX::_MSGBOXID::MSGBOX_GUILD_UPGRADE, strMsg.c_str(), true ) ); } } break; } SUIWnd::PumpUpMessage( lpszControlID, nMessage, lparam, wparam ); } // 길드마스터인가? bool SUIGuildSubMasterTabAuthority::GetIsMaster() { SPlayerInfo player = m_PlayerInfoMgr.GetPlayerInfo(); SPlayerSlot * pPlayerSlot = this->m_GuildMgr.FindMember( player.GetName() ); if( pPlayerSlot ) { if( pPlayerSlot->GetAuthority() == 7 ) return true; } return false; }