#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; im_vPKBool.push_back(packetControl); } } //------------------------------------------------------------------------------ /** */ void uiDominationTowerMan::OnRelease() { } //------------------------------------------------------------------------------ /** */ void uiDominationTowerMan::OnInitialize() { m_pMainDialog = CreateUIDialog(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_TOWER_MAIN_DIALOG, "Data\\Interface\\97_22_area.iwz", this); assert(m_pMainDialog); m_DominationArea = CreateUIDialog(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_AREA_DIALOG, "Data\\Interface\\97_21_guild_name.iwz", this, TRUE); assert(m_DominationArea); m_pDominationTimer = CreateUIDialog(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_TIMER_DIALOG, "Data\\Interface\\97_27_mercenary_time.iwz", this); assert(m_pDominationTimer); m_pDominationZoneMark = CreateUIDialog(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_ZONEMARK_DIALOG, "Data\\Interface\\97_29_zone_mark.iwz", this, TRUE); assert(m_pDominationZoneMark); m_pDominationStamp = CreateUIDialog(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_STAMP_DIALOG, "Data\\Interface\\97_28_counter.iwz", this); assert(m_pDominationStamp); m_pDominationBettingList = CreateUIDialog(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(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_BETTING_LIST_DIALOG, "Data\\Interface\\97_23_area_entry.iwz", this, TRUE); assert(m_pBettingList); m_pDominationJoinList1 = CreateUIDialog(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_JOIN_LIST1, "Data\\Interface\\97_33_List.iwz", this, TRUE); assert(m_pDominationJoinList1); m_pDominationJoinList2 = CreateUIDialog(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_JOIN_LIST2, "Data\\Interface\\97_32_List.iwz", this, TRUE); assert(m_pDominationJoinList2); m_pApplyBetting = CreateUIDialog(IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_APPLY_BETTING_DIALOG, "Data\\Interface\\97_24_area_offer.iwz", this); assert(m_pApplyBetting); m_pApplyBetting2 = CreateUIDialog(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(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(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(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(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(g_ObjectManager.GetObject(domination_object_key_vector_[domination_object_key_current_index_])); #else if (m_dwObjectKey) { MapObject* pObject = static_cast(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(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(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 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 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 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(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(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(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 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::iterator itr_point = defence_guild_alliance_container().begin(); STLX_VECTOR::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(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::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::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 //------------------------------------------------------------------------------ /** */