1944 lines
71 KiB
C++
1944 lines
71 KiB
C++
#include "SunClientPrecompiledHeader.h"
|
|
#include "interfacemanager.h"
|
|
#include "uiDominationTowerMan/uiDominationTowerMan.h"
|
|
#include "uiDominationTowerMainDlg/uiDominationTowerMainDlg.h"
|
|
#include "uiDominationTowerBettingListDlg/uiDominationTowerBettingListDlg.h"
|
|
|
|
#include "uiDominationTowerManagerDlg/uiDominationTowerManagerDlg.h"
|
|
#include "uiDominationTowerAreaDlg/uiDominationTowerAreaDlg.h"
|
|
#include "uiDominationTimer/uiDominationTimer.h"
|
|
#include "uiDominationZoneMarkDlg/uiDominationZoneMarkDlg.h"
|
|
#ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER
|
|
#include "GuildSystem/GuildSystemData.h"
|
|
#else
|
|
#include "uiGuildMan/uiGuildMan.h"
|
|
#endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER
|
|
#include "GuildMarkInfoParser.h"
|
|
#include "uiNoticeMan/uiNoticeMan.h"
|
|
#include "uiGuildNoticeDialog/uiGuildNoticeDialog.h"
|
|
#include "MapInfoParser.h"
|
|
#include "GlobalFunc.h"
|
|
#include "ResultCode.h"
|
|
#include "Hero.h"
|
|
#include "GameFramework.h"
|
|
#include "ObjectManager.h"
|
|
#include "Monster.h"
|
|
#include "uiLoginMan/uiLoginMan.h"
|
|
#include "uiLoginMan/uiLoginMan_def.h"
|
|
#include "uiDominationStamp/uiDominationStamp.h"
|
|
#include "uiToolTipMan/uiToolTipMan.h"
|
|
#include "Mouse.h"
|
|
#include "DominationInfoParser.h"
|
|
#include "Map.h"
|
|
#include "uiBattleScoreMan\\uiBattleScoreMan.h"
|
|
#include "ItemManager.h"
|
|
#include "SCItemSlot.h"
|
|
#include "SlotKeyGenerator.h"
|
|
#include "ItemUnitRenderer.h"
|
|
#include "MouseHandler.h"
|
|
|
|
#include "uiRadarMan/uiRadarMan.h"
|
|
#include "ContinentMapDlg.h"
|
|
#include "uiContinentMapEP2/ContinentMapEp2Dialog.h"
|
|
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
#include "uiDominationJoinList1/uiDominationJoinList1.h"
|
|
#include "uiDominationJoinList2/uiDominationJoinList2.h"
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
#include "uiDominationTowerApplyBettingDlg/uiDominationTowerApplyBettingDlg.h"
|
|
#include "uiDominationTowerApplyBettingDlg2/uiDominationTowerApplyBettingDlg2.h"
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
#include "uiDominationBettingList/uiDominationBettingList.h"
|
|
#include "SCItemSlotContainer.h"
|
|
|
|
#ifdef _NA_007029_20140120_DOMINATION_RESURRECTION_REFORM
|
|
#include "uiDominationResurrection/uiDominationResurrection.h"
|
|
#endif //_NA_007029_20140120_DOMINATION_RESURRECTION_REFORM
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
#include "BattleScene.h"
|
|
#include "DominationWarScene.h"
|
|
#include "uiDominationAreaOwnerTutorial/uiDominationAreaOwnerTutorial.h"
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
|
|
|
|
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_TOWER_MAIN_DIALOG = StrToWzID("9722");
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_BETTING_LIST_DIALOG = StrToWzID("9723");
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_AREA_DIALOG = StrToWzID("9721");
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_TIMER_DIALOG = StrToWzID("9727");
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_ZONEMARK_DIALOG = StrToWzID("9729");
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_STAMP_DIALOG = StrToWzID("9728");
|
|
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_BETTING_LIST = StrToWzID("9731");
|
|
|
|
#ifdef _NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
#else
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_MANAGER_DIALOG = StrToWzID("9725");
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_APPLY_BETTING_DIALOG = StrToWzID("9724");
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_APPLY_BETTING_DIALOG2= StrToWzID("9730");
|
|
#endif //_NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
//_NA_20110406_CHANGE_RULE_FOR_DOMINATION_JOIN
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_JOIN_LIST1 = StrToWzID("9733");
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_JOIN_LIST2 = StrToWzID("9732");
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
#ifdef _NA_007029_20140120_DOMINATION_RESURRECTION_REFORM
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_RESURRECTION_POPUP = g_IDGenerator.GenerateID();
|
|
#endif //_NA_007029_20140120_DOMINATION_RESURRECTION_REFORM
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
const DWORD IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_AREA_OWNER_TUTORIAL_DIALOG = StrToWzID("0438");
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
|
|
uiDominationTowerMan::uiDominationTowerMan(InterfaceManager *pUIMan):
|
|
uiBaseMan(pUIMan)
|
|
{
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
domination_object_key_current_index_ = -1;
|
|
is_character_enter_ = FALSE;
|
|
#else
|
|
m_dwObjectKey = 0;
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
m_bShowDominationObject = false;
|
|
|
|
#ifdef _TEMP_0068_20130820_DOMINATION_MANAGE_PACKET_CONTROL
|
|
is_domination_manage_dummy_packet_ = false;
|
|
#endif //_TEMP_0068_20130820_DOMINATION_MANAGE_PACKET_CONTROL
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::Clear()
|
|
{
|
|
memset(&m_DominationGuildInfo,0,sizeof(m_DominationGuildInfo));
|
|
memset(&m_ChallengerGuildInfo,0,sizeof(m_ChallengerGuildInfo));
|
|
m_bShowDominationGuildInfo = false;
|
|
m_OwnHeim = 0;
|
|
m_MostOfferHeim = 0;
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
domination_object_key_current_index_ = -1;
|
|
domination_object_key_vector_.clear();
|
|
ZeroMemory(mondschien_guild_name_, MAX_GUILDNAME_LENGTH+1);
|
|
is_character_enter_ = FALSE;
|
|
#else
|
|
m_dwObjectKey = 0;
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
m_bShowDominationObject = false;
|
|
m_mapDominatioGuild.clear();
|
|
m_pDominationZoneMark->Clear();
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::InitPKBooleans()
|
|
{
|
|
this->m_vPKBool.clear();
|
|
|
|
for (int i=ePKBOOL_DOMINATION_BASE; i<ePKBOOL_DOMINATIONLOGIN_MAX; ++i)
|
|
{
|
|
uicPacketControl packetControl;
|
|
this->m_vPKBool.push_back(packetControl);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::OnRelease()
|
|
{
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::OnInitialize()
|
|
{
|
|
m_pMainDialog = CreateUIDialog<uiDominationTowerMainDlg>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_TOWER_MAIN_DIALOG, "Data\\Interface\\97_22_area.iwz", this);
|
|
assert(m_pMainDialog);
|
|
m_DominationArea = CreateUIDialog<uiDominationTowerAreaDlg>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_AREA_DIALOG, "Data\\Interface\\97_21_guild_name.iwz", this, TRUE);
|
|
assert(m_DominationArea);
|
|
m_pDominationTimer = CreateUIDialog<uiDominationTimer>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_TIMER_DIALOG, "Data\\Interface\\97_27_mercenary_time.iwz", this);
|
|
assert(m_pDominationTimer);
|
|
m_pDominationZoneMark = CreateUIDialog<uiDominationZoneMarkDlg>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_ZONEMARK_DIALOG, "Data\\Interface\\97_29_zone_mark.iwz", this, TRUE);
|
|
assert(m_pDominationZoneMark);
|
|
m_pDominationStamp = CreateUIDialog<uiDominationStamp>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_STAMP_DIALOG, "Data\\Interface\\97_28_counter.iwz", this);
|
|
assert(m_pDominationStamp);
|
|
|
|
m_pDominationBettingList = CreateUIDialog<uiDominationBettingList>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_BETTING_LIST, "Data\\Interface\\97_31_area_entry.iwz", this);
|
|
assert(m_pDominationBettingList);
|
|
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
m_pBettingList = CreateUIDialog<uiDominationTowerBettingListDlg>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_BETTING_LIST_DIALOG, "Data\\Interface\\97_23_area_entry.iwz", this, TRUE);
|
|
assert(m_pBettingList);
|
|
m_pDominationJoinList1 = CreateUIDialog<uiDominationJoinList1>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_JOIN_LIST1, "Data\\Interface\\97_33_List.iwz", this, TRUE);
|
|
assert(m_pDominationJoinList1);
|
|
m_pDominationJoinList2 = CreateUIDialog<uiDominationJoinList2>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_JOIN_LIST2, "Data\\Interface\\97_32_List.iwz", this, TRUE);
|
|
assert(m_pDominationJoinList2);
|
|
m_pApplyBetting = CreateUIDialog<uiDominationTowerApplyBettingDlg>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_APPLY_BETTING_DIALOG, "Data\\Interface\\97_24_area_offer.iwz", this);
|
|
assert(m_pApplyBetting);
|
|
m_pApplyBetting2 = CreateUIDialog<uiDominationTowerApplyBettingDlg2>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_APPLY_BETTING_DIALOG2, "Data\\Interface\\97_30_area_register.iwz", this);
|
|
assert(m_pApplyBetting2);
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
#ifdef _NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
#else
|
|
m_DominationManager = CreateUIDialog<uiDominationTowerManagerDlg>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_MANAGER_DIALOG, "Data\\Interface\\97_25_area_edit.iwz", this, TRUE);
|
|
assert(m_DominationManager);
|
|
#endif //_NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
|
|
#ifdef _NA_007029_20140120_DOMINATION_RESURRECTION_REFORM
|
|
ui_domination_resurrection_ = CreateUIDialog<uiDominationResurrection>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_RESURRECTION_POPUP, "Data\\Interface\\82_asking_window.iwz", this, TRUE, TRUE);
|
|
assert(ui_domination_resurrection_);
|
|
#endif //_NA_007029_20140120_DOMINATION_RESURRECTION_REFORM
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
ui_domination_owner_tutorial_dialog_ = CreateUIDialog<uiDominationAreaOwnerTutorial>(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_AREA_OWNER_TUTORIAL_DIALOG, "Data\\Interface\\43_8_Mont_Tutorial.iwz", this, TRUE, TRUE);
|
|
assert(ui_domination_owner_tutorial_dialog_);
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
Clear();
|
|
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::Update()
|
|
{
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
if (domination_object_key_vector_.empty() ||
|
|
static_cast<unsigned int>(domination_object_key_current_index_) >= domination_object_key_vector_.size())
|
|
return;
|
|
|
|
if (domination_object_key_vector_[domination_object_key_current_index_])
|
|
{
|
|
MapObject* pObject =
|
|
static_cast<MapObject*>(g_ObjectManager.GetObject(domination_object_key_vector_[domination_object_key_current_index_]));
|
|
#else
|
|
if (m_dwObjectKey)
|
|
{
|
|
MapObject* pObject = static_cast<MapObject*>(g_ObjectManager.GetObject(m_dwObjectKey));
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
if(pObject && g_pHero)
|
|
{
|
|
WzVector vDiff = pObject->GetPosition() - g_pHero->GetVisiblePos();
|
|
float distance = VectorLength2(&vDiff);
|
|
if (distance > (DISTANCE_NPC_MEET * DISTANCE_NPC_MEET))
|
|
{
|
|
m_pMainDialog->ShowInterface(FALSE);
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
m_pBettingList->ShowInterface(FALSE);
|
|
m_pApplyBetting->ShowInterface(FALSE);
|
|
m_pApplyBetting2->ShowInterface(FALSE);
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
#ifdef _NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
#else
|
|
m_DominationManager->ShowInterface(FALSE);
|
|
#endif //_NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
domination_object_key_current_index_ = -1;
|
|
#else
|
|
m_dwObjectKey = 0;
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::NetworkProc( MSG_BASE * pMsg )
|
|
{
|
|
switch (pMsg->m_byCategory)
|
|
{
|
|
case CG_BATTLE:
|
|
{
|
|
switch (pMsg->m_byProtocol)
|
|
{
|
|
case CG_DOMINATION_NOTICE_ACK:
|
|
{
|
|
RECV_DOMINATION_NOTICE_ACK(pMsg);
|
|
}
|
|
break;
|
|
#ifdef _NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
#else
|
|
case CG_DOMINATION_BATTING_HEIM_ACK:
|
|
{
|
|
RECV_DOMINATION_BATTING_HEIM_ACK(pMsg);
|
|
}
|
|
break;
|
|
case CG_DOMINATION_ACCEP_HEIM_ACK:
|
|
{
|
|
RECV_DOMINATION_ACCEP_HEIM_ACK(pMsg);
|
|
}
|
|
break;
|
|
#endif //_NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
case CG_DOMINATION_MANAGE_ACK:
|
|
{
|
|
RECV_DOMINATION_MANAGE_ACK(pMsg);
|
|
}
|
|
break;
|
|
case CG_DOMINATION_SAVE_GATESTAT_ACK:
|
|
{
|
|
RECV_DOMINATION_SAVE_GATESTAT_ACK(pMsg);
|
|
}
|
|
break;
|
|
case CG_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK:
|
|
{
|
|
RECV_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK(pMsg);
|
|
}
|
|
break;
|
|
|
|
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
case CG_DOMINATION_DEFENSE_GUILD_ALLIENCE_LIST_BRD:
|
|
{
|
|
RECV_DOMINATION_DEFENSE_GUILD_ALLIENCE_LIST_BRD(pMsg);
|
|
}
|
|
break;
|
|
#else
|
|
case CG_DOMINATION_APPLY_ACK:
|
|
{
|
|
RECV_DOMINATION_APPLY_ACK(pMsg);
|
|
}
|
|
break;
|
|
case CG_DOMINATION_MEMBERLIST_NTF:
|
|
{
|
|
RECV_DOMINATION_MEMBERLIST_NTF(pMsg);
|
|
}
|
|
break;
|
|
case CG_DOMINATION_MEMBER_LEAVE_ACK:
|
|
{
|
|
RECV_DOMINATION_MEMBER_LEAVE_ACK(pMsg);
|
|
}
|
|
break;
|
|
case CG_DOMINATION_MEMBER_JOIN_ACK:
|
|
{
|
|
RECV_DOMINATION_MEMBER_JOIN_ACK(pMsg);
|
|
}
|
|
break;
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
case CG_DOMINATION_MINIMAP_SET_BRD:
|
|
{
|
|
m_bShowDominationGuildInfo = false;
|
|
}
|
|
break;
|
|
case CG_DOMINATION_MINIMAP_LIST_ACK:
|
|
{
|
|
RECV_DOMINATION_MINIMAP_LIST_ACK(pMsg);
|
|
}
|
|
break;
|
|
case CG_DOMINATION_SELECTED_BRD:
|
|
{
|
|
MSG_CG_DOMINATION_SELECTED_BRD* pRecvPacket = (MSG_CG_DOMINATION_SELECTED_BRD*)pMsg;
|
|
{
|
|
uiNoticeMan* pUIMan = GET_DIALOG_MANAGER(uiNoticeMan, UIMAN_NOTICE);
|
|
//uiGuildNoticeDialog* pDlg = GET_CAST_DIALOG(uiGuildNoticeDialog, IM_NOTICE_MANAGER::GUILD_NOTICE_DIALOG);
|
|
const sMAPINFO* pFieldInfo = MapInfoParser::Instance()->FindMapInfo(pRecvPacket->m_DominationFieldCode);
|
|
if(pUIMan && pFieldInfo)
|
|
{
|
|
TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR szFieldName[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR szTemp[INTERFACE_STRING_LENGTH] = {0, };
|
|
|
|
g_InterfaceManager.GetInterfaceString(pFieldInfo->dwNCode, szFieldName, INTERFACE_STRING_LENGTH);
|
|
g_InterfaceManager.GetInterfaceString(3319, szTemp, INTERFACE_STRING_LENGTH);
|
|
Snprintf(szMessage, INTERFACE_STRING_LENGTH, szTemp, szFieldName);
|
|
pUIMan->ShowNoticeMessage(eGuild_Notice, szMessage, 10000);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case CG_DOMINATION_AREA_INFO_CMD:
|
|
{
|
|
MSG_CG_DOMINATION_AREA_INFO_CMD* recv_packet = (MSG_CG_DOMINATION_AREA_INFO_CMD*)pMsg;
|
|
Player* player = static_cast<Player*>(g_ObjectManager.GetObject(recv_packet->m_dwPlayerKey));
|
|
if (player != NULL)
|
|
{
|
|
player->SetDominationStateInfo(&recv_packet->m_stateTotalInfo);
|
|
|
|
// ÀÚ½ÅÀÇ ÀÎÀåUI(zonemark) ¾÷µ¥ÀÌÆ®
|
|
if (g_pHero && (g_pHero->GetObjectKey() == recv_packet->m_dwPlayerKey))
|
|
{
|
|
uiDominationTowerMan::RefreshZoneMarkInfo();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case CG_DOMINATION_TIME_SYNC_BRD:
|
|
{
|
|
MSG_CG_DOMINATION_TIME_SYNC_BRD* pRecvPacket = (MSG_CG_DOMINATION_TIME_SYNC_BRD*)pMsg;
|
|
uiDominationTimer* pDlg = GET_CAST_DIALOG(uiDominationTimer, IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_TIMER_DIALOG);
|
|
if(pDlg)
|
|
{
|
|
if(DOMINATION_EVENT_END == pRecvPacket->m_byEventState)
|
|
{
|
|
if(TRUE == pDlg->IsVisible())
|
|
pDlg->ShowInterface(FALSE);
|
|
|
|
#ifdef _NA_008334_20150608_SONNENSCHEIN
|
|
pDlg->set_event_state(pRecvPacket->m_byEventState);
|
|
#endif //_NA_008334_20150608_SONNENSCHEIN
|
|
|
|
break;
|
|
}
|
|
|
|
if(FALSE == pDlg->IsVisible())
|
|
pDlg->ShowInterface(TRUE);
|
|
|
|
pDlg->SetTimer(pRecvPacket->m_dwRemainedTime, true);
|
|
if(DOMINATION_EVENT_WAIT == pRecvPacket->m_byEventState)
|
|
pDlg->SetStartTimer(false);
|
|
else if(DOMINATION_EVENT_START == pRecvPacket->m_byEventState)
|
|
pDlg->SetStartTimer(true);
|
|
|
|
#ifdef _NA_008334_20150608_SONNENSCHEIN
|
|
pDlg->set_event_state(pRecvPacket->m_byEventState);
|
|
#endif //_NA_008334_20150608_SONNENSCHEIN
|
|
}
|
|
}
|
|
break;
|
|
|
|
case CG_DOMINATION_COUNT_NOSES_BRD:
|
|
{
|
|
MSG_CG_DOMINATION_COUNT_NOSES_BRD* pRecvPacket = (MSG_CG_DOMINATION_COUNT_NOSES_BRD*)pMsg;
|
|
uiDominationTimer* pDlg = GET_CAST_DIALOG(uiDominationTimer, IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_TIMER_DIALOG);
|
|
if(pDlg)
|
|
{
|
|
if(FALSE == pDlg->IsVisible())
|
|
pDlg->ShowInterface(TRUE);
|
|
|
|
pDlg->SetPlayerCnt(pRecvPacket->m_byCount);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case CG_DOMINATION_KICK_NOTIFY_BRD:
|
|
{
|
|
uiNoticeMan* pUIMan = GET_DIALOG_MANAGER(uiNoticeMan, UIMAN_NOTICE);
|
|
//uiGuildNoticeDialog* pGuildNoticeDlg = GET_CAST_DIALOG(uiGuildNoticeDialog, IM_NOTICE_MANAGER::GUILD_NOTICE_DIALOG);
|
|
if(pUIMan)
|
|
{
|
|
//3317 ½Ã½ºÅÛ Áغñ¸¦ À§ÇØ Å¸¿ö ÀÔ±¸·Î °Á¦ À̵¿µË´Ï´Ù.\nºñÇ༱À» ÅëÇØ Àç ÀÔÀå ÇϽñ⠹ٶø´Ï´Ù.
|
|
TCHAR szMessage[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
g_InterfaceManager.GetInterfaceString(3317, szMessage);
|
|
|
|
pUIMan->ShowNoticeMessage(eGuild_Notice, szMessage, 10000);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case CG_DOMINATION_START_NOTIFY_BRD:
|
|
{
|
|
RECV_DOMINATION_START_NOTIFY_BRD(pMsg);
|
|
}
|
|
break;
|
|
|
|
case CG_DOMINATION_BEGIN_STAMP_BRD:
|
|
{
|
|
MSG_CG_DOMINATION_BEGIN_STAMP_BRD* pRecvPacket = (MSG_CG_DOMINATION_BEGIN_STAMP_BRD*)pMsg;
|
|
|
|
uiDominationStamp* pStampDlg = GET_CAST_DIALOG(uiDominationStamp, IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_STAMP_DIALOG);
|
|
if(pStampDlg)
|
|
{
|
|
pStampDlg->SetStampID(pRecvPacket->m_nStampID);
|
|
pStampDlg->ShowInterface(TRUE);
|
|
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
pStampDlg->set_stamp_guild_name(pRecvPacket->m_stamp_guild_name);
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
}
|
|
}
|
|
break;
|
|
|
|
case CG_DOMINATION_CANCLE_STAMP_BRD:
|
|
{
|
|
MSG_CG_DOMINATION_CANCLE_STAMP_BRD* pRecvPacket = (MSG_CG_DOMINATION_CANCLE_STAMP_BRD*)pMsg;
|
|
|
|
uiDominationStamp* pStampDlg = GET_CAST_DIALOG(uiDominationStamp, IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_STAMP_DIALOG);
|
|
if(pStampDlg && pStampDlg->IsVisibleWindow())
|
|
pStampDlg->ShowInterface(FALSE);
|
|
}
|
|
break;
|
|
|
|
case CG_DOMINATION_CRYSTALWARP_STATE_BRD:
|
|
{
|
|
MSG_CG_DOMINATION_CRYSTALWARP_STATE_BRD* pRecvPacket = (MSG_CG_DOMINATION_CRYSTALWARP_STATE_BRD*)pMsg;
|
|
TCHAR szMessage[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
switch(pRecvPacket->m_byState)
|
|
{
|
|
case eCRYSTALWARP_STATE_CREATE:
|
|
break;
|
|
case eCRYSTALWARP_STATE_DESTROY:
|
|
case eCRYSTALWARP_STATE_DEAD:
|
|
{
|
|
if(g_pHero)
|
|
g_pHero->SetCrystalWarpKey(pRecvPacket->m_dwCrystalWarpKey, false);
|
|
|
|
//3322 ¿öÇÁ¼öÁ¤ÀÌ ÆÄ±«µÇ¾ú½À´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(3322, szMessage);
|
|
GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage);
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
break;
|
|
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
case CG_DOMINATION_TURNOVER_BRD:
|
|
{
|
|
MSG_CG_DOMINATION_TURNOVER_BRD* recv_packet = static_cast<MSG_CG_DOMINATION_TURNOVER_BRD*>(pMsg);
|
|
|
|
if(NULL == g_pHero)
|
|
break;
|
|
|
|
uiDominationStamp* stamp_dialog_ptr = GET_CAST_DIALOG(uiDominationStamp, IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_STAMP_DIALOG);
|
|
if(stamp_dialog_ptr && stamp_dialog_ptr->IsVisibleWindow())
|
|
stamp_dialog_ptr->ShowInterface(FALSE);
|
|
|
|
TCHAR temp_string[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
TCHAR message_string[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
TCHAR map_name_string[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
const sMAPINFO* cMI = MapInfoParser::Instance()->FindMapInfo(recv_packet->m_mapCode);
|
|
|
|
if(NULL == cMI)
|
|
{
|
|
#ifdef _DEV_VER
|
|
GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, "MSG_CG_DOMINATION_IN_GUILD_INFO::m_mapCode = %d", recv_packet->m_mapCode);
|
|
#endif
|
|
break;
|
|
}
|
|
|
|
g_InterfaceManager.GetInterfaceString(cMI->dwNCode, map_name_string);
|
|
|
|
uiNoticeMan* notice_manager = GET_DIALOG_MANAGER(uiNoticeMan, UIMAN_NOTICE);
|
|
if (notice_manager)
|
|
{
|
|
//3477 %s±æµå°¡ ¿ä»õÀÇ °¢Àο¡ ¼º°øÇÏ¿´½À´Ï´Ù. \nÀÌÁ¦ºÎÅÍ %s±æµå°¡ ¼ºÀ» ¼öºñÇÏ°Ô µË´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(3477, temp_string);
|
|
|
|
recv_packet->win_guild_name[MAX_GUILDNAME_LENGTH] = '\0';
|
|
Snprintf(message_string, INTERFACE_STRING_LENGTH, temp_string, recv_packet->win_guild_name, recv_packet->win_guild_name);
|
|
|
|
notice_manager->ShowNoticeMessage(eGM_Notice, message_string, 10000);
|
|
}
|
|
|
|
if (g_pMap->GetMapID() == recv_packet->m_mapCode)
|
|
{
|
|
//Á¡·É±æµå ±³Ã¼
|
|
m_DominationGuildInfo.m_GuildGuid = recv_packet->m_winGuid;
|
|
|
|
//ÇöÀç º¸ÀÌ´Â ¸ó½ºÅ͵é Á¤º¸µµ º¯°æ
|
|
std::vector<Monster*> vecMons;
|
|
g_ObjectManager.GetMonsters(vecMons);
|
|
int iCnt = (int)vecMons.size();
|
|
for(int i = 0; i < iCnt; ++i)
|
|
{
|
|
if(eNPC_DOMINATION_MAPOBJECT_NPC == vecMons[i]->GetMonsterInfo()->m_byGrade)
|
|
vecMons[i]->SetMasterGuildID(m_DominationGuildInfo.m_GuildGuid);
|
|
}
|
|
vecMons.clear();
|
|
}
|
|
}
|
|
break;
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
|
|
case CG_DOMINATION_RESULT_BRD:
|
|
{
|
|
MSG_CG_DOMINATION_RESULT_BRD* pRecvPacket = (MSG_CG_DOMINATION_RESULT_BRD*)pMsg;
|
|
if(NULL == g_pHero)
|
|
break;
|
|
|
|
#ifdef _NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
#else
|
|
if (m_DominationManager)
|
|
{
|
|
m_DominationManager->InitPoint(DOMINATION_DEFFENSWALL_POINT);
|
|
m_DominationManager->ShowPictureControlByPoint();
|
|
}
|
|
#endif //_NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
|
|
TCHAR szTemp[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
TCHAR szMessage[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
TCHAR szMapName[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
const sMAPINFO* cMI = MapInfoParser::Instance()->FindMapInfo(pRecvPacket->m_mapCode);
|
|
if(NULL == cMI)
|
|
{
|
|
#ifdef _DEV_VER
|
|
GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, "MSG_CG_DOMINATION_RESULT_BRD::m_mapCode = %d", pRecvPacket->m_mapCode);
|
|
#endif
|
|
break;
|
|
}
|
|
|
|
g_InterfaceManager.GetInterfaceString(cMI->dwNCode, szMapName);
|
|
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
uiNoticeMan* notice_manager = GET_DIALOG_MANAGER(uiNoticeMan, UIMAN_NOTICE);
|
|
if (notice_manager)
|
|
{
|
|
// °ø¼º¼º°ø ¸Þ¼¼ÁöÀÎÁö ¼ö¼º¼º°ø ¸Þ¼¼ÁöÀÎÁö
|
|
bool is_offence_win_message = true;
|
|
|
|
//GetDominationGuildInfo()->size() °¡ 0 À̸é BâÀ» Çѹøµµ ¾È´·¶°Å³ª Áö¿ªÁ¡·ÉÀü ÀÔÀå âÀ» ¾È ¿¾îº» »ç¶÷. Áï ¹Û¿¡ ÀÖ´Â »ç¶÷ÀÌ´Ù
|
|
if (GetDominationGuildMap().size() != 0)
|
|
{
|
|
DOMINATIONMAP_ITR itr = GetDominationGuildMap().find(pRecvPacket->m_mapCode);
|
|
if (itr != GetDominationGuildMap().end())
|
|
{//ÐÞ¸´ÁìµØÕ½¿ÌÓ¡³É¹¦±¨´í by:Ê®ÀïÆÂ½£Éñ 2021-06-15
|
|
DOMINATION_GUILD_INFO *guild_info = &(itr->second);
|
|
if (guild_info && guild_info->m_GuildGuid == pRecvPacket->m_winGuid)
|
|
{
|
|
// ½Â¸®±æµå°¡ ¾Ë°íÀÖ´ø Á¡·É±æµå¸é ¼ö¼ºÀÌ ¼º°øÇß´Ù´Â ÀǹÌ.
|
|
is_offence_win_message = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (is_offence_win_message)
|
|
{
|
|
//3327 %s ±æµå°¡ %s Áö¿ªÀ» Á¡·ÉÇÏ¿´½À´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(3327, szTemp);
|
|
}
|
|
else
|
|
{
|
|
//7399 %s±æµå°¡ %sÁö¿ª ¹æ¾î¿¡ ¼º°øÇÏ¿´½À´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(7399, szTemp);
|
|
}
|
|
pRecvPacket->win_guild_name[MAX_GUILDNAME_LENGTH] = '\0';
|
|
Snprintf(szMessage, INTERFACE_STRING_LENGTH, szTemp, pRecvPacket->win_guild_name, szMapName);
|
|
|
|
notice_manager->ShowNoticeMessage(eGM_Notice, szMessage, 5000);
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
if (GlobalFunc::IsMondschienMap() == TRUE)
|
|
{
|
|
// 3502 ¸óÆ®»þÀÎ Áö¿ªÀ» Â÷ÁöÇÑ ±æµå¿Í ±× µ¿¸ÍµéÀº [¸óÆ®»þÀÎÀÇ Åë·Î] ¿ÀºêÁ§Æ®ÀÇ [º¸»ó ¾ÆÀÌÅÛ Áö±Þ] ¹öưÀ» ÀÌ¿ëÇÏ¿© Ư¼ö º¸»óÀ» ¼ö·É ÇÒ ¼ö ÀÖ½À´Ï´Ù.
|
|
ZeroMemory(szTemp, INTERFACE_STRING_LENGTH);
|
|
g_InterfaceManager.GetInterfaceString(3502, szTemp);
|
|
notice_manager->ShowNoticeMessage(eGM_Notice, szTemp, 10000);
|
|
}
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
|
|
}
|
|
|
|
if (g_pMap->GetMapID() == pRecvPacket->m_mapCode)
|
|
{
|
|
uiDominationStamp* pStampDlg = GET_CAST_DIALOG(uiDominationStamp, IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_STAMP_DIALOG);
|
|
if(pStampDlg && pStampDlg->IsVisibleWindow())
|
|
pStampDlg->ShowInterface(FALSE);
|
|
|
|
//Á¡·É±æµå ±³Ã¼
|
|
m_DominationGuildInfo.m_GuildGuid = pRecvPacket->m_winGuid;
|
|
|
|
//ÇöÀç º¸ÀÌ´Â ¸ó½ºÅ͵é Á¤º¸µµ º¯°æ
|
|
std::vector<Monster*> vecMons;
|
|
g_ObjectManager.GetMonsters(vecMons);
|
|
int iCnt = (int)vecMons.size();
|
|
for(int i = 0; i < iCnt; ++i)
|
|
{
|
|
if(eNPC_DOMINATION_MAPOBJECT_NPC == vecMons[i]->GetMonsterInfo()->m_byGrade)
|
|
vecMons[i]->SetMasterGuildID(m_DominationGuildInfo.m_GuildGuid);
|
|
}
|
|
vecMons.clear();
|
|
|
|
if (pRecvPacket->m_winGuid == g_pHero->GetPlayerGuildID())
|
|
{
|
|
// º¸»ó¿É¼Ç ¾È³» ¸Þ½ÃÁö Ãâ·Â
|
|
const sDOMINATION_INFO* pDI = DominationInfoParser::Instance()->GetDominationInfo(pRecvPacket->m_mapCode);
|
|
if (pDI && notice_manager)
|
|
{
|
|
g_InterfaceManager.GetInterfaceString(3329, szTemp);
|
|
Snprintf(szMessage, INTERFACE_STRING_LENGTH, szTemp, szMapName, szMapName, pDI->m_RewardDropHeimRate/10);
|
|
notice_manager->ShowNoticeMessage(eGuild_Notice, szMessage, 10000);
|
|
}
|
|
}
|
|
}
|
|
#else
|
|
uiDominationStamp* pStampDlg = GET_CAST_DIALOG(uiDominationStamp, IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_STAMP_DIALOG);
|
|
if(pStampDlg && pStampDlg->IsVisibleWindow())
|
|
pStampDlg->ShowInterface(FALSE);
|
|
|
|
if(pRecvPacket->m_winGuid == g_pHero->GetPlayerGuildID())
|
|
{
|
|
uiNoticeMan* pUIMan = GET_DIALOG_MANAGER(uiNoticeMan, UIMAN_NOTICE);
|
|
if(pUIMan)
|
|
{
|
|
//3327 %s ±æµå°¡ %s Áö¿ªÀ» Á¡·ÉÇÏ¿´½À´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(3327, szTemp);
|
|
Snprintf(szMessage, INTERFACE_STRING_LENGTH, szTemp, g_pHero->GetGuildName(), szMapName);
|
|
|
|
pUIMan->ShowNoticeMessage(eGuild_Notice, szMessage, 10000);
|
|
}
|
|
|
|
if(g_pMap->GetMapID() != pRecvPacket->m_mapCode)
|
|
break;
|
|
|
|
//Á¡·É±æµå ±³Ã¼
|
|
m_DominationGuildInfo.m_GuildGuid = g_pHero->GetPlayerGuildID();
|
|
|
|
//ÇöÀç º¸ÀÌ´Â ¸ó½ºÅ͵é Á¤º¸µµ º¯°æ
|
|
std::vector<Monster*> vecMons;
|
|
g_ObjectManager.GetMonsters(vecMons);
|
|
int iCnt = (int)vecMons.size();
|
|
for(int i = 0; i < iCnt; ++i)
|
|
{
|
|
if(eNPC_DOMINATION_MAPOBJECT_NPC == vecMons[i]->GetMonsterInfo()->m_byGrade)
|
|
vecMons[i]->SetMasterGuildID(m_DominationGuildInfo.m_GuildGuid);
|
|
}
|
|
vecMons.clear();
|
|
|
|
// º¸»ó¿É¼Ç ¾È³» ¸Þ½ÃÁö Ãâ·Â
|
|
const sDOMINATION_INFO* pDI = DominationInfoParser::Instance()->GetDominationInfo(pRecvPacket->m_mapCode);
|
|
if (pDI && pUIMan)
|
|
{
|
|
g_InterfaceManager.GetInterfaceString(3329, szTemp);
|
|
Snprintf(szMessage, INTERFACE_STRING_LENGTH, szTemp, szMapName, szMapName, pDI->m_RewardDropHeimRate/10);
|
|
pUIMan->ShowNoticeMessage(eGuild_Notice, szMessage, 10000);
|
|
}
|
|
}
|
|
else if(pRecvPacket->m_loseGuid == g_pHero->GetPlayerGuildID())
|
|
{
|
|
uiNoticeMan* pUIMan = GET_DIALOG_MANAGER(uiNoticeMan, UIMAN_NOTICE);
|
|
if(pUIMan)
|
|
{
|
|
//3328 %s Áö¿ª' Á¡·ÉÀü¿¡¼ ÆÐ¹èÇÏ¿´½À´Ï´Ù.\n10ÃÊ ÈÄ Å¸¿ö ÀÔ±¸·Î ÀÚµ¿ ¼ÒȯÇÕ´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(3328, szTemp);
|
|
Snprintf(szMessage, INTERFACE_STRING_LENGTH, szTemp, szMapName);
|
|
|
|
pUIMan->ShowNoticeMessage(eGuild_Notice, szMessage, 10000);
|
|
}
|
|
}
|
|
uiBattleScoreMan* battle_score_manager_ptr =
|
|
static_cast<uiBattleScoreMan*>(g_InterfaceManager.GetUserInterfaceManager(UIMAN_BATTLE_SCORE));
|
|
if(battle_score_manager_ptr)
|
|
{
|
|
battle_score_manager_ptr->SendPacketBattleResultSYN();
|
|
}
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::SEND_DOMINATION_NOTICE_SYN(DWORD dwObjectKey)
|
|
{
|
|
if (SafePKBool(ePKBOOL_DOMINATION_NOTICE_SYN))
|
|
{
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
int find_index = -1;
|
|
if (dwObjectKey != 0)
|
|
{
|
|
find_index = find_domination_object_index_(dwObjectKey);
|
|
}
|
|
domination_object_key_current_index_ = find_index;
|
|
#else
|
|
m_dwObjectKey = dwObjectKey;
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
MSG_CG_DOMINATION_NOTICE_SYN sync;
|
|
MAPCODE mapcode = GetDominationManagedMapCode();
|
|
sync.m_MapCode = mapcode;
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
// ÆÐŶ ÆÒµù ¼Â
|
|
SetPKBool(ePKBOOL_DOMINATION_NOTICE_SYN, TIMEOUT_PACKET_PENDING);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
#ifdef _NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
#else
|
|
void uiDominationTowerMan::SEND_DOMINATION_APPLY_SYN()
|
|
{
|
|
if (SafePKBool(ePKBOOL_DOMINATION_APPLY_SYN))
|
|
{
|
|
MSG_CG_DOMINATION_APPLY_SYN sync;
|
|
MAPCODE mapcode = GetDominationManagedMapCode();
|
|
sync.m_MapCode = mapcode;
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
// ÆÐŶ ÆÒµù ¼Â
|
|
SetPKBool(ePKBOOL_DOMINATION_APPLY_SYN, TIMEOUT_PACKET_PENDING);
|
|
}
|
|
}
|
|
void uiDominationTowerMan::SEND_DOMINATION_BATTING_HEIM_SYN()
|
|
{
|
|
if (SafePKBool(ePKBOOL_DOMINATION_BATTING_HEIM_SYN))
|
|
{
|
|
MSG_CG_DOMINATION_BATTING_HEIM_SYN sync;
|
|
MAPCODE mapcode = GetDominationManagedMapCode();
|
|
sync.m_MapCode = mapcode;
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
// ÆÐŶ ÆÒµù ¼Â
|
|
SetPKBool(ePKBOOL_DOMINATION_BATTING_HEIM_SYN, TIMEOUT_PACKET_PENDING);
|
|
}
|
|
}
|
|
void uiDominationTowerMan::SEND_DOMINATION_ACCEP_HEIM_SYN(MONEY BettingHeim)
|
|
{
|
|
if (SafePKBool(ePKBOOL_DOMINATION_ACCEP_HEIM_SYN))
|
|
{
|
|
MSG_CG_DOMINATION_ACCEP_HEIM_SYN sync;
|
|
MAPCODE mapcode = GetDominationManagedMapCode();
|
|
sync.m_MapCode = mapcode;
|
|
|
|
sync.betting_item_count_ = static_cast<BYTE>(BettingHeim);
|
|
sync.m_TokenPos = INVALID_SLOT_POS; // Àκ¥¿¡ ÀÖ´Â ÃÑ °³¼öÀ̹ǷΠpos´Â Àǹ̾øÀ½. ÇöÀç ¹Ì»ç¿ë
|
|
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
// ÆÐŶ ÆÒµù ¼Â
|
|
SetPKBool(ePKBOOL_DOMINATION_ACCEP_HEIM_SYN, TIMEOUT_PACKET_PENDING);
|
|
}
|
|
}
|
|
#endif //_NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
/*
|
|
void uiDominationTowerMan::SEND_DOMINATION_ACCEP_HEIM_SYN()
|
|
{
|
|
if (item_slot_from_inventory_ == NULL)
|
|
{
|
|
return;
|
|
}
|
|
if (SafePKBool(ePKBOOL_DOMINATION_ACCEP_HEIM_SYN))
|
|
{
|
|
MSG_CG_DOMINATION_ACCEP_HEIM_SYN sync;
|
|
MAPCODE mapcode = GetDominationManagedMapCode();
|
|
sync.m_MapCode = mapcode;
|
|
|
|
sync.m_TenderCost = item_slot_from_inventory_->GetNum();
|
|
sync.m_TokenPos = item_slot_from_inventory_->GetPos();
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
// ÆÐŶ ÆÒµù ¼Â
|
|
SetPKBool(ePKBOOL_DOMINATION_ACCEP_HEIM_SYN, TIMEOUT_PACKET_PENDING);
|
|
}
|
|
}
|
|
*/
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::SEND_DOMINATION_MANAGE_SYN()
|
|
{
|
|
if (SafePKBool(ePKBOOL_DOMINATION_MANAGE_SYN))
|
|
{
|
|
MSG_CG_DOMINATION_MANAGE_SYN sync;
|
|
MAPCODE mapcode = GetDominationManagedMapCode();
|
|
sync.m_MapCode = mapcode;
|
|
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
// ÆÐŶ ÆÒµù ¼Â
|
|
SetPKBool(ePKBOOL_DOMINATION_MANAGE_SYN, TIMEOUT_PACKET_PENDING);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::SEND_DOMINATION_SAVE_GATESTAT_SYN(BYTE* pDefenseWall)
|
|
{
|
|
if (SafePKBool(ePKBOOL_DOMINATION_SAVE_GATESTAT_SYN))
|
|
{
|
|
MSG_CG_DOMINATION_SAVE_GATESTAT_SYN sync;
|
|
MAPCODE mapcode = GetDominationManagedMapCode();
|
|
sync.m_MapCode = mapcode;
|
|
|
|
for (int index = 0; index < MAX_DOMINATION_DEFENSEWALL_NUM; ++index)
|
|
{
|
|
sync.m_DefenseWall[index] = pDefenseWall[index];
|
|
}
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
}
|
|
|
|
#ifdef _TEMP_0068_20130820_DOMINATION_MANAGE_PACKET_CONTROL
|
|
is_domination_manage_dummy_packet_ = true;
|
|
SEND_DOMINATION_MANAGE_SYN();
|
|
#endif //_TEMP_0068_20130820_DOMINATION_MANAGE_PACKET_CONTROL
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::SEND_DOMINATION_ADD_DEFFENSEWALL_SYN()
|
|
{
|
|
if (SafePKBool(ePKBOOL_DOMINATION_ADD_DEFFENSEWALL_SYN))
|
|
{
|
|
POSTYPE inventory_position = INVALID_POSTYPE_VALUE;
|
|
// ÀÏ¹Ý ¹æ¾îºí·° ¾ÆÀÌÅÛÀ» ¸ÕÀú ã°í
|
|
BOOL result = ItemManager::Instance()->FindFirstItem(eITEMTYPE_DOMINATION_DEFFENSE_POINT, inventory_position);
|
|
if (result == FALSE) // ¾øÀ¸¸é
|
|
{ // ij½¬ ¹æ¾îºí·° ¾ÆÀÌÅÛÀ» ã´Â´Ù.
|
|
result = ItemManager::Instance()->FindFirstItem(eITEMTYPE_DOMINATION_DEFFENSE_CASH_POINT, inventory_position);
|
|
}
|
|
|
|
if (result && inventory_position != INVALID_POSTYPE_VALUE) // ÀÏ¹Ý È¤Àº ij½¬ ¹æ¾îºí·°ÀÌ ÀÖÀ¸¸é
|
|
{
|
|
SCSlotContainer* inven_container = g_pHero->GetSlotContainer(SI_INVENTORY);
|
|
if (inven_container)
|
|
{
|
|
SCItemSlot& item_slot = static_cast<SCItemSlot &>(inven_container->GetSlot(inventory_position));
|
|
const BASE_ITEMINFO* item_infomation_ptr = item_slot.GetItemInfo();
|
|
if (item_infomation_ptr)
|
|
{
|
|
MSG_CG_DOMINATION_ADD_DEFFENSEWALL_POINT_SYN sync;
|
|
MAPCODE map_code = GetDominationManagedMapCode();
|
|
sync.map_code_ = map_code;
|
|
sync.item_code_ = item_infomation_ptr->m_Code;
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::SEND_DOMINATION_MINIMAP_LIST_SYN()
|
|
{
|
|
if (SafePKBool(ePKBOOL_DOMINATION_MINIMAP_LIST_SYN))
|
|
{
|
|
MSG_CG_DOMINATION_MINIMAP_LIST_SYN sync;
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
// ÆÐŶ ÆÒµù ¼Â
|
|
SetPKBool(ePKBOOL_DOMINATION_MINIMAP_LIST_SYN, TIMEOUT_PACKET_PENDING);
|
|
}
|
|
}
|
|
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
void uiDominationTowerMan::SEND_DOMINATION_REFRESH_MEMBERLIST_REQ(MAPCODE map_code)
|
|
{
|
|
MSG_CG_DOMINATION_REFRESH_MEMBERLIST_REQ sync;
|
|
sync.map_code_ = map_code;
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
}
|
|
void uiDominationTowerMan::SEND_DOMINATION_MEMBER_JOIN_SYN(MAPCODE map_code)
|
|
{
|
|
if (SafePKBool(ePKBOOL_DOMINATION_MEMBER_JOIN_SYN))
|
|
{
|
|
MSG_CG_DOMINATION_MEMBER_JOIN_SYN sync;
|
|
sync.map_code_ = map_code;
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
// ÆÐŶ ÆÒµù ¼Â
|
|
SetPKBool(ePKBOOL_DOMINATION_MEMBER_JOIN_SYN, TIMEOUT_PACKET_PENDING);
|
|
}
|
|
}
|
|
void uiDominationTowerMan::SEND_DOMINATION_MEMBER_LEAVE_SYN(MAPCODE map_code, CHARGUID char_guid)
|
|
{
|
|
if (SafePKBool(ePKBOOL_DOMINATION_MEMBER_LEAVE_SYN))
|
|
{
|
|
MSG_CG_DOMINATION_MEMBER_LEAVE_SYN sync;
|
|
sync.map_code_ = map_code;
|
|
sync.memeber_guid_ = char_guid;
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
// ÆÐŶ ÆÒµù ¼Â
|
|
SetPKBool(ePKBOOL_DOMINATION_MEMBER_LEAVE_SYN, TIMEOUT_PACKET_PENDING);
|
|
}
|
|
}
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::SEND_LEAVE_DOMINATION()
|
|
{
|
|
MAPCODE FieldMapCode = g_pMap->GetCurrentFieldID();
|
|
const sDOMINATION_INFO* pDI = DominationInfoParser::Instance()->GetDominationInfo(FieldMapCode);
|
|
|
|
if (pDI)
|
|
{
|
|
WORD wIndex = MapInfoParser::Instance()->GetCurrentMapPortalIndexVer2(pDI->m_DominationMapCode, pDI->m_LinkMapCode);
|
|
|
|
MSG_CG_ZONE_PORTAL_FIELD_MOVE_SYN sync;
|
|
sync.m_wIndex = wIndex;
|
|
GlobalFunc::SendPacket( CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
}
|
|
}
|
|
|
|
|
|
// ÆÐŶ ¼ö½Å ÇÔ¼ö
|
|
void uiDominationTowerMan::RECV_DOMINATION_NOTICE_ACK(MSG_BASE * pMsg)
|
|
{
|
|
UnsetPKBool(ePKBOOL_DOMINATION_NOTICE_SYN);
|
|
MSG_CG_DOMINATION_NOTICE_ACK* pRecvPacket = (MSG_CG_DOMINATION_NOTICE_ACK*)pMsg;
|
|
if ( RC::DOMINATION_RESULT_SUCCESS == pRecvPacket->m_ResultCode )
|
|
{
|
|
DWORD map_mode = GetContinentMapMode();
|
|
if (map_mode == kContinentNormalMode)
|
|
{
|
|
m_pMainDialog->ShowInterface(TRUE);
|
|
m_pMainDialog->SetShowButtonFlag(pRecvPacket);
|
|
}
|
|
else
|
|
{
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
m_pDominationJoinList2->SetShowButtonFlag(pRecvPacket);
|
|
|
|
m_pApplyBetting->ShowInterface(FALSE);
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
#ifdef _NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
#else
|
|
|
|
#ifdef _TEMP_0068_20130820_DOMINATION_MANAGE_PACKET_CONTROL
|
|
// ÀÓ½ÃÆÐŶ : ¼º¹®°ü¸®°¡ °¡´ÉÇÑ »óÅÂ¸é °¡ÆÐŶÀ¸·Î ¼º¹®°ü¸®¿äûÀ» º¸³» ¼º¹®Á¤º¸¸¦ ¹Þ¾Æ³½´Ù.
|
|
if (pRecvPacket->m_ManageFlag == TRUE)
|
|
{
|
|
is_domination_manage_dummy_packet_ = true;
|
|
SEND_DOMINATION_MANAGE_SYN();
|
|
}
|
|
#else
|
|
// ´ë·ú¸Ê Á¡·ÉÀü °ü¸®¸ðµå
|
|
SEND_DOMINATION_APPLY_SYN();
|
|
#endif //_TEMP_0068_20130820_DOMINATION_MANAGE_PACKET_CONTROL
|
|
|
|
m_pDominationBettingList->ShowInterface(TRUE);
|
|
m_pDominationBettingList->SetShowButtonFlag(pRecvPacket);
|
|
|
|
m_DominationManager->ShowInterface(FALSE);
|
|
#endif //_NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
}
|
|
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
SetChallengerGuildInfo(&(pRecvPacket->m_GuildInfo));
|
|
friend_member_list_order_ = kListOrderNone;
|
|
enemy_member_list_order_ = kListOrderNone;
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
}
|
|
else
|
|
{
|
|
ProcessErrorCode(pRecvPacket->m_ResultCode);
|
|
}
|
|
}
|
|
|
|
#ifdef _NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
#else
|
|
void uiDominationTowerMan::RECV_DOMINATION_APPLY_ACK(MSG_BASE * pMsg)
|
|
{
|
|
UnsetPKBool(ePKBOOL_DOMINATION_APPLY_SYN);
|
|
MSG_CG_DOMINATION_APPLY_ACK* pRecvPacket = (MSG_CG_DOMINATION_APPLY_ACK*)pMsg;
|
|
if ( RC::DOMINATION_RESULT_SUCCESS == pRecvPacket->m_ResultCode )
|
|
{
|
|
DWORD map_mode = GetContinentMapMode();
|
|
if (map_mode != kContinentNormalMode)
|
|
{
|
|
// ºÐ¸®µÈ UI¿¡ ¸®½ºÆ® ¼¼ÆÃ
|
|
m_pDominationBettingList->SetBettingListData(pRecvPacket);
|
|
//m_pDominationBettingList->ShowInterface(TRUE);
|
|
}
|
|
else
|
|
{
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
m_pBettingList->SetBettingListData(pRecvPacket->m_ActionList, pRecvPacket->m_DataNum);
|
|
m_pBettingList->SetBettingButton(pRecvPacket->m_CheckBatting);
|
|
if (FALSE == m_pBettingList->IsVisibleWindow())
|
|
{
|
|
m_pBettingList->ShowInterface(TRUE);
|
|
}
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ProcessErrorCode(pRecvPacket->m_ResultCode);
|
|
}
|
|
}
|
|
void uiDominationTowerMan::RECV_DOMINATION_BATTING_HEIM_ACK(MSG_BASE * pMsg)
|
|
{
|
|
UnsetPKBool(ePKBOOL_DOMINATION_BATTING_HEIM_SYN);
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
MSG_CG_DOMINATION_BATTING_HEIM_ACK* pRecvPacket = (MSG_CG_DOMINATION_BATTING_HEIM_ACK*)pMsg;
|
|
switch (pRecvPacket->m_ResultCode)
|
|
{
|
|
case RC::DOMINATION_RESULT_SUCCESS:
|
|
{
|
|
m_OwnHeim = pRecvPacket->m_RemainCost;
|
|
m_pApplyBetting->ShowInterface(TRUE);
|
|
}
|
|
break;
|
|
case RC::DOMINATION_RESULT_OVERAP_APPLY:
|
|
{
|
|
m_OwnHeim = pRecvPacket->m_RemainCost;
|
|
m_pApplyBetting2->ShowInterface(TRUE);
|
|
}
|
|
break;
|
|
|
|
default:
|
|
{
|
|
ProcessErrorCode(pRecvPacket->m_ResultCode);
|
|
}
|
|
}
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
}
|
|
void uiDominationTowerMan::RECV_DOMINATION_ACCEP_HEIM_ACK(MSG_BASE * pMsg)
|
|
{
|
|
UnsetPKBool(ePKBOOL_DOMINATION_ACCEP_HEIM_SYN);
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
MSG_CG_DOMINATION_ACCEP_HEIM_ACK* pRecvPacket = (MSG_CG_DOMINATION_ACCEP_HEIM_ACK*)pMsg;
|
|
if ( RC::DOMINATION_RESULT_SUCCESS == pRecvPacket->m_ResultCode )
|
|
{
|
|
|
|
m_pApplyBetting->ShowInterface(FALSE);
|
|
|
|
if (g_pHero)
|
|
{
|
|
TCHAR temp_message[INTERFACE_STRING_LENGTH] = {0,};
|
|
TCHAR notice_message[INTERFACE_STRING_LENGTH] = {0,};
|
|
|
|
_itot(pRecvPacket->betting_item_count_, temp_message, 10);
|
|
|
|
// 7396 ÇØ´ç Áö¿ª¿¡ ¿ÕÀÇÁõÇ¥ %s°³ ÀÔÂûÀÌ Á¤»óÀûÀ¸·Î µî·ÏµÇ¾ú½À´Ï´Ù
|
|
g_InterfaceManager.GetInterfaceStringFormat(
|
|
notice_message,
|
|
INTERFACE_STRING_LENGTH,
|
|
7396,
|
|
temp_message);
|
|
|
|
GlobalFunc::default_OutputMsg(eOUTPUT_MSG_CENTER_SHOW | eOUTPUT_MSG_CHAT, notice_message);
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
ProcessErrorCode(pRecvPacket->m_ResultCode);
|
|
}
|
|
|
|
SEND_DOMINATION_APPLY_SYN();
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
}
|
|
#endif //_NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
|
|
void uiDominationTowerMan::RECV_DOMINATION_MANAGE_ACK(MSG_BASE * pMsg)
|
|
{
|
|
UnsetPKBool(ePKBOOL_DOMINATION_MANAGE_SYN);
|
|
MSG_CG_DOMINATION_MANAGE_ACK* pRecvPacket = (MSG_CG_DOMINATION_MANAGE_ACK*)pMsg;
|
|
if ( RC::DOMINATION_RESULT_SUCCESS == pRecvPacket->m_ResultCode )
|
|
{
|
|
#ifdef _NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
#else
|
|
#ifdef _TEMP_0068_20130820_DOMINATION_MANAGE_PACKET_CONTROL
|
|
if (is_domination_manage_dummy_packet_ == true)
|
|
{
|
|
is_domination_manage_dummy_packet_ = false;
|
|
m_pDominationBettingList->SetManageListData(pRecvPacket);
|
|
}
|
|
else
|
|
{
|
|
m_DominationManager->ShowInterface(TRUE);
|
|
m_DominationManager->SetDefenseWall(pRecvPacket->m_TotalPoint, pRecvPacket->m_DefenseWall);
|
|
}
|
|
#else
|
|
m_DominationManager->ShowInterface(TRUE);
|
|
m_DominationManager->SetDefenseWall(pRecvPacket->m_TotalPoint, pRecvPacket->m_DefenseWall);
|
|
#endif //_TEMP_0068_20130820_DOMINATION_MANAGE_PACKET_CONTROL
|
|
#endif //_NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
}
|
|
else
|
|
{
|
|
ProcessErrorCode(pRecvPacket->m_ResultCode);
|
|
}
|
|
}
|
|
|
|
void uiDominationTowerMan::RECV_DOMINATION_SAVE_GATESTAT_ACK(MSG_BASE * pMsg)
|
|
{
|
|
UnsetPKBool(ePKBOOL_DOMINATION_SAVE_GATESTAT_SYN);
|
|
MSG_CG_DOMINATION_SAVE_GATESTAT_ACK* pRecvPacket = (MSG_CG_DOMINATION_SAVE_GATESTAT_ACK*)pMsg;
|
|
if ( RC::DOMINATION_RESULT_SUCCESS == pRecvPacket->m_ResultCode )
|
|
{
|
|
// 3334 ¹æ¾îº® ¼¼ÆÃÀÌ ¿Ï·áµÇ¾ú½À´Ï´Ù.
|
|
TCHAR szMessage[INTERFACE_STRING_LENGTH] ={0, };
|
|
g_InterfaceManager.GetInterfaceString(3334, szMessage);
|
|
GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage);
|
|
}
|
|
else
|
|
{
|
|
ProcessErrorCode(pRecvPacket->m_ResultCode);
|
|
}
|
|
|
|
#ifdef _NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
#else
|
|
m_DominationManager->ShowInterface(FALSE);
|
|
#endif //_NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
}
|
|
|
|
void uiDominationTowerMan::RECV_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK(MSG_BASE* pMsg)
|
|
{
|
|
UnsetPKBool(ePKBOOL_DOMINATION_ADD_DEFFENSEWALL_SYN);
|
|
MSG_CG_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK* recv_packet = (MSG_CG_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK*)pMsg;
|
|
RC::eDOMINATION_RESULT result_code = recv_packet->result_code_;
|
|
if (RC::DOMINATION_RESULT_SUCCESS == result_code)
|
|
{
|
|
// ÀÌÆåÆ®(±ôºý ±ôºý)
|
|
#ifdef _NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
#else
|
|
if (m_DominationManager)
|
|
{
|
|
m_DominationManager->SetAnimation();
|
|
}
|
|
#endif //_NA_006953_20131114_DOMINATION_MANAGER_UI_RENEWAL
|
|
}
|
|
else
|
|
{
|
|
ProcessErrorCode(result_code);
|
|
}
|
|
}
|
|
|
|
void uiDominationTowerMan::RECV_DOMINATION_MINIMAP_LIST_ACK(MSG_BASE * pMsg)
|
|
{
|
|
UnsetPKBool(ePKBOOL_DOMINATION_MINIMAP_LIST_SYN);
|
|
MSG_CG_DOMINATION_MINIMAP_LIST_ACK* pRecvPacket = (MSG_CG_DOMINATION_MINIMAP_LIST_ACK*)pMsg;
|
|
if ( RC::DOMINATION_RESULT_SUCCESS == pRecvPacket->m_ResultCode )
|
|
{
|
|
m_mapDominatioGuild.clear();
|
|
PAIR_DOMINATIONGUILD dominationguild;
|
|
for (int Index = 0; Index < pRecvPacket->m_NumDominationGuild; ++Index)
|
|
{
|
|
dominationguild = PAIR_DOMINATIONGUILD(pRecvPacket->m_GuildInfo[Index].m_MapCode, pRecvPacket->m_GuildInfo[Index]);
|
|
dominationguild.second.m_tszGuildName[MAX_GUILDNAME_LENGTH] = '\0';
|
|
dominationguild.second.m_tszGuildMaster[MAX_GUILDNAME_LENGTH] = '\0';
|
|
m_mapDominatioGuild.insert(dominationguild);
|
|
}
|
|
m_bShowDominationGuildInfo = true;
|
|
}
|
|
else
|
|
{
|
|
ProcessErrorCode(pRecvPacket->m_ResultCode);
|
|
}
|
|
}
|
|
|
|
void uiDominationTowerMan::RECV_DOMINATION_START_NOTIFY_BRD(MSG_BASE * pMsg)
|
|
{
|
|
uiNoticeMan* pUIMan = GET_DIALOG_MANAGER(uiNoticeMan, UIMAN_NOTICE);
|
|
if (pUIMan == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
MSG_CG_DOMINATION_START_NOTIFY_BRD* pRecvPacket = (MSG_CG_DOMINATION_START_NOTIFY_BRD*)pMsg;
|
|
|
|
switch (pRecvPacket->notify_type)
|
|
{
|
|
case DOMINATION_WAR_TIME:
|
|
{
|
|
if(0 != pRecvPacket->m_byTime)
|
|
{
|
|
TCHAR szTemp[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
TCHAR szMessage[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
if (pRecvPacket->m_domination_type == DOMINATION_TYPE_MONDSCHIEN)
|
|
{
|
|
// 3479 %d ºÐ ÈÄ¿¡ ¸óÆ®»þÀÎ ¿ä»õ °ø¹æÀüÀÌ ½ÃÀÛµÉ ¿¹Á¤ÀÔ´Ï´Ù.\nÇØ´ç Áö¿ª¿¡ ÀÔÀåÇϽñ⠹ٶø´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(3479, szTemp);
|
|
}
|
|
else
|
|
{
|
|
//3318 %s ºÐ ÈÄ¿¡ Á¡·ÉÀüÀÌ ½ÃÀÛµÉ ¿¹Á¤ÀÔ´Ï´Ù.\nÇØ´ç Áö¿ª Ÿ¿ö¿¡ ÀÔÀåÇϽñ⠹ٶø´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(3318, szTemp);
|
|
}
|
|
#else
|
|
//3318 %s ºÐ ÈÄ¿¡ Á¡·ÉÀüÀÌ ½ÃÀÛµÉ ¿¹Á¤ÀÔ´Ï´Ù.\nÇØ´ç Áö¿ª Ÿ¿ö¿¡ ÀÔÀåÇϽñ⠹ٶø´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(3318, szTemp);
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
Snprintf(szMessage, INTERFACE_STRING_LENGTH, szTemp, pRecvPacket->m_byTime);
|
|
|
|
pUIMan->ShowNoticeMessage(eGuild_Notice, szMessage, 10000);
|
|
}
|
|
else if (0 == pRecvPacket->m_byTime && SCENE_TYPE_FIELD == GameFramework::GetCurScene())
|
|
{
|
|
TCHAR szMessage[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
if (pRecvPacket->m_domination_type == DOMINATION_TYPE_MONDSCHIEN)
|
|
{
|
|
// 3485 ¸óÆ®»þÀÎ ¿ä»õ °ø¹æÀü'ÀÌ ½ÃÀ۵Ǿú½À´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(3485, szMessage);
|
|
}
|
|
else
|
|
{
|
|
//3376 ÇÇÀÇ ¼ºÀü' Á¡·ÉÀüÀÌ ½ÃÀ۵Ǿú½À´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(3376, szMessage);
|
|
}
|
|
#else
|
|
//3376 ÇÇÀÇ ¼ºÀü' Á¡·ÉÀüÀÌ ½ÃÀ۵Ǿú½À´Ï´Ù.
|
|
g_InterfaceManager.GetInterfaceString(3376, szMessage);
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
|
|
pUIMan->ShowNoticeMessage(eGuild_Notice, szMessage, 10000);
|
|
}
|
|
}
|
|
break;
|
|
case DOMINATION_JOIN_TIME:
|
|
{
|
|
if(0 != pRecvPacket->m_byTime)
|
|
{
|
|
// 3460 %dºÐ ÈÄ ÇÇÀǼºÀü ÃâÀü ½ÅûÀÌ ¸¶°¨µË´Ï´Ù. ÃâÀü ½ÅûÀ» ¿Ï·áÇØ Áֽñ⸦ ¹Ù¶ø´Ï´Ù
|
|
TCHAR szTemp[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
TCHAR szMessage[INTERFACE_STRING_LENGTH + 1] = {0,};
|
|
g_InterfaceManager.GetInterfaceString(3460, szTemp);
|
|
Snprintf(szMessage, INTERFACE_STRING_LENGTH, szTemp, pRecvPacket->m_byTime);
|
|
|
|
pUIMan->ShowNoticeMessage(eGuild_Notice, szMessage, 10000);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
void uiDominationTowerMan::RECV_DOMINATION_DEFENSE_GUILD_ALLIENCE_LIST_BRD(MSG_BASE* pMsg)
|
|
{
|
|
MSG_CG_DOMINATION_DEFENSE_GUILD_ALLIENCE_LIST_BRD* recv_packet = (MSG_CG_DOMINATION_DEFENSE_GUILD_ALLIENCE_LIST_BRD*)pMsg;
|
|
|
|
uiDominationTowerMan* ui_domination_manager = GET_DIALOG_MANAGER(uiDominationTowerMan, UIMAN_DOMINATIONWAR_TOWER);
|
|
if (ui_domination_manager == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
ui_domination_manager->defence_guild_alliance_container().clear();
|
|
|
|
// ¼ö¼º ¿¬ÇÕ ¸®½ºÆ® ¹ÞÀ½
|
|
for (int i = 0; i < MAX_ALLIENCE_GUILD_NUM; ++i)
|
|
{
|
|
if (recv_packet->allience_list[i] == 0)
|
|
{
|
|
break;
|
|
}
|
|
|
|
ui_domination_manager->defence_guild_alliance_container().push_back(recv_packet->allience_list[i]);
|
|
}
|
|
|
|
// Àüü Ç÷¹À̾îµéÀÇ ±æµå°ü°è¸¦ ¸®¼Â
|
|
std::vector<Player*> vector_players;
|
|
g_ObjectManager.GetPlayers(vector_players);
|
|
int count = vector_players.size();
|
|
for (int i = 0; i < count; ++i)
|
|
{
|
|
Player* player = vector_players[i];
|
|
if (player)
|
|
{
|
|
player->CheckDominationRelation();
|
|
}
|
|
}
|
|
vector_players.clear();
|
|
}
|
|
#else
|
|
void uiDominationTowerMan::RECV_DOMINATION_MEMBERLIST_NTF(MSG_BASE* pMsg)
|
|
{
|
|
MSG_CG_DOMINATION_MEMBERLIST_NTF* recv_packet = (MSG_CG_DOMINATION_MEMBERLIST_NTF*)pMsg;
|
|
|
|
// Âü¿© ¸â¹ö ¸®½ºÆ®¼¼ÆÃ ¹× UI Show
|
|
// 2°¡Áö UI Áß¿¡ ÇѰ÷¿¡ ¼¼ÆÃ
|
|
DWORD map_mode = GetContinentMapMode();
|
|
if (map_mode == kContinentNormalMode)
|
|
{
|
|
// ¸®½ºÆ®1¿¡ ¼¼ÆÃ
|
|
m_pDominationJoinList1->ShowInterface(TRUE);
|
|
m_pDominationJoinList1->SetDominationJoinList(recv_packet);
|
|
}
|
|
else
|
|
{
|
|
// ¸®½ºÆ®2¿¡ ¼¼ÆÃ
|
|
//m_pDominationJoinList2->ShowInterface(TRUE);
|
|
m_pDominationJoinList2->SetDominationJoinList(recv_packet);
|
|
}
|
|
}
|
|
|
|
void uiDominationTowerMan::RECV_DOMINATION_MEMBER_JOIN_ACK(MSG_BASE* pMsg)
|
|
{
|
|
UnsetPKBool(ePKBOOL_DOMINATION_MEMBER_JOIN_SYN);
|
|
MSG_CG_DOMINATION_MEMBER_JOIN_ACK* recv_packet = (MSG_CG_DOMINATION_MEMBER_JOIN_ACK*)pMsg;
|
|
|
|
if (recv_packet->result_code_ == DOMINATION_RESULT_SUCCESS)
|
|
{
|
|
DWORD continent_mode = GetContinentMapMode();
|
|
if ((continent_mode == kContinentNormalMode) &&
|
|
(m_pMainDialog != NULL))
|
|
{
|
|
m_pMainDialog->RECV_DOMINATION_MEMBER_JOIN_ACK(recv_packet);
|
|
}
|
|
else if ((continent_mode == kContinentDominationManagerMode) ||
|
|
(continent_mode == kContinentDominationManagerSelectedAreaMode))
|
|
{
|
|
if (m_pDominationJoinList2 != NULL)
|
|
{
|
|
m_pDominationJoinList2->RECV_DOMINATION_MEMBER_JOIN_ACK(recv_packet);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ProcessErrorCode(recv_packet->result_code_);
|
|
}
|
|
}
|
|
|
|
void uiDominationTowerMan::RECV_DOMINATION_MEMBER_LEAVE_ACK(MSG_BASE* pMsg)
|
|
{
|
|
UnsetPKBool(ePKBOOL_DOMINATION_MEMBER_LEAVE_SYN);
|
|
MSG_CG_DOMINATION_MEMBER_LEAVE_ACK* recv_packet = (MSG_CG_DOMINATION_MEMBER_LEAVE_ACK*)pMsg;
|
|
|
|
if (recv_packet->result_code_ == DOMINATION_RESULT_SUCCESS)
|
|
{
|
|
DWORD continent_mode = GetContinentMapMode();
|
|
if ((continent_mode == kContinentNormalMode) &&
|
|
(m_pMainDialog != NULL))
|
|
{
|
|
m_pMainDialog->RECV_DOMINATION_MEMBER_LEAVE_ACK(recv_packet);
|
|
}
|
|
else if ((continent_mode == kContinentDominationManagerMode) ||
|
|
(continent_mode == kContinentDominationManagerSelectedAreaMode))
|
|
{
|
|
if (m_pDominationJoinList2 != NULL)
|
|
{
|
|
m_pDominationJoinList2->RECV_DOMINATION_MEMBER_LEAVE_ACK(recv_packet);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ProcessErrorCode(recv_packet->result_code_);
|
|
}
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::SetChallengerGuildInfo(DOMINATION_GUILD_INFO* pGuildInfo)
|
|
{
|
|
memset(&m_ChallengerGuildInfo,0,sizeof(m_ChallengerGuildInfo));
|
|
if (pGuildInfo->m_GuildGuid)
|
|
{
|
|
memcpy(&m_ChallengerGuildInfo, pGuildInfo, sizeof(m_ChallengerGuildInfo));
|
|
m_ChallengerGuildInfo.m_tszGuildName[MAX_CHARNAME_LENGTH] = '\0';
|
|
m_ChallengerGuildInfo.m_tszGuildMaster[MAX_CHARNAME_LENGTH] = '\0';
|
|
}
|
|
}
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::SetDominationGuildInfo(DOMINATION_GUILD_INFO* pGuildInfo)
|
|
{
|
|
memset(&m_DominationGuildInfo,0,sizeof(m_DominationGuildInfo));
|
|
if ((pGuildInfo != NULL) && (pGuildInfo->m_GuildGuid))
|
|
{
|
|
SCENE_TYPE sceneType = GameFramework::GetCurScene();
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
if ((sceneType == SCENE_TYPE_FIELD) || (sceneType == SCENE_TYPE_VILLAGE) || (sceneType == SCENE_TYPE_DOMINATION)
|
|
#ifdef _NA_008334_20150608_SONNENSCHEIN
|
|
|| (sceneType == SCENE_TYPE_SONNENSCHEIN)
|
|
#endif //_NA_008334_20150608_SONNENSCHEIN
|
|
)
|
|
#else
|
|
if ((sceneType == SCENE_TYPE_FIELD) || (sceneType == SCENE_TYPE_DOMINATION))
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
{
|
|
memcpy(&m_DominationGuildInfo, pGuildInfo, sizeof(m_DominationGuildInfo));
|
|
m_DominationGuildInfo.m_tszGuildName[MAX_CHARNAME_LENGTH] = '\0';
|
|
m_DominationGuildInfo.m_tszGuildMaster[MAX_CHARNAME_LENGTH] = '\0';
|
|
}
|
|
}
|
|
// ÇʵåÀÔÀå½Ã Á¡·É ±æµå Ãâ·Â
|
|
m_DominationArea->SetGuildName(m_DominationGuildInfo.m_tszGuildName);
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
void uiDominationTowerMan::ProcessErrorCode(DWORD dwErrorcode)
|
|
{
|
|
TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0, };
|
|
DWORD dwStringcode = 70017;
|
|
switch (dwErrorcode)
|
|
{
|
|
case RC::DOMINATION_RESULT_FAIL:
|
|
case RC::DOMINATION_RESULT_DBERROR:
|
|
// 70017 Àá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇϽʽÿÀ.
|
|
dwStringcode = 70017;
|
|
break;
|
|
case RC::DOMINATION_RESULT_NOT_ENOUGHMONEY:
|
|
{
|
|
// 3383 ¼ÒÁö±ÝÀÌ ºÎÁ·ÇÏ¿© ÇÇÀǼºÀü Á¡·ÉÀüÀÇ Âü¿© ½ÅûÀ» ÇÒ ¼ö ¾ø½À´Ï´Ù.
|
|
dwStringcode = 3383;
|
|
}
|
|
break;
|
|
case RC::DOMINATION_RESULT_LIMIT_ENOUGHMONEY:
|
|
dwStringcode = 3348;
|
|
break;
|
|
case RC::DOMINATION_RESULT_BEST_ENOUGHMONEY:
|
|
dwStringcode = 3349;
|
|
break;
|
|
case RC::DOMINATION_RESULT_DEFFENSEWALL_OVERPOINT:
|
|
dwStringcode = 3350;
|
|
break;
|
|
case RC::DOMINATION_RESULT_USER_LOCATION_FAIL:
|
|
dwStringcode = 3351;
|
|
break;
|
|
case RC::DOMINATION_RESULT_NOT_GUILDMASTER:
|
|
dwStringcode = 3346;
|
|
break;
|
|
case RC::DOMINATION_RESULT_GUILDSTAT_DESTROYWAIT:
|
|
dwStringcode = 6236;
|
|
break;
|
|
case RC::DOMINATION_RESULT_NOT_GUILDMEMBER:
|
|
dwStringcode = 3346;
|
|
break;
|
|
case RC::DOMINATION_RESULT_LESS_TOKEN:
|
|
// 3384 ¿ÕÀÇ ÁõÇ¥ ¾ÆÀÌÅÛÀ» ÃÖ¼Ò 1°³ ÀÌ»ó µî·ÏÇÏ¼Å¾ß ½ÅûÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
|
|
dwStringcode = 3384;
|
|
break;
|
|
case RC::DOMINATION_RESULT_CAN_JOIN_ONLYONE_AREA:
|
|
case RC::DOMINATION_RESULT_CAN_BETTING_ONLYONE_AREA:
|
|
// 3451 ÇÇÀǼºÀü Á¡·ÉÀü ½ÅûÀº ÇÑ Áö¿ª¸¸ °¡´ÉÇÕ´Ï´Ù.
|
|
dwStringcode = 3451;
|
|
break;
|
|
#ifdef _DEV_VER
|
|
case RC::DOMINATION_RESULT_GUILDLEVEL_FAIL:
|
|
GlobalFunc::DebugOutputMsg(eOUTPUT_MSG_CHAT, "[DEBUG] Domination ErrorCode[%d] - DOMINATION_RESULT_GUILDLEVEL_FAIL", dwErrorcode);
|
|
break;
|
|
#endif
|
|
default:
|
|
#ifdef _DEV_VER
|
|
GlobalFunc::DebugOutputMsg(eOUTPUT_MSG_CHAT, "[DEBUG] Undefined Domination ErrorCode[%d]", dwErrorcode);
|
|
#endif
|
|
return;
|
|
}
|
|
|
|
#ifdef _NA_003923_20120222_GUILD_RENEWAL_UI_RENEWAL
|
|
GlobalFunc::VerifyMessage(dwStringcode);
|
|
#else
|
|
g_InterfaceManager.GetInterfaceString( dwStringcode, szMessage, INTERFACE_STRING_LENGTH );
|
|
GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage);
|
|
#endif //_NA_003923_20120222_GUILD_RENEWAL_UI_RENEWAL
|
|
}
|
|
|
|
void uiDominationTowerMan::SetDominationObject(DWORD dwObjectKey)
|
|
{
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
domination_object_key_vector_.push_back(dwObjectKey);
|
|
#else
|
|
m_dwObjectKey = dwObjectKey;
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
|
|
bool bShow = false;
|
|
MAPCODE FieldMapCode = g_pMap->GetCurrentFieldID();
|
|
const sDOMINATION_INFO* pDI = DominationInfoParser::Instance()->GetDominationInfo(FieldMapCode);
|
|
uiLoginMan* pLoginMan = GET_DIALOG_MANAGER(uiLoginMan, UIMAN_LOGIN);
|
|
if (pLoginMan)
|
|
{
|
|
AuthSetverData* pServerData = pLoginMan->GetCurrentServerData();
|
|
bShow = pDI && pServerData && pServerData->m_ChannelID == PROGRAMPARAM->GetDominationChannel();
|
|
}
|
|
m_bShowDominationObject = bShow;
|
|
}
|
|
|
|
void uiDominationTowerMan::RenderGuildMark(CControlWZ* pControl, DOMINATION_GUILD_INFO* pGuildInfo, BYTE byAlpha)
|
|
{
|
|
#ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER
|
|
HANDLE hGuildMarkTexture = GuildSystem::GetGuildSystemData().GetGuildMarkTexture();
|
|
#else
|
|
// ±æµå¸¶Å© ¼¼ÆÃ
|
|
uiGuildMan* pUIGuildMan = GET_DIALOG_MANAGER(uiGuildMan, UIMAN_GUILD);
|
|
if (pUIGuildMan == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
HANDLE hGuildMarkTexture = pUIGuildMan->GetGuildMarkTexture();
|
|
#endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER
|
|
|
|
//Á¡·É ±æµå ¸¶Å© Ãâ·Â
|
|
if (hGuildMarkTexture != INVALID_HANDLE_VALUE)
|
|
{
|
|
ENUM_ALPHABLEND eOldAlphaMode = g_pSunRenderer->GetAlphaBlendMode();
|
|
BASE_GuildMarkInfo* pMarkInfo = NULL;
|
|
|
|
RECT rtSize = pControl->GetSizeRect();
|
|
|
|
float fWidth = (float) rtSize.right - rtSize.left;
|
|
float fHeight = (float) rtSize.bottom - rtSize.top;
|
|
g_pSunRenderer->SetAlphaBlendMode(AB_ALPHA);
|
|
|
|
WzColor Color[4] = {WzColor_RGBA(255,255,255,byAlpha)
|
|
, WzColor_RGBA(255,255,255,byAlpha)
|
|
, WzColor_RGBA(255,255,255,byAlpha)
|
|
, WzColor_RGBA(255,255,255,byAlpha)};
|
|
|
|
for(int i =0; i < 2; ++i)
|
|
{
|
|
if( i == 0)
|
|
pMarkInfo = GuildMarkInfoParser::Instance()->GetGuildMarkInfo(pGuildInfo->m_BackGroundIndex);
|
|
else
|
|
pMarkInfo = GuildMarkInfoParser::Instance()->GetGuildMarkInfo(pGuildInfo->m_PatternIndex);
|
|
|
|
if( pMarkInfo )
|
|
{
|
|
g_pSunRenderer->RenderTexture(hGuildMarkTexture, (float)rtSize.left , (float)rtSize.top, fWidth , fHeight,
|
|
(float)pMarkInfo->iRow * 32.0f , (float) pMarkInfo->iColumn * 32.0f, 32.0f, 32.0f, Color);
|
|
}
|
|
}
|
|
g_pSunRenderer->SetAlphaBlendMode(eOldAlphaMode);
|
|
}
|
|
}
|
|
|
|
void uiDominationTowerMan::RenderGuildMark(CControlWZ* pControl, DOMINATION_GUILD_INFO* pGuildInfo, BYTE byAlpha, bool bTooltipGuildName, DWORD TooltipParentDialogKey)
|
|
{
|
|
uiDominationTowerMan::RenderGuildMark(pControl, pGuildInfo, byAlpha);
|
|
if ((bTooltipGuildName == true) && (pControl != NULL))
|
|
{
|
|
int iMouseX = Mouse::Instance()->GetMouseX();
|
|
int iMouseY = Mouse::Instance()->GetMouseY();
|
|
RECT ControlRect = pControl->GetSizeRect();
|
|
if ((ControlRect.left <= iMouseX) &&
|
|
(ControlRect.right >= iMouseX) &&
|
|
(ControlRect.top <= iMouseY) &&
|
|
(ControlRect.bottom >= iMouseY))
|
|
{
|
|
uiToolTipMan* pTooltipMan = GET_DIALOG_MANAGER(uiToolTipMan, UIMAN_TOOLTIP);
|
|
if (pTooltipMan != NULL)
|
|
{
|
|
pTooltipMan->RegisterTooltip(pGuildInfo->m_tszGuildName);
|
|
pTooltipMan->SetTooltipDialogID(TooltipParentDialogKey);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void uiDominationTowerMan::HideDominationManagmentDialog()
|
|
{
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
#else
|
|
uiBase* join_list = GET_DIALOG(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_JOIN_LIST2);
|
|
if (join_list != NULL)
|
|
{
|
|
join_list->ShowInterface(FALSE);
|
|
}
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
uiBase* betting_list = GET_DIALOG(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_BETTING_LIST);
|
|
if (betting_list != NULL)
|
|
{
|
|
betting_list->ShowInterface(FALSE);
|
|
}
|
|
}
|
|
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
bool uiDominationTowerMan::IsDefenceGuildAlliance(GUILDGUID target_guid)
|
|
{
|
|
// ¼ö¼ºÃø ¸®½ºÆ®¿¡ ÀÖ´Â ±æµåÀÎÁö
|
|
STLX_VECTOR<GUILDGUID>::iterator itr_point = defence_guild_alliance_container().begin();
|
|
STLX_VECTOR<GUILDGUID>::iterator end_itr = defence_guild_alliance_container().end();
|
|
for ( ; itr_point != end_itr; ++itr_point)
|
|
{
|
|
GUILDGUID& guild_guid = (*itr_point);
|
|
if (guild_guid == target_guid)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
void uiDominationTowerMan::ComfirmDominationEnter(bool is_enter)
|
|
{
|
|
if (is_enter == true)
|
|
{
|
|
MAPCODE FieldMapCode = g_pMap->GetCurrentFieldID();
|
|
MAPCODE DominationMapCode = DominationInfoParser::Instance()->GetDominationFieldCode(FieldMapCode);
|
|
WORD wIndex = MapInfoParser::Instance()->GetCurrentMapPortalIndexVer2(FieldMapCode, DominationMapCode);
|
|
|
|
MSG_CG_ZONE_PORTAL_FIELD_MOVE_SYN sync;
|
|
sync.m_wIndex = wIndex;
|
|
GlobalFunc::SendPacket( CI_GAMESERVERIDX, &sync, sizeof(sync));
|
|
}
|
|
}
|
|
#else
|
|
void uiDominationTowerMan::ComfirmDominationJoin(bool is_join)
|
|
{
|
|
if (is_join == true)
|
|
{
|
|
uiDominationTowerMan* ui_domination_manager = GET_DIALOG_MANAGER(uiDominationTowerMan, UIMAN_DOMINATIONWAR_TOWER);
|
|
if (ui_domination_manager != NULL)
|
|
{
|
|
MAPCODE map_code = ui_domination_manager->GetDominationManagedMapCode();
|
|
ui_domination_manager->SEND_DOMINATION_MEMBER_JOIN_SYN(map_code);
|
|
}
|
|
}
|
|
}
|
|
|
|
void uiDominationTowerMan::ComfirmDominationLeave(bool is_leave)
|
|
{
|
|
if (is_leave == true)
|
|
{
|
|
uiDominationTowerMan* ui_domination_manager = GET_DIALOG_MANAGER(uiDominationTowerMan, UIMAN_DOMINATIONWAR_TOWER);
|
|
if (ui_domination_manager != NULL)
|
|
{
|
|
MAPCODE map_code = ui_domination_manager->GetDominationManagedMapCode();
|
|
CHARGUID char_guid = ui_domination_manager->leave_member_info().member_guid_;
|
|
ui_domination_manager->SEND_DOMINATION_MEMBER_LEAVE_SYN(map_code, char_guid);
|
|
}
|
|
}
|
|
}
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
bool uiDominationTowerMan::SortMemberListByClassLess(const DominationMemberInfo& member_info_ref_1,
|
|
DominationMemberInfo& member_info_ref2)
|
|
{
|
|
return member_info_ref_1.member_class_ < member_info_ref2.member_class_;
|
|
}
|
|
|
|
bool uiDominationTowerMan::SortMemberListByClassGreater(const DominationMemberInfo& member_info_ref_1,
|
|
DominationMemberInfo& member_info_ref2)
|
|
{
|
|
return member_info_ref_1.member_class_ > member_info_ref2.member_class_;
|
|
}
|
|
|
|
bool uiDominationTowerMan::SortMemberListByLevelLess(const DominationMemberInfo& member_info_ref_1,
|
|
DominationMemberInfo& member_info_ref2)
|
|
{
|
|
return member_info_ref_1.member_level_ < member_info_ref2.member_level_;
|
|
}
|
|
|
|
bool uiDominationTowerMan::SortMemberListByLevelGreater(const DominationMemberInfo& member_info_ref_1,
|
|
DominationMemberInfo& member_info_ref2)
|
|
{
|
|
return member_info_ref_1.member_level_ > member_info_ref2.member_level_;
|
|
}
|
|
|
|
bool uiDominationTowerMan::SortMemberListByNameLess(const DominationMemberInfo& member_info_ref_1,
|
|
DominationMemberInfo& member_info_ref2)
|
|
{
|
|
return Strcmp(member_info_ref_1.member_name_, member_info_ref2.member_name_) < 0;
|
|
}
|
|
|
|
bool uiDominationTowerMan::SortMemberListByNameGreater(const DominationMemberInfo& member_info_ref_1,
|
|
DominationMemberInfo& member_info_ref2)
|
|
{
|
|
return Strcmp(member_info_ref_1.member_name_, member_info_ref2.member_name_) > 0;
|
|
}
|
|
|
|
|
|
void uiDominationTowerMan::RefreshZoneMarkInfo()
|
|
{
|
|
if (g_pHero == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
uiDominationZoneMarkDlg* zonemark_dialog = GET_CAST_DIALOG(uiDominationZoneMarkDlg, IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_ZONEMARK_DIALOG);
|
|
if (zonemark_dialog)
|
|
{
|
|
zonemark_dialog->SetZoneMarkInfo(g_pHero->GetDominationStateInfo()
|
|
#ifdef _NA_008334_20150608_SONNENSCHEIN
|
|
, GuildSystem::GetGuildSystemData().get_sonnenschein_phase()
|
|
#endif //_NA_008334_20150608_SONNENSCHEIN
|
|
);
|
|
zonemark_dialog->ShowInterface(TRUE);
|
|
g_pHero->UpdateSkillAttr();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
DWORD uiDominationTowerMan::GetContinentMapMode()
|
|
{
|
|
ContinentMapDlg* continent_map_dialog =
|
|
GET_CAST_DIALOG(ContinentMapDlg, IM_RADAR_MANAGER::CONTINENT_MAP_DLG);
|
|
if ((continent_map_dialog != NULL) &&
|
|
(continent_map_dialog->IsVisible() == TRUE))
|
|
{
|
|
return continent_map_dialog->continent_map_mode();
|
|
}
|
|
ContinentEp2MapDlg* continent_map_dialog_ep2 =
|
|
GET_CAST_DIALOG(ContinentEp2MapDlg, IM_RADAR_MANAGER::CONTINENT_MAP_EP2_DLG);
|
|
if ((continent_map_dialog_ep2 != NULL) &&
|
|
(continent_map_dialog_ep2->IsVisible() == TRUE))
|
|
{
|
|
return continent_map_dialog_ep2->continent_map_mode();
|
|
}
|
|
return (kContinentNormalMode);
|
|
}
|
|
|
|
MAPCODE uiDominationTowerMan::GetDominationManagedMapCode()
|
|
{
|
|
MAPCODE mapcode = 0;
|
|
ContinentMapDlg* continent_map_dialog =
|
|
GET_CAST_DIALOG(ContinentMapDlg, IM_RADAR_MANAGER::CONTINENT_MAP_DLG);
|
|
if ((continent_map_dialog != NULL) &&
|
|
(continent_map_dialog->IsVisible() == TRUE))
|
|
{
|
|
ContinentMapMode map_mode = continent_map_dialog->continent_map_mode();
|
|
if (map_mode == kContinentDominationManagerSelectedAreaMode)
|
|
{
|
|
mapcode = continent_map_dialog->GetDominationManagedMapcode();
|
|
return mapcode;
|
|
}
|
|
}
|
|
ContinentEp2MapDlg* continent_map_dialog_ep2 =
|
|
GET_CAST_DIALOG(ContinentEp2MapDlg, IM_RADAR_MANAGER::CONTINENT_MAP_EP2_DLG);
|
|
if ((continent_map_dialog_ep2 != NULL) &&
|
|
(continent_map_dialog_ep2->IsVisible() == TRUE))
|
|
{
|
|
ContinentMapMode map_mode = continent_map_dialog_ep2->continent_map_mode();
|
|
if (map_mode == kContinentDominationManagerSelectedAreaMode)
|
|
{
|
|
mapcode = continent_map_dialog_ep2->GetDominationManagedMapcode();
|
|
return mapcode;
|
|
}
|
|
}
|
|
|
|
if (g_pMap != NULL)
|
|
{
|
|
MAPCODE current_mapcode = g_pMap->GetCurrentFieldID();
|
|
const sDOMINATION_INFO* domination_info =
|
|
DominationInfoParser::Instance()->GetDominationInfo(current_mapcode);
|
|
if (domination_info != NULL)
|
|
{
|
|
mapcode = domination_info->m_DominationMapCode;
|
|
return mapcode;
|
|
}
|
|
}
|
|
return mapcode;
|
|
}
|
|
|
|
#ifdef _NA_007029_20140120_DOMINATION_RESURRECTION_REFORM
|
|
void uiDominationTowerMan::ShowDominationResurrectionPopup()
|
|
{
|
|
if (ui_domination_resurrection_ == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
ui_domination_resurrection_->ShowInterface(TRUE);
|
|
}
|
|
#endif //_NA_007029_20140120_DOMINATION_RESURRECTION_REFORM
|
|
#ifdef _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
DWORD uiDominationTowerMan::GetDominationObject()
|
|
{
|
|
if (domination_object_key_current_index_ < 0 &&
|
|
static_cast<unsigned int>(domination_object_key_current_index_) >= domination_object_key_vector_.size())
|
|
return 0;
|
|
|
|
return domination_object_key_vector_[domination_object_key_current_index_];
|
|
}
|
|
|
|
int uiDominationTowerMan::find_domination_object_index_( const DWORD& object_key )
|
|
{
|
|
if (object_key == 0 ||
|
|
domination_object_key_vector_.empty())
|
|
return -1;
|
|
int find_index = 0;
|
|
std::vector<DWORD>::iterator iter = domination_object_key_vector_.begin();
|
|
for ( ; iter != domination_object_key_vector_.end(); ++iter)
|
|
{
|
|
if ((*iter) == object_key)
|
|
{
|
|
return find_index;
|
|
}
|
|
++find_index;
|
|
}
|
|
// ¿©±â±îÁö ¿Ô´Ù´Â °ÍÀº À妽º°¡ ¾ø´Ù´Â ¶æÀÌ´Ù.
|
|
return -1;
|
|
}
|
|
|
|
void uiDominationTowerMan::set_domination_object_show( const BOOL& is_show )
|
|
{
|
|
std::vector<DWORD>::iterator iter = domination_object_key_vector_.begin();
|
|
for ( ; iter != domination_object_key_vector_.end(); ++iter)
|
|
{
|
|
Object* object_ptr = g_ObjectManager.GetObject((*iter));
|
|
if (object_ptr)
|
|
{
|
|
object_ptr->SetShow(is_show);
|
|
}
|
|
}
|
|
}
|
|
|
|
void uiDominationTowerMan::domination_object_key_relation_clear()
|
|
{
|
|
// º¤ÅÍ¿Í ÇöÀç À妽º ÃʱâÈ
|
|
domination_object_key_vector_.clear();
|
|
domination_object_key_current_index_ = -1;
|
|
}
|
|
|
|
void uiDominationTowerMan::set_mondschien_guild_name( TCHAR* mondschien_guild_name )
|
|
{
|
|
ZeroMemory(mondschien_guild_name_, MAX_GUILDNAME_LENGTH+1);
|
|
if (NULL == mondschien_guild_name)
|
|
{
|
|
_tcscpy(mondschien_guild_name_, "");
|
|
}
|
|
else
|
|
{
|
|
_tcsncpy(mondschien_guild_name_, mondschien_guild_name, lstrlen(mondschien_guild_name));
|
|
}
|
|
}
|
|
|
|
TCHAR* uiDominationTowerMan::get_mondschien_guild_name()
|
|
{
|
|
return mondschien_guild_name_;
|
|
}
|
|
|
|
void uiDominationTowerMan::ShowDominationAreaOwnerDialog( const BOOL& is_show )
|
|
{
|
|
if (is_show == TRUE && _tcscmp(mondschien_guild_name_, "") != 0)
|
|
{
|
|
if (ui_domination_owner_tutorial_dialog_)
|
|
{
|
|
ui_domination_owner_tutorial_dialog_->OnShowWindow(is_show);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ui_domination_owner_tutorial_dialog_->OnShowWindow(is_show);
|
|
}
|
|
}
|
|
|
|
#ifdef _NA_007256_20140613_AREAOWNER_ALLIENCE_GUILD_NAME_SHOW
|
|
void uiDominationTowerMan::set_domination_area_owner_guild_name_tutorial( TCHAR* area_owner_guild_name, const sDOMINATION_CONTINENT_LORD_ALLIENCE_INFO* allience_guild_infos, const BYTE& allience_guild_count )
|
|
{
|
|
if (area_owner_guild_name == NULL)
|
|
return;
|
|
if (_tcscmp(area_owner_guild_name, "") == 0)
|
|
return;
|
|
|
|
ui_domination_owner_tutorial_dialog_->SetAreaOwnerGuildName(area_owner_guild_name, allience_guild_infos, allience_guild_count);
|
|
set_is_character_enter_(TRUE);
|
|
}
|
|
#else
|
|
void uiDominationTowerMan::set_domination_area_owner_guild_name_tutorial( TCHAR* area_owner_guild_name )
|
|
{
|
|
if (area_owner_guild_name == NULL)
|
|
return;
|
|
if (_tcscmp(area_owner_guild_name, "") == 0)
|
|
return;
|
|
|
|
ui_domination_owner_tutorial_dialog_->SetAreaOwnerGuildName(area_owner_guild_name);
|
|
set_is_character_enter_(TRUE);
|
|
}
|
|
#endif // _NA_007256_20140613_AREAOWNER_ALLIENCE_GUILD_NAME_SHOW
|
|
#endif // _NA_007115_20140313_MONDSCHIEN_RENEWAL
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|