//------------------------------------------------------------------------------ // uiPartyMan_net.cpp // (C) 2005 ckbang //------------------------------------------------------------------------------ #include "SunClientPrecompiledHeader.h" #include "uiPartyMan.h" #include "ResultCode.h" using namespace RC; #include "BattleScene.h" #include "Hero.h" #include "interfacemanager.h" #include "globalfunc.h" #include "uiSystemMan/uiSystemMan.h" #include "ObjectManager.h" #include "uiMissionRankMan/uiMissionRankMan.h" #include "GameFramework.h" #include "ItemShareSystem.h" #include "Itemmanager.h" #ifdef _NA_003033_20110831_DICECAST_ITEM_ROUTING #include "DiceCastManager.h" #include "Item.h" #include "ItemInfoParser.h" #endif //_NA_003033_20110831_DICECAST_ITEM_ROUTING #ifdef _DH_BATTLEZONE2_ #include "uiBattlezone2Man/uiBattlezone2Man.h" #include "uiBattlezone2Lobby/uiBattlezone2Lobby.h" #endif//_DH_BATTLEZONE2_ #pragma warning ( push ) #pragma warning(disable : 4800) //------------------------------------------------------------------------------ /** */ void uiPartyMan::InitInfo(MSG_CG_PARTY_CREATE_CMD *pMsg) { assert (pMsg); if (!pMsg) { return; } this->ClearParty(); // ¾ÆÀÌÅۺйè Á¤º¸ ó¸® ÇÊ¿ä m_pUIItemShareSystem->SetToggleName(pMsg->m_DistributionType); for (int i=0; i < pMsg->m_MemberTotalInfo.m_Count; ++i) { uicPartyMemberInfoPlus memInfoPlus; memInfoPlus = pMsg->m_MemberTotalInfo.m_Slot[i]; #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS // ºñÁ¤»óÁ¾·á + ÀÚ½ÅÀÇ ¾ÆÀ̵ð¸é Ãß°¡¾ÈÇÔ // (ºñÁ¤»óÁ¾·á ÀÛ¾÷Çϸ鼭 ¸É¹ö¿¡ ºñÁ¤»óÁ¾·áµÈ ÀڽŠÁ¤º¸¸¦ ¹ÞÀ»¼ö°¡ ÀÖ´Ù) if (g_pHero && (StrnCmp(g_pHero->GetName(), memInfoPlus.Get().m_szCharName, MAX_CHARNAME_LENGTH) == 0)) { if (memInfoPlus.IsConnected() == false) { continue; } } #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS Insert_MemberInfo(memInfoPlus); #ifdef _DH_BATTLEZONE2_ uiBattlezone2Lobby* battlezone2_lobby = GET_CAST_DIALOG(uiBattlezone2Lobby, IM_BATTLEZONE2_MANAGER::BATTLEZONE2_LOBBY); if (battlezone2_lobby) { const _PARTY_MEMBER_INFO& member_info = memInfoPlus.Get(); battlezone2_lobby->SetTeam(member_info.m_dwMemberKey, memInfoPlus.GetTeam()); } #endif//_DH_BATTLEZONE2_ } m_PartyKey = pMsg->m_PartyKey; m_MasterKey = pMsg->m_MasterKey; if (Comp_HeroKey(m_MasterKey)) { m_bImTheLeader = true; } else { m_bImTheLeader = false; } this->uiPartySort(eUIPARTY_SORT_LEVEL_HIGH_TO_LOW); this->uiShowAll(); } //------------------------------------------------------------------------------ /** */ void uiPartyMan::RefreshPartyHideInfo(BOOL bClear) { //ÆÄƼ°¡ Á¸ÀçÇßÀ»°æ¿ì for (int i=0; iGetPartyNum(); ++i) { ChangePartyHideInfo(m_vParty[i].Get().m_dwMemberKey,bClear); } } //------------------------------------------------------------------------------ /** */ void uiPartyMan::ChangePartyHideInfo(DWORD dwObjKey,BOOL bClear) { Object *pObj = g_ObjectManager.GetObject(dwObjKey); if(pObj && pObj->IsKindOfObject(PLAYER_OBJECT)) { Player *pPlayer = static_cast(pObj); pPlayer->RefreshHideState(bClear); } } //------------------------------------------------------------------------------ /** */ void uiPartyMan::AddInfo(MSG_CG_PARTY_JOIN_BRD* pMsg) { assert (pMsg); if (!pMsg) return; uicPartyMemberInfoPlus memInfoPlus; memInfoPlus = pMsg->m_NewMemberInfo; Insert_MemberInfo(memInfoPlus); this->uiPartySort(); this->uiShowAll(); #ifdef _DH_BATTLEZONE2_ uiBattlezone2Lobby* battlezone2_lobby = GET_CAST_DIALOG(uiBattlezone2Lobby, IM_BATTLEZONE2_MANAGER::BATTLEZONE2_LOBBY); if (battlezone2_lobby) { const _PARTY_MEMBER_INFO& member_info = memInfoPlus.Get(); battlezone2_lobby->SetTeam(member_info.m_dwMemberKey, memInfoPlus.GetTeam()); } #endif//_DH_BATTLEZONE2_ } //------------------------------------------------------------------------------ /** */ void uiPartyMan::Migration(DWORD dwObjKey) { #ifdef _DH_BATTLEZONE2_ //ÆÄƼÀå º¯°æ ½Ã Àü ÆÄƼÀå- ·¹µð ÇØÁ¦, »õ·Î¿î ÆÄƼÀå - ·¹µð ÇØÁ¦ uiBattlezone2Man* battlezone2_manager = GET_DIALOG_MANAGER(uiBattlezone2Man, UIMAN_BATTLE_ZONE_MANAGER); if (battlezone2_manager && battlezone2_manager->battlezone_room_state() != uiBattlezone2Man::ROOM_STATE_LIST) { SetBattleZoneReady(m_MasterKey, false); SetBattleZoneReady(dwObjKey, false); uiBattlezone2Lobby* battlezone2_lobby = GET_CAST_DIALOG(uiBattlezone2Lobby, IM_BATTLEZONE2_MANAGER::BATTLEZONE2_LOBBY); if (battlezone2_lobby) { battlezone2_lobby->ChangeMaster(dwObjKey); } } #endif //_DH_BATTLEZONE2_ this->m_bImTheLeader = Comp_HeroKey(dwObjKey); m_MasterKey = dwObjKey; TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,}; g_InterfaceManager.GetInterfaceString(eST_PARTY_MIGRATION, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } //------------------------------------------------------------------------------ /** */ void uiPartyMan::DestroyParty() { RefreshPartyHideInfo(TRUE); this->ClearParty(); m_PartyKey = NULL; m_MasterKey = NULL; if ((GameFramework::GetCurrentScene()->GetType() == SCENE_TYPE_CHUNTING) || (GameFramework::GetCurrentScene()->GetType() == SCENE_TYPE_MISSION) || (GameFramework::GetCurrentScene()->GetType() == SCENE_TYPE_PVP) || (GameFramework::GetCurrentScene()->GetType() == SCENE_TYPE_INSTANCE_DUNGEON)) { BattleScene::BackToTheVillageSyn(); } m_dequePartyReturn.clear(); m_pPartyNaviInfo->Clear(); ItemManager::Instance()->ClearOwnerList(); ItemManager::Instance()->UpdateMyItem(); } //------------------------------------------------------------------------------ /** */ void uiPartyMan::Insert_MemberInfo(uicPartyMemberInfoPlus memInfo) { DeleteUnExpectedPartyMember((TCHAR *)memInfo.Get().m_szCharName); assert (this->m_vParty.size() < MAX_PARTYMEMBER_NUM); if (this->m_vParty.size() < MAX_PARTYMEMBER_NUM) { PutMsg_PlayerEntered(memInfo); DWORD compKey = memInfo.Get().m_dwMemberKey; if (Comp_HeroKey(compKey)) { std::deque dqMemInfos; size_t i; for (i=0; im_vParty.size(); ++i) { dqMemInfos.push_back(this->m_vParty[i]); } dqMemInfos.push_front(memInfo); this->ClearParty(); for (i=0; im_vParty.push_back(dqMemInfos[i]); } } else { this->m_vParty.push_back(memInfo); } } } //------------------------------------------------------------------------------------------- /** */ void uiPartyMan::Remove_MemberInfo(DWORD dwObjKey, BYTE byReason) { NoticeReasonLeaveParty(dwObjKey, byReason); for (int i=0; iGetPartyNum(); ++i) { if (this->m_vParty[i].CompKeySimple(dwObjKey)) { // Áö¿ì´Â ¸â¹ö°¡ ³ª¶ó¸é if (Comp_HeroKey(dwObjKey)) { this->DestroyParty(); return; } bool bZoneTypeAccept = ( #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS #else GameFramework::GetCurrentScene()->GetType() != SCENE_TYPE_FIELD && GameFramework::GetCurrentScene()->GetType() != SCENE_TYPE_VILLAGE && #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS GameFramework::GetCurrentScene()->GetType() != SCENE_TYPE_PVP && GameFramework::GetCurrentScene()->GetType() != SCENE_TYPE_DOMINATION ); if ((byReason == eREASON_LEAVE_PARTY_ABNORMAL) && bZoneTypeAccept) // ºñÁ¤»ó Á¾·áÀÚ´Â µû·Î ¸ð¾Æ¼­ °ü¸®ÇÑ´Ù. { #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS //¾ÆÁ÷ ¿ÀºêÁ§Æ® Ű °ªÀÌ À¯È¿ÇϹǷΠ¿©±â¼­ ·¹µð¸¦ ²¨ÁÖÀÚ. uiBattlezone2Man* battlezone2_manager = GET_DIALOG_MANAGER(uiBattlezone2Man, UIMAN_BATTLE_ZONE_MANAGER); if (battlezone2_manager) { battlezone2_manager->SetReadyUserSlot(dwObjKey, false); } m_vParty[i].SetIsConnected(false); #else m_vParty[i].SetUnexpectedTerminate(true); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS } else { #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS m_vParty[i].SetIsConnected(true); #else m_vParty[i].SetUnexpectedTerminate(false); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS this->m_vParty.erase(this->m_vParty.begin() + i); } if (this->m_vParty.empty()) { break; } m_pPartyNaviInfo->RemoveNaviInfo(dwObjKey); } } this->uiPartySort(); this->uiShowAll(); ItemManager::Instance()->ClearOwnerList(); ItemManager::Instance()->UpdateMyItem(); } //------------------------------------------------------------------------------ /** */ void uiPartyMan::Reason(BYTE byErrorCode) { TCHAR szMessage[INTERFACE_STRING_LENGTH]; switch (byErrorCode) { default: g_InterfaceManager.GetInterfaceString(eST_UNKNOWN_PARTY_ERROR_CODE,szMessage,INTERFACE_STRING_LENGTH); break; case RC_PARTY_NEXTMASTER_NOTEXIST: { //< 5200 ÆÄƼ¿ø¿¡°Ô¸¸ ÆÄƼÀåÀ» À§ÀÓÇÒ¼öÀÖ½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(5200,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_COOLTIME_ERROR: { //ÆÄƼÀå,ÆÄƼ¿ø ¼Òȯ ½ÇÆÐ //< ÄðŸÀÓÀÌ ³¡³­ ´ÙÀ½ »ç¿ëÇϼ¼¿ä g_InterfaceManager.GetInterfaceString(eST_SKILL_FAIL_COOLTIME_NOT_EXPIRED,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_PLAYER_NOTEXIST: { //< ±×·± Ç÷¹À̾ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_PLAYER_NOTEXIST,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_ISNOT_MASTEROFPARTY: { //< ÆÄƼÀåÀÌ ¾Æ´Ï´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_ISNOT_MASTEROFPARTY,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_ISNOT_MEMBEROFPARTY: { //< ÆÄƼ¿øÀÌ ¾Æ´Ï´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_ISNOT_MEMBEROFPARTY,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_PARTY_NOTEXIST: { //< ÆÄƼ°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_PARTY_NOTEXIST,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_REJECT_INVITEMENT: { //< »ó´ë¹æÀÌ ÆÄƼÃÊ´ë ¿äûÀ» °ÅÀýÇÏ´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_REJECT_INVITEMENT,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_ISNOT_QUALIFIED_LEVEL: { //< ·¹º§Á¶°ÇÀÌ ¸ÂÁö ¾Ê´Â´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_ISNOT_QUALIFIED_LEVEL,szMessage,INTERFACE_STRING_LENGTH); #ifdef _DH_BATTLEZONE2_ GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); #endif//_DH_BATTLEZONE2_ } break; case RC_PARTY_INVALID_ROOMTYPE: { //< À߸øµÈ ¹æ »óÅÂÀÌ´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_INVALID_ROOMTYPE,szMessage,INTERFACE_STRING_LENGTH); #ifdef _DH_BATTLEZONE2_ GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); #endif//_DH_BATTLEZONE2_ } break; case RC_PARTY_CANNOT_CHANGE_MASTER: { //< ÆÄƼÀåÀ» º¯°æÇÒ ¼ö ¾ø´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_CANNOT_CHANGE_MASTER,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_ALREADY_IS_MEMBEROFPARTY: { //< ÀÌ¹Ì ÆÄƼ¿¡ ¼Ò¼ÓµÇ¾î ÀÖ´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_ALREADY_IS_MEMBEROFPARTY,szMessage,INTERFACE_STRING_LENGTH); #ifdef _DH_BATTLEZONE2_ GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); #endif//_DH_BATTLEZONE2_ } break; case RC_PARTY_WASNOT_REQUEST_PARTY: { //< »ó´ë¹æÀÌ ÆÄƼ¸¦ ¿äûÇÏÁö ¾Ê¾Ò´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_WASNOT_REQUEST_PARTY,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_INVALID_DATATYPE: { //< µ¥ÀÌŸ ŸÀÔÀÌ ¸ÂÁö ¾Ê´Â´Ù.( À¯È¿ÇÏÁö ¾ÊÀº °ªÀÌ´Ù. ) g_InterfaceManager.GetInterfaceString(eST_PARTY_INVALID_DATATYPE,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_PLAYER_NOTEXIST_TO_FIELD: { //< Ç÷¹À̾ Çʵ忡 Á¸ÀçÇÏÁö ¾Ê´Â´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_PLAYER_NOTEXIST_TO_FIELD,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_CANNOT_FIND_TARGET: { //< Ÿ°ÙÀ» ãÀ» ¼ö ¾ø´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_CANNOT_FIND_TARGET,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_TARGET_ISNOT_ENEMY: { //< Ÿ°ÙÀÌ ¾Æ±ºÀÌ´Ù. g_InterfaceManager.GetInterfaceString(eST_PARTY_TARGET_ISNOT_ENEMY,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_PLAYER_OBSERVER_MODE: { //< Ç÷¹À̾ Åõ¸í¸ðµå¶ó¼­ ÆÄƼ¿¡ ¼Ò¼ÓµÇÁö ¾Ê´Â´Ù. g_InterfaceManager.GetInterfaceString(PARTY_PLAYER_OBSERVER_MODE,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_PARTYMEMBER_NUM_FULL: { //< ÆÄƼ¿ø ¼ö°¡ ÃÖ´ëÄ¡¶ó¼­ ´õÀÌ»ó ÆÄƼ¿øÀ» ¹ÞÀ» ¼ö ¾ø´Ù. g_InterfaceManager.GetInterfaceString(5330,szMessage,INTERFACE_STRING_LENGTH); } break; case RC_PARTY_CHANGE_ITEM_DISTRIBUTION_FAIL: { // ¾ÆÀÌÅÛ ºÐ¹è ŸÀÔ º¯°æ¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù 5233 Snprintf(szMessage, INTERFACE_STRING_LENGTH -1 , g_InterfaceManager.GetInterfaceString( 5233 ) ); } break; case RC_PARTY_CANNOT_INVITE_HOSTILITY: { //7231 Àû´ë °ü°èÀÎ ±æµåÀÇ ±æµå¿ø°ú´Â ÆÄƼ¸¦ ¸ÎÀ» ¼ö ¾ø½À´Ï´Ù. Snprintf(szMessage, INTERFACE_STRING_LENGTH -1, g_InterfaceManager.GetInterfaceString( 7231 ) ); } break; case RC_PARTY_CANNOT_INVITE_NEW_MEMBER: { //5389 »õ·Î¿î ÆÄƼ¿øÀ» ¹ÞÀ»¼ö¾ø½À´Ï´Ù. Snprintf(szMessage, INTERFACE_STRING_LENGTH -1, g_InterfaceManager.GetInterfaceString(5389)); } break; case RC_PARTY_BEING_INVITE_REQUEST: { //65018 ÆÄƼ ÃÊ´ë ¿äû ÁßÀÌ´Ù. Snprintf(szMessage, INTERFACE_STRING_LENGTH -1, g_InterfaceManager.GetInterfaceString(65018)); } break; case RC_PARTY_BEING_INVITE_RESPONSE: { //65019 ÆÄƼ ÃÊ´ë ¹Þ´Â ÁßÀÌ´Ù. Snprintf(szMessage, INTERFACE_STRING_LENGTH -1, g_InterfaceManager.GetInterfaceString(65019)); } break; case RC_PARTY_INVITE_RESPONSE_TIME_OVER: { //65020 ÆÄƼ ÃÊ´ë ÀÀ´ä½Ã°£ 8Ãʰ¡ Áö³ª Ãë¼ÒµÇ¾ú½À´Ï´Ù. Snprintf(szMessage, INTERFACE_STRING_LENGTH -1, g_InterfaceManager.GetInterfaceString(65020)); } break; case RC_PARTY_PORTAL_ENTERANCE_MEMBER: { //_NA003129_QUEST_PORTAL_CONVENIENCE_EXTENTION // 70550 »ó´ë¹æÀÌ ÇöÀç ÆÄÆ¼»óÅ·Π¹Ì¼ÇÆ÷Å»¿¡ ÀÔÀå ´ë±âÁßÀÎ ´ë»óÀÔ´Ï´Ù.\nÆÄƼ¿¡ ÃÊ´ëÇÒ ¼ö ¾ø½À´Ï´Ù. Snprintf(szMessage, INTERFACE_STRING_LENGTH -1, g_InterfaceManager.GetInterfaceString(70550)); } break; #ifdef _DH_BATTLEZONE2_ case RC_PARTY_FAIL_CREATE_PARTY_ROOM: { //2440 ¹æ»ý¼º¿¡ ½ÇÆÐ ÇÏ¿´½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(2440, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_KICKOUT_PARTY_ROOM: { //2441 °­Á¦·Î ÆÄƼ·ë¿¡¼­ ű g_InterfaceManager.GetInterfaceString(2441, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOT_OPEN_TIME: { //2442 ÇØ´ç ·ëÀ» ¿­¼ö ÀÖ´Â ½Ã°£ÀÌ ¾Æ´Ï´Ù. g_InterfaceManager.GetInterfaceString(2442, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOTEQUAL_PASSWORD: { //2494 ºñ¹Ð ¹øÈ£¸¦ À߸ø ÀÔ·ÂÇÏ¿´½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(2494, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOT_MATCHING_USER_LEVEL: { //2493 ·¹º§ Á¶°Ç¿¡ ¸ÂÁö ¾Ê´Â´Ù. g_InterfaceManager.GetInterfaceString(2493, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_HAVE_NOT_REQUIRE_ITEM: { //2487 ¹æ »ý¼º¿¡ ÇÊ¿äÇÑ ¾ÆÀÌÅÛÀÌ ¾ø½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(2487, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOT_ALLMEMBER_READY: { // ¸ðµç ¸â¹ö°¡ ÁغñµÇÁö ¾Ê¾Ò´Ù. g_InterfaceManager.GetInterfaceString(2440, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_PREVIOUS_QUEST_CLEAR: { // 2496 ¿¬°áµÈ Äù½ºÆ® ¸ÕÀú Ŭ¸®¾î ÇØ¾ß ÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString(2496, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NEED_CLEAR_PRE_MISSION: { // 2497 ÀÌÀü ¹Ì¼ÇÀ» Ŭ¸®¾î ÇØ¾ßÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString(2497, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_FAIL_MAX_MEMBER_COUNT: { // 2477 ÀÔÀå ÀοøÀÌ Ãʰú µÇ¾ú½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(2477, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_FAIL_DESTROY_PARTY_ROOM: { // 70653 ÆÄƼ·ë Á¦°Å¿¡ ½ÇÆÐÇß½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70653, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_FAIL_DESTROY_PARTY_LIST: { // 70654 ÆÄƼ·ë ¸®½ºÆ® Á¦°Å¿¡ ½ÇÆÐÇß½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70654, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_FAIL_LEAVE_PARTY_ROOM: { // 70655 ÆÄƼ ³ª°¡±â¿¡ ½ÇÆÐÇß½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70655, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_FAIL_JOIN_PARTY_ROOM: { // 70656 ÆÄƼ·ë Âü¿©¿¡ ½ÇÆÐÇß½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70656, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_FAIL_START_MISSION: { // 70657 ÆÄƼ·ë ¹Ì¼Ç ½ÃÀÛÀ» ½ÇÆÐÇß½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70657, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_FAIL_RESET_MISSION_CODE: { // 70658 ¹Ì¼Ç ÄÚµå ÃʱâÈ­¿¡ ½ÇÆÐÇß½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70658, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_FAIL_CHANGE_ROOM_OPTION: { // 70659 ÆÄƼ·ë ¿É¼Ç º¯°æ¿¡ ½ÇÆÐÇß½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70659, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_FAIL_CREATE_ROOM: { // 70660 ÆÄƼ·ë »ý¼º¿¡ ½ÇÆÐÇß½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70660, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOT_EXIST_PARTY: { // 70661 ÆÄƼ°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70661, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOT_INCORRECT_MAPCODE: { // 70662 À߸øµÈ ¹Ì¼Ç ÄÚµå ÀÔ´Ï´Ù. g_InterfaceManager.GetInterfaceString(70662, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOT_FOUND_PARTYROOM: { // 70663 ÆÄƼ·ë Á¤º¸°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70663, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_IS_NOT_PARTY_ROOM: { // 70664 ·ë Çü½ÄÀÇ ÆÄƼ°¡ ¾Æ´Õ´Ï´Ù. g_InterfaceManager.GetInterfaceString(70664, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_INVALID_PARTY_ROOM_MAPCODE: { // 70665 À߸øµÈ ÆÄƼ·ëÀÇ ¸ÊÁ¤º¸ ÀÔ´Ï´Ù. g_InterfaceManager.GetInterfaceString(70665, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOT_MISSION_REWARD: { // 70666 ¹Ì¼Ç º¸»óÀ» ¹Þ¾Æ¾ß ÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString(70666, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_INVALID_ITEM: { // 70667 ¾ÆÀÌÅÛ »ç¿ë Á¶°ÇÀÌ ¸ÂÁö ¾Ê½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70667, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOT_EXIST_ITEM: { // 70668 ÇÊ¿äÇÑ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖÁö ¾Ê½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70668, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_ROOM_NEED_UNEQUIP_WEAPON: { // 70669 ÆÄƼ·ë¿¡ ÀÔÀåÇÒ ¶§ Àåºñ Á¤º¸°¡ À߸øµÇ¾î ÀÖ½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70669, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_CANNOT_JOIN_SOMEONE_MEMBER: { // 70670 ÆÄƼ·ë¿¡ ÀÔÀåÇÏÁö ¸øÇÏ´Â ¸â¹ö°¡ Á¸ÀçÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString(70670, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOT_FOUND_USER: { // 70671 À¯Àú¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70671, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOT_CAHNGE_OPTION_PLAYING: { // 70672 ¹Ì¼Ç Ç÷¹ÀÌ Áß¿¡´Â º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70672, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_FAIL_CHECK_TERMS: { // 70673 Á¶°Ç °Ë»ç¿¡¼­ ½ÇÆÐÇß½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70673, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_INVALID_PARTY_STATE: { // 70674 ÆÄƼÀÇ »óŰ¡ Á¤»óÀÌ ¾Æ´Õ´Ï´Ù. g_InterfaceManager.GetInterfaceString(70674, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; case RC_PARTY_NOT_FOUND_ROOM: { // 70675 ÆÄƼ·ëÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70675, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; #endif//_DH_BATTLEZONE2_ case RC_PARTY_ALREADY_USE_IN_CHAOS_ZONE: { // 2745 ÀüÀå ¿¹¾àÁß¿£ ÆÄƼ¸¦ »ý¼º ÇÒ ¼ö ¾ø½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(2745, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CENTER_SHOW, szMessage); } break; } GlobalFunc::OutputMsg_Warning(eOUTPUT_MSG_CHAT, szMessage); } void _Confirm_ReponseJoinParty(bool bYes) { uiPartyMan * pMan = (uiPartyMan * ) g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY); assert(pMan); if (bYes) { pMan->SetOpenPartyJoinWindow(FALSE); MSG_CG_PARTY_JOIN_RESPONSE_ACK sync; GlobalFunc::SendPacketToGameServer(&sync, sizeof (sync)); } else { pMan->SetOpenPartyJoinWindow(FALSE); MSG_CG_PARTY_JOIN_RESPONSE_NAK sync; GlobalFunc::SendPacketToGameServer(&sync, sizeof (sync)); } if(g_pHero) g_pHero->SetBeHaveState(PLAYER_BEHAVE_IDLE_STATE); } void uiPartyMan::ResponseJoinParty(char *pszMasterName) { // ÀÌ¹Ì ÆÄƼâÀÌ ¿­·Á ÀÖÀ¸¸é ¸®ÅÏ if( m_bIsOpenPartyJoinWinodw ) return; m_bIsOpenPartyJoinWinodw = TRUE; TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,}; TCHAR szResult[INTERFACE_STRING_LENGTH] = {0,}; const int c_iAskJoinParty = 100; g_InterfaceManager.GetInterfaceString(eST_PARTY_INVITED_ALLOW,szMessage,INTERFACE_STRING_LENGTH); Snprintf (szResult,INTERFACE_STRING_LENGTH-1, szMessage, pszMasterName); uiSystemMan * pSystemMan = (uiSystemMan *)g_InterfaceManager.GetUserInterfaceManager(UIMAN_SYSTEM); if(pSystemMan) pSystemMan->Sys_Confirm(szResult, _Confirm_ReponseJoinParty); if(g_pHero) g_pHero->SetBeHaveState(PLAYER_BEHAVE_PARTY_THINKING_JOIN); } //------------------------------------------------------------------------------ /** */ void uiPartyMan::ChangeLevel(DWORD dwObjKey, WORD wLevel) { for (int i=0; iGetPartyNum(); ++i) { if (this->m_vParty[i].CompKeySimple(dwObjKey)) { this->m_vParty[i].SetLevel(wLevel); } } } //------------------------------------------------------------------------------ /** */ void uiPartyMan::ChangeHP(DWORD dwObjKey, BYTE byHpRatio) { for (int i=0; iGetPartyNum(); ++i) { if (this->m_vParty[i].CompKeySimple(dwObjKey)) { this->m_vParty[i].SetHpRatio(byHpRatio); } } } //------------------------------------------------------------------------------ /** */ void uiPartyMan::ChangeChaoState(DWORD dwObjKey, BYTE byChaoState) { for (int i=0; iGetPartyNum(); ++i) { if (this->m_vParty[i].CompKeySimple(dwObjKey)) { this->m_vParty[i].SetChaoState(byChaoState); } } } //------------------------------------------------------------------------------ /** */ void uiPartyMan::NET_RECV_MSG_CG_PARTY_NAVI_INFO_BRD(MSG_CG_PARTY_NAVI_INFO_BRD* pMsg_NaviInfo) { if (m_pPartyNaviInfo) { m_pPartyNaviInfo->Recv_NaviInfo(pMsg_NaviInfo); } } //------------------------------------------------------------------------------ /** */ void uiPartyMan::ChangeMP(DWORD dwObjKey, BYTE byMpRatio) { for (int i=0; iGetPartyNum(); ++i) { if (this->m_vParty[i].CompKeySimple(dwObjKey)) { this->m_vParty[i].SetMpRatio(byMpRatio); } } } //------------------------------------------------------------------------------ /** */ #ifdef _NA_006638_20120415_ADD_SHIELD_INFO_IN_TARGET_INFO void uiPartyMan::ChangeSD(DWORD object_key, BYTE sd_ratio) { for (int i=0; iGetPartyNum(); ++i) { if (this->m_vParty[i].CompKeySimple(object_key)) { this->m_vParty[i].SetSDRatio(sd_ratio); } } } #endif //_NA_006638_20120415_ADD_SHIELD_INFO_IN_TARGET_INFO //------------------------------------------------------------------------------ /** */ void uiPartyMan::DeadPartyMembaer(DWORD dwObjKey) { for (int i=0; iGetPartyNum(); ++i) { if (this->m_vParty[i].CompKeySimple(dwObjKey)) { this->m_vParty[i].SetDead(true); } } } //------------------------------------------------------------------------------ /** */ void uiPartyMan::ResurrectionPartyMember(DWORD dwObjKey) { for (int i=0; iGetPartyNum(); ++i) { if (this->m_vParty[i].CompKeySimple(dwObjKey)) { this->m_vParty[i].SetDead(false); } } } //------------------------------------------------------------------------------------------- /** */ void uiPartyMan::NoticeReasonLeaveParty(DWORD dwObjKey, BYTE byReason) { Object * pObject = g_ObjectManager.GetObject(dwObjKey); if (pObject) { eREASON_LEAVE_PARTY eReason = (eREASON_LEAVE_PARTY)byReason; TCHAR szMessage[INTERFACE_STRING_LENGTH]; switch ( eReason ) { case eREASON_LEAVE_PARTY_INTEND: { if(g_pHero->GetObjectKey() == dwObjKey) { // 5244 ÆÄƼ¸¦ Å»ÅðÇϼ̽À´Ï´Ù. GetUIMan()->GetInterfaceString(5244, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } else { // 5620 [%s]´ÔÀÌ ÀǵµÀûÀ¸·Î ¹æÀ» ³ª°¡¼Ì½À´Ï´Ù. GetUIMan()->GetInterfaceString(5620, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage, pObject->GetName() ); } } break; case eREASON_LEAVE_PARTY_BAN: { if(g_pHero->GetObjectKey() == dwObjKey) { // 5245 ÆÄƼ¿¡¼­ °­Á¦ Å»ÅðµÇ¾ú½À´Ï´Ù. GetUIMan()->GetInterfaceString(5245, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } else { // 5618 [%s]´ÔÀÌ °­Åð ´çÇϼ̽À´Ï´Ù. GetUIMan()->GetInterfaceString(5618, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage, pObject->GetName() ); } } break; case eREASON_LEAVE_PARTY_ABNORMAL: { if(g_pHero->GetObjectKey() == dwObjKey) { // 5246 ÆÄƼ¿¡¼­ ºñÁ¤»óÀûÀ¸·Î ³ª°¡¼Ì½À´Ï´Ù. GetUIMan()->GetInterfaceString(5246, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } else { // 5619 [%s]´ÔÀÌ ºñÁ¤»óÀûÀ¸·Î ¹æÀ» ³ª°¡¼Ì½À´Ï´Ù. GetUIMan()->GetInterfaceString(5619, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage, pObject->GetName() ); } } break; case eREASON_LEAVE_PARTY_BY_GUILDRELATION: { if(g_pHero->GetObjectKey() == dwObjKey) { // 5247 ÆÄƼ¿ø°úÀÇ Àû´ë °ü°è Çü¼ºÀ¸·Î °­Á¦ Å»ÅðµÇ¾ú½À´Ï´Ù. GetUIMan()->GetInterfaceString(5247, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } else { //5243 [%s]´ÔÀÌ ÆÄƼ¿ø°ú Àû´ë°ü°è¸¦ ¸Î¾î °­Åð ´çÇϼ̽À´Ï´Ù. GetUIMan()->GetInterfaceString(5243, szMessage, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage, pObject->GetName() ); } } break; case eREASON_LEAVE_PARTY_NOREASON: default: break; } } } //------------------------------------------------------------------------------------------- /** */ #ifdef _NA_003033_20110831_DICECAST_ITEM_ROUTING void uiPartyMan::NET_RECV_MSG_CG_PARTY_DICECAST_RESULT_CMD(MSG_CG_PARTY_DICECAST_RESULT_CMD* dicecast_result) { DiceCastManager* dice_manager = g_InterfaceManager.GetDiceCastManager(); if (dice_manager == NULL) { return; } //°á°ú °ª ³»¸²Â÷¼ø Á¤·Ä for (int i=0; iresult[j].random_num < dicecast_result->result[j+1].random_num) { _DICECAST_RESULT temp_result; temp_result.member_key = dicecast_result->result[j].member_key; temp_result.random_num = dicecast_result->result[j].random_num; dicecast_result->result[j].member_key = dicecast_result->result[j+1].member_key; dicecast_result->result[j].random_num = dicecast_result->result[j+1].random_num; dicecast_result->result[j+1].member_key = temp_result.member_key; dicecast_result->result[j+1].random_num = temp_result.random_num; } } } // ÇØ´ç ¾ÆÀÌÅÛ ¿À³ÊŰ º¯°æ + ÁÖ»çÀ§ ¼Ó¼º Á¦°Å Object* object_ptr = g_ObjectManager.GetObject(dicecast_result->item_object_key); if (object_ptr) { Item* item_ptr = static_cast(object_ptr); if (item_ptr) { item_ptr->set_is_dice_item(false); item_ptr->SetOwner(dicecast_result->winner_key); } } dice_manager->set_high_number_player_key(dicecast_result->result[0].member_key); // ¼¾ÅÍ ¸Þ¼¼Áö ¼³Á¤ TCHAR player_name[INTERFACE_STRING_LENGTH] = {0,}; uicPartyMemberInfoPlus* member_info = GetPartyMemberInfo(dicecast_result->result[0].member_key); if (member_info != NULL) { TCHAR value_string[INTERFACE_STRING_LENGTH] = {0,}; Sprintf(value_string, _T("%d"),dicecast_result->result[0].random_num); TCHAR item_name[INTERFACE_STRING_LENGTH] = {0,}; BASE_ITEMINFO* item_info = ItemInfoParser::Instance()->GetItemInfo(dicecast_result->item_code); if (item_info) { g_InterfaceManager.GetItemName(item_info->m_Code, item_name, INTERFACE_STRING_LENGTH); } TCHAR temp_message[INTERFACE_STRING_LENGTH]; // 70576 [%s] ´ÔÀÌ [%s] °ªÀ¸·Î [%s] ¾ÆÀÌÅÛÀ» ȹµæÇÏ¿´½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(70576, temp_message, INTERFACE_STRING_LENGTH); TCHAR center_message[INTERFACE_STRING_LENGTH]; Sprintf(center_message, temp_message, member_info->Get().m_szCharName, value_string, item_name); dice_manager->SetCenterMessage(center_message); } // °á°ú °ª ¼¼ÆÃ dice_manager->SetDiceDrawInfo(dicecast_result->result, MAX_PARTYMEMBER_NUM); g_InterfaceManager.SetDiceAngle(); // ½Ã½ºÅÛâ¿¡ °á°ú °ª Ãâ·Â // 70575 ÁÖ»çÀ§ °á°ú : TCHAR string_message[INTERFACE_STRING_LENGTH] = {0,}; g_InterfaceManager.GetInterfaceString(70575,string_message,INTERFACE_STRING_LENGTH); TCHAR temp_message[INTERFACE_STRING_LENGTH] = {0,}; for (int i=0; iresult[i].random_num > 0) { uicPartyMemberInfoPlus* member_info = GetPartyMemberInfo(dicecast_result->result[i].member_key); if (member_info == NULL) { continue; } Sprintf(temp_message, "%s%s [%d]", ((i != 0) ? ", " : " "), member_info->Get().m_szCharName, dicecast_result->result[i].random_num); StrCat(string_message, temp_message); } } GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, string_message); } #endif //_NA_003033_20110831_DICECAST_ITEM_ROUTING #pragma warning ( pop ) //------------------------------------------------------------------------------ // EOF //------------------------------------------------------------------------------