#include "SunClientPrecompiledHeader.h" #ifdef _NA_008016_20150202_OLD_RANKING_SYSTEM #if defined (_NA_006802_20130704_REORGANIZATION_RANK_SYSTEM) #include "uiMissionRankMan2.h" #include "uiMissionRankTimer/uiMissionRankTimer.h" #include "uiMissionRankEnding/uiMissionRankEnding.h" #include "uiMissionRankList2/uiMissionRankList2.h" #include "uiMissionRankGamble/uiMissionRankGamble.h" #include "uiRankMenu/uiRankMenu.h" #include "uiPartyMan/uiPartyMan.h" #include "ItemManager.h" #include "Hero.h" #include "GlobalFunc.h" #include "InterfaceManager.h" #include "ObjectManager.h" #include "Map.h" #include "uiPartyMan/uiPartyMan.h" #include "ArchiveOfStream.h" #include "ResultCode.h" #include "GameFunc.h" #include "MissionManager_Concrete.h" #include "QuestManager_Concrete.h" #include "Application.h" #include "uiBattleZoneMan/uiBattleZoneMan_def.h" #include "ChatMsg.h" #include "uiBattleScoreMan/uiBattleScoreMan.h" #include "SceneBase.h" #ifdef _INTERNATIONAL_DATE_TOOLTIP #include"uiToolTipMan/uiToolTipMan.h" #endif//_INTERNATIONAL_DATE_TOOLTIP const int c_iCheckPoint = 1000; using namespace RC; //================================================================================================== typedef MissionRanking::RANKING_INFO_LIST RANKING_INFO_LIST; typedef MissionRankingRecord::MEMBER_HASH MEMBER_HASH; //================================================================================================== /** */ inline BOOL RewardInfo_Funter::operator ()(stRewardInfo lhs, stRewardInfo rhs) const { return ((lhs.ranking_id) < (rhs.ranking_id)); } uiMissionRankMan2::uiMissionRankMan2(InterfaceManager *pUIMan) : uiBaseMan(pUIMan) { ui_rank_timer_ptr_ = NULL; ui_rank_ending_ptr_ = NULL; ui_rank_list_ptr_ = NULL; ui_rank_gamble_ptr_ = NULL; InitMission(); ClearRankData(); } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::OnInitialize() { _LoadUI(); } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::OnRelease() { vecRqstMission.clear(); ranking_reward_vector_.clear(); reward_info_vector_.clear(); confirmed_member_party_confirmed_list_.clear(); } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::InitMission() { m_dwTotalMonsterKillNum = 0; m_dwMaxMonsterKillNum = 0; m_dwResultMissionClear = 0; //ÃÖÁ¾!!¹Ì¼ÇÁ¾·á½Ã°£ m_dwTotalMonsterDecTimeSecond = 0; //ÃÑ ¸ó½ºÅÍ ´ÜÃà ½Ã°£ m_dwGeneralMonsterDecSecond = 0; //ÀÏ¹Ý ¸ó½ºÅÍ ´ÜÃà ½Ã°£ m_dwLeaderMonsterDecSecond = 0; //¸®´õ ´ÜÃà ½Ã°£ m_dwMissionTime = 0; m_dwStartMissionTime = 0; m_dwUpdateMissionTime = 0; m_dwMissionClearTime = 0; m_bMissionCleared = false; m_dwMissionBestTime = 0; Is_enable_mission_ranking_ = false; m_iMyRank = 0; m_iMyPartyNum = 0; m_strMyPartyMasterName.clear(); Is_wait_receive_packet_ = false; m_bRecvStartTimer = FALSE; Is_can_reward_ = false; confirmed_member_party_confirmed_list_.clear(); } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::init_ranking_list_vector_() { ranking_reward_vector_.clear(); const RankingManager::MISSION_LEVEL_AREA_HASH& area_hash = GET_MISSION_RANK_MANAGER()->GetMissionLevelAreaTable(); RankingManager::MISSION_LEVEL_AREA_HASH::const_iterator iter = area_hash.begin(); stRewardSearchInfo reward_search_info_struct; for ( ; iter != area_hash.end(); ++iter) { RankingManager::LEVEL_AREA_BASE* area_ptr = const_cast(iter->second); if ( area_ptr ) { reward_search_info_struct.ranking_id = area_ptr->m_Id; reward_search_info_struct.mission_number = area_ptr->m_MissionNo; reward_search_info_struct.mission_string = area_ptr->m_MissionString; reward_search_info_struct.ranking_system_type = static_cast(area_ptr->m_RankingType); ranking_reward_vector_.push_back(reward_search_info_struct); } } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::ClearRankData() { m_dwMyRankForReward = 0; current_mission_number_ = 0; current_mission_system_rank_type_ = eRANKING_TYPE_NONE; m_CurRankPage = 0; GET_MISSION_RANK_MANAGER()->Release(); GET_MISSION_RANK_MANAGER()->Initialize(); GET_MISSION_RANK_MANAGER()->SetStatus( eRANKING_STATUS_NORMAL ); ZeroMemory(&mission_party_info_array_, sizeof(mission_party_info_array_)); ZeroMemory(&my_ranking_view_data_, sizeof(my_ranking_view_data_)); ZeroMemory(&pre_week_rank_view_data_, sizeof(pre_week_rank_view_data_)); ZeroMemory(¤t_week_rank_view_data_, sizeof(current_week_rank_view_data_)); ZeroMemory(&member_view_data_, sizeof(member_view_data_)); m_PendingRankingType = eRANKING_MAX; m_PendingMissionNo = MAX_MISSION_NUM; m_PendingRankingKey = -1; m_PendingPage = 0; // ¸â¹ö ¿äû½Ã »ç¿ë m_RqstRankingType = eRANKING_MAX; m_RqstMissionNo = MAX_MISSION_NUM; vecRqstMission.clear(); settle_date_dword_ = 0; finish_day_string_.clear(); Is_can_reward_ = false; Is_reward_list_packet_received_ = false; init_ranking_list_vector_(); Is_wait_receive_packet_ = false; reward_info_vector_.clear(); confirmed_member_party_confirmed_list_.clear(); } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::SetReceivedStartMissionTime(DWORD dwRecievedTime, DWORD dwMissionTime) { m_dwStartMissionTime = dwRecievedTime; m_dwMissionTime = dwMissionTime; m_bRecvStartTimer = TRUE; } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::SetReceivedUpdateMissionTime(DWORD dwRecievedTime, DWORD dwMissionTime) { m_dwUpdateMissionTime = dwRecievedTime; m_dwMissionTime = dwMissionTime; } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::SetClearTime(DWORD dwClearTime) { m_dwMissionClearTime = dwClearTime; m_bMissionCleared = true; } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::DisplayTime() { if(g_pMap && (IsMissionRanking((RANKINGNO)g_pMap->GetMapID(), eRANKING_TYPE_TIME_ATTACK) == false)) // ¹Ì¼Ç·©Å·(ŸÀÓ¾îÅøðµå)¿¡ ÇØ´çÇÏÁö ¾ÊÀ¸¸é ŸÀ̸Ӹ¦ º¸¿©ÁÖÁö ¾ÊÀ½ return; if ( ui_rank_timer_ptr_ ) { //ŸÀ̸ӽÃÀÛ BRD¸¦ ¹ÞÁö¾Ê¾Ò´Ù¸é âÀ» ¶ç¿ìÁö¾Ê´Â´Ù. if(!m_bRecvStartTimer) { ui_rank_timer_ptr_->ShowInterface(FALSE); return; } if(ui_rank_timer_ptr_->IsVisibleWindow()) { ui_rank_timer_ptr_->UpdateTime(); } #if defined(_NA_006774_20130617_ARRANGE_UNNECESSARY_RESOURCES) else { ui_rank_timer_ptr_->ShowInterface(TRUE); } #else else { //¹Ì¼Ç ·ÎºñâÀÌ ¶°ÀÖ´Ù¸é ·©Å©Å¸À̸Ó⠴ݴ´Ù. if( GET_DIALOG( IM_BATTLEZONE_MANAGER::BATTLEZONE_READY_MISSION_CFG )->IsVisible() ) { ui_rank_timer_ptr_->ShowInterface(FALSE); } else { ui_rank_timer_ptr_->ShowInterface(TRUE); } } #endif // defined(_NA_006774_20130617_ARRANGE_UNNECESSARY_RESOURCES) } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::DisplayEnding(int iRank, int iPartyNum, TCHAR* pMasterName) { m_iMyRank = iRank; m_iMyPartyNum = iPartyNum; m_strMyPartyMasterName = pMasterName; // º¸¿©ÁÙ°ÍÀ» ¹Ì¸® °è»êÇÏÀÚ m_dwGeneralMonsterDecSecond = m_dwMonsterKillNum_General * GENERAL_MON; //ÀÏ¹Ý ¸ó½ºÅÍ ´ÜÃà ½Ã°£ m_dwLeaderMonsterDecSecond = m_dwMonsterKillNum_Leader * LEADER_MON; //¸®´õ ´ÜÃà ½Ã°£ m_dwTotalMonsterDecTimeSecond = m_dwGeneralMonsterDecSecond + m_dwLeaderMonsterDecSecond; //ÃÑ ¸ó½ºÅÍ ´ÜÃà ½Ã°£ m_dwResultMissionClear = m_dwMissionClearTime + m_dwTotalMonsterDecTimeSecond; // ¸ó½ºÅÍ kill ¼ö »©±â Àü ½Ã°£ if ( ui_rank_ending_ptr_ ) { ui_rank_ending_ptr_->ShowInterface(TRUE); } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::CloseEndingDlg() { if ( ui_rank_ending_ptr_ ) { ui_rank_ending_ptr_->ShowInterface(FALSE); } } //------------------------------------------------------------------------------ /** */ #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) TCHAR* uiMissionRankMan2::GetMemberName(RANKINGNO no, RANKINGKEY key, eRANKING_TYPE type, eRANKING_SYSTEM_TYPE ranking_system_type) { if (MissionRanking* const mission_ranking = GET_MISSION_RANK_MANAGER()->FindMissionRanking(type, no, ranking_system_type)) { if (MissionRankingRecord* record = mission_ranking->FindRanking(key)) { const MEMBER_HASH& members = record->GetMemberHash(); MEMBER_HASH::const_iterator it = members.begin(), end = members.end(); for (; it != end; ++it) { if (RankingMember* member = it->second) { return const_cast(member->GetCharName()); } } } } return NULL; } //------------------------------------------------------------------------------ /** */ int uiMissionRankMan2::GetMemberLV(RANKINGNO no, RANKINGKEY key, eRANKING_TYPE type, eRANKING_SYSTEM_TYPE ranking_system_type) { if (MissionRanking* const mission_ranking = GET_MISSION_RANK_MANAGER()->FindMissionRanking(type, no, ranking_system_type)) { if (MissionRankingRecord* record = mission_ranking->FindRanking(key)) { const MEMBER_HASH& members = record->GetMemberHash(); MEMBER_HASH::const_iterator it = members.begin(), end = members.end(); for (; it != end; ++it) { if (RankingMember* member = it->second) { return member->GetLV(); } } } } return 0; } #else TCHAR* uiMissionRankMan2::GetMemberName(RANKINGNO no, RANKINGKEY key, eRANKING_TYPE type) { if (MissionRanking* const mission_ranking = GET_MISSION_RANK_MANAGER()->FindMissionRanking(type, no)) { if (MissionRankingRecord* record = mission_ranking->FindRanking(key)) { const MEMBER_HASH& members = record->GetMemberHash(); MEMBER_HASH::const_iterator it = members.begin(), end = members.end(); for (; it != end; ++it) { if (RankingMember* member = it->second) { return const_cast(member->GetCharName()); } } } } return NULL; } //------------------------------------------------------------------------------ /** */ int uiMissionRankMan2::GetMemberLV(RANKINGNO no, RANKINGKEY key, eRANKING_TYPE type) { if (MissionRanking* const mission_ranking = GET_MISSION_RANK_MANAGER()->FindMissionRanking(type, no)) { if (MissionRankingRecord* record = mission_ranking->FindRanking(key)) { const MEMBER_HASH& members = record->GetMemberHash(); MEMBER_HASH::const_iterator it = members.begin(), end = members.end(); for (; it != end; ++it) { if (RankingMember* member = it->second) { return member->GetLV(); } } } } return 0; } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::ShowRankList(int iType) { if (iType == TRUE) { ui_rank_list_ptr_->ShowInterface( TRUE ); } if ( ui_rank_gamble_ptr_ ) { ui_rank_gamble_ptr_->ShowInterface(FALSE); } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::ShowRankGamble() { if ( ui_rank_gamble_ptr_ ) { ui_rank_gamble_ptr_->ShowInterface(TRUE); } if ( ui_rank_list_ptr_ ) { ui_rank_list_ptr_->ShowInterface( FALSE ); } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::CloseMissionRunningDlg() { if ( ui_rank_timer_ptr_ ) { ui_rank_timer_ptr_->ShowInterface(FALSE); } if ( ui_rank_ending_ptr_ ) { ui_rank_ending_ptr_->ShowInterface(FALSE); } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::CloseMissionRankingDlg() { if ( ui_rank_list_ptr_ ) { ui_rank_list_ptr_->ShowInterface( FALSE ); } if ( ui_rank_gamble_ptr_ ) { ui_rank_gamble_ptr_->ShowInterface(FALSE); } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::GetTimeString(DWORD dwTime, util::_tstring &strTime) { TCHAR szTime[INTERFACE_STRING_LENGTH] = {0,}; DWORD minTick = 0; DWORD secTick = 0; DWORD msecTick = 0; if(dwTime) { DWORD dwTimeTemp1 = dwTime / SEC_PER_TICK; DWORD dwTimeTemp2 = dwTime % SEC_PER_TICK; if(dwTimeTemp1) { minTick = dwTimeTemp1 / 60; secTick = dwTimeTemp1 % 60; } if(dwTimeTemp2) msecTick = dwTimeTemp2 / 10; } strTime.clear(); Snprintf (szTime, INTERFACE_STRING_LENGTH-1, _T("%03d'%02d''%02d"), minTick, secTick, msecTick); strTime = szTime; } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::SetFinishDay(DWORD dwSettledDate) { finish_day_string_.clear(); settle_date_dword_ = dwSettledDate; if(settle_date_dword_ > 0) { int iMonth = settle_date_dword_ % 10000; int iYear = settle_date_dword_ / 10000; if(iMonth) { int iDay = iMonth % 100; iMonth = iMonth / 100; TCHAR szResult[INTERFACE_STRING_LENGTH] = {0,}; #ifdef _INTERNATIONAL_DATE_TOOLTIP uiToolTipMan* pUIMan = (uiToolTipMan*)g_InterfaceManager.GetUserInterfaceManager(UIMAN_TOOLTIP); if(pUIMan) { int nIndex = pUIMan->GetStringMonth(iMonth); TCHAR szMonth[INTERFACE_STRING_LENGTH] = {0,}; g_InterfaceManager.GetInterfaceString(nIndex, szMonth);//¿µ¹®´Þ Snprintf(szResult, INTERFACE_STRING_LENGTH-1, _T(" %s %02d, %02d"), szMonth, iDay, iYear); } #else Snprintf(szResult, INTERFACE_STRING_LENGTH-1, _T("%02d-%02d-%02d"), iYear, iMonth, iDay); #endif//_INTERNATIONAL_UI finish_day_string_ = szResult; } } if ( ui_rank_list_ptr_ ) { ui_rank_list_ptr_->UpdateFinishDay(); } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::SetReceiveData(BYTE type, RANKINGNO no, BYTE page) // ¼­¹ö·ÎºÎÅÍ ¹Þ¾Æ¿Â µ¥ÀÌÅ͸¦ ¼ÂÆÃÇÑ´Ù { bool bPointRanking = false; #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) if ( current_mission_system_rank_type_ >= eRANKING_TYPE_POINT && current_mission_system_rank_type_ < eRANKING_TYPE_MAX ) { // Æ÷ÀÎÆ® ·©Å· ŸÀÔ ÀÌ»óÀÌ¸é °°Àº ·ÎÁ÷À» »ç¿ëÇϱ⠶§¹®¿¡ bPointRankingÀ¸·Î Á¦¾î ÇÑ´Ù. bPointRanking = true; } else if ( current_mission_system_rank_type_ <= eRANKING_TYPE_TIME_ATTACK && current_mission_system_rank_type_ > eRANKING_TYPE_NONE ) { } else { // ¿©±â¿¡ µé¾î¿ÀÁö ¸»¾Æ¾ß ÇÑ´Ù. return; } #else if ( ui_rank_list_ptr_ && ui_rank_list_ptr_->get_current_select_ranking_type_() == eRANKING_TYPE_POINT ) //Æ÷ÀÎÆ®·©Å· { bPointRanking = true; } if ( ui_rank_list_ptr_ && (ui_rank_list_ptr_->get_current_select_ranking_type_() < 1 || ui_rank_list_ptr_->get_current_select_ranking_type_() > eRANKING_TYPE_MAX)) { return; } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR current_mission_number_ = no; current_mission_system_rank_type_ = ui_rank_list_ptr_->get_current_select_ranking_type_(); m_CurRankPage = page; ZeroMemory(&member_view_data_, sizeof(member_view_data_)); MissionRanking *pMR = NULL; int iRank=1; int iIndex = 0; if((type == eRANKING_MYRANKING) && (page == 0)) // ³»Á¤º¸´Â ÆäÀÌÁö°¡ 0À϶§¸¸ »õ·Î ¼¼ÆÃ { ZeroMemory(&my_ranking_view_data_, sizeof(my_ranking_view_data_)); // ³» Á¤º¸ #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_MYRANKING, current_mission_number_, current_mission_system_rank_type_); #else pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_MYRANKING, current_mission_number_); #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR if(pMR) { const RANKING_INFO_LIST& mission_list = pMR->GetMemberHash(); iRank=1; RANKING_INFO_LIST::const_iterator it = mission_list.begin(), end = mission_list.end(); for (; it != end; ++it) { if(iRank > 1) // ³ªÀÇ ·©Å· Á¤º¸´Â 1¸í¸¸ ÀÖ´Ù break; MissionRankingRecord* const record = (*it); // Ŭ¸®¾î ŸÀÓ ¹× Æ÷ÀÎÆ®°¡ 0º¸´Ù À۰ųª °°À¸¸é continue Áï Ãß°¡ÇÏÁö ¾Ê´Â´Ù. if (static_cast(record->GetClearTime()) <= 0) break; my_ranking_view_data_.iPartyNum = record->GetKey(); // ÆÄƼ¹øÈ£ my_ranking_view_data_.dwTime = (DWORD)(record->GetClearTime()); // ÁøÇà½Ã°£ //m_FameData.iRank = pMR->GetRanking(m_FameData.iPartyNum); // ¼øÀ§ // ±âÁ¸¿¡ ÀÖ´ø °Å¿¡¼­ ¼øÀ§ Á¤º¸¸¦ °¡Á®¿Â´Ù. std::vector::iterator iter = vecRqstMission.begin(); for ( ; iter != vecRqstMission.end(); ++iter) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) if ((*iter).no == current_mission_number_ && (*iter).ranking_system_type == current_mission_system_rank_type_) { my_ranking_view_data_.iRank = (*iter).myranking; break; } #else if ((*iter).no == current_mission_number_) { my_ranking_view_data_.iRank = (*iter).myranking; break; } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR } if(bPointRanking) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) // ·¹º§ my_ranking_view_data_.iLevel = GetMemberLV(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING, current_mission_system_rank_type_); // ·¹º§ //À̸§ if (GetMemberName(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING, current_mission_system_rank_type_) != NULL) { StrnCopy(my_ranking_view_data_.strName, GetMemberName(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING, current_mission_system_rank_type_), MAX_CHARNAME_LENGTH); } #else // ·¹º§ my_ranking_view_data_.iLevel = GetMemberLV(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING); // ·¹º§ //À̸§ if (GetMemberName(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING) != NULL) { StrnCopy(my_ranking_view_data_.strName, GetMemberName(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING), MAX_CHARNAME_LENGTH); } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR else { TCHAR empty_name[INTERFACE_STRING_LENGTH] = {0, }; // 5477 %s »èÁ¦µÈ ij¸¯ÅÍ g_InterfaceManager.GetInterfaceString(5477, empty_name, INTERFACE_STRING_LENGTH); StrnCopy(my_ranking_view_data_.strName, empty_name, MAX_CHARNAME_LENGTH); } } else { my_ranking_view_data_.iLevel = record->GetAvrgLVClient(); // Æò±Õ·¹º§ } ++iRank; } } } #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) else if(type == eRANKING_LASTWEEK) #else else if((type == eRANKING_LASTWEEK) && (page == 0)) // Áö³­ÁÖ ¼øÀ§´Â ÆäÀÌÁö°¡ 0À϶§¸¸ »õ·Î ¼¼ÆÃ #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR { ZeroMemory(&pre_week_rank_view_data_, sizeof(pre_week_rank_view_data_)); // Áö³­ÁÖ ·©Å· #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) int column_count = 0; int start_preweek_rank = (page*MAX_PREWEEK_RANK) + 1; pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_LASTWEEK, current_mission_number_, current_mission_system_rank_type_); #else pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_LASTWEEK, current_mission_number_); #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR if(pMR) { const RANKING_INFO_LIST& mission_list = pMR->GetMemberHash(); iIndex = 0; RANKING_INFO_LIST::const_iterator it = mission_list.begin(), end = mission_list.end(); for (; it != end; ++it) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) ++column_count; if(column_count < start_preweek_rank) continue; #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR MissionRankingRecord* const record = (*it); // Ŭ¸®¾î ŸÀÓ ¹× Æ÷ÀÎÆ®°¡ 0º¸´Ù À۰ųª °°À¸¸é continue Áï Ãß°¡ÇÏÁö ¾Ê´Â´Ù. if (static_cast(record->GetClearTime()) <= 0) continue; if(iIndex >= MAX_PREWEEK_RANK) // Áö³­ÁÖ´Â 3À§±îÁö¸¸ break; pre_week_rank_view_data_[iIndex].iPartyNum = record->GetKey(); // ÆÄƼ¹øÈ£ pre_week_rank_view_data_[iIndex].dwTime = (DWORD)(record->GetClearTime()); // ÁøÇà½Ã°£ pre_week_rank_view_data_[iIndex].iRank = pMR->GetRanking(pre_week_rank_view_data_[iIndex].iPartyNum); // ¼øÀ§ if(bPointRanking) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) pre_week_rank_view_data_[iIndex].iLevel = GetMemberLV(no, pre_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type, current_mission_system_rank_type_); // ·¹º§ // À̸§ if ( GetMemberName(no, pre_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type, current_mission_system_rank_type_) != NULL ) { StrnCopy(pre_week_rank_view_data_[iIndex].strName, GetMemberName(no, pre_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type, current_mission_system_rank_type_), MAX_CHARNAME_LENGTH); } #else pre_week_rank_view_data_[iIndex].iLevel = GetMemberLV(no, pre_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type); // ·¹º§ // À̸§ if ( GetMemberName(no, pre_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type) != NULL ) { StrnCopy(pre_week_rank_view_data_[iIndex].strName, GetMemberName(no, pre_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type), MAX_CHARNAME_LENGTH); } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR else { TCHAR empty_name[INTERFACE_STRING_LENGTH] = {0, }; // 5477 %s »èÁ¦µÈ ij¸¯ÅÍ g_InterfaceManager.GetInterfaceString(5477, empty_name, INTERFACE_STRING_LENGTH); StrnCopy(pre_week_rank_view_data_[iIndex].strName, empty_name, MAX_CHARNAME_LENGTH); } } else { pre_week_rank_view_data_[iIndex].iLevel = record->GetAvrgLVClient(); // Æò±Õ·¹º§ } ++iIndex; } } } else if(type == eRANKING_TODAYWEEK) { ZeroMemory(¤t_week_rank_view_data_, sizeof(current_week_rank_view_data_)); int iStartWeekRank = (page*MAX_WEEK_RANK) + 1; // À̹øÁÖ ·©Å· #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) int column_count = 0; pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_TODAYWEEK, current_mission_number_, current_mission_system_rank_type_); #else pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_TODAYWEEK, current_mission_number_); #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR if(pMR) { const RANKING_INFO_LIST& mission_list = pMR->GetMemberHash(); iIndex = 0; RANKING_INFO_LIST::const_iterator it = mission_list.begin(), end = mission_list.end(); for (; it != end; ++it) { MissionRankingRecord* const record = (*it); int iKey = record->GetKey(); // ÆÄƼ¹øÈ£ int iWeekRank = pMR->GetRanking(iKey); // ¼øÀ§ #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) ++column_count; if(column_count < iStartWeekRank) continue; // Ŭ¸®¾î ŸÀÓ ¹× Æ÷ÀÎÆ®°¡ 0º¸´Ù À۰ųª °°À¸¸é continue Áï Ãß°¡ÇÏÁö ¾Ê´Â´Ù. if (static_cast(record->GetClearTime()) <= 0) continue; #else if(iWeekRank < iStartWeekRank) continue; #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR if(iIndex >= MAX_WEEK_RANK) // ÇÑÆäÀÌÁö¿¡ 10°³¾¿ ÃÑ 50°³ break; current_week_rank_view_data_[iIndex].iPartyNum = iKey; // ÆÄƼ¹øÈ£ current_week_rank_view_data_[iIndex].dwTime = (DWORD)(record->GetClearTime()); // ÁøÇà½Ã°£ current_week_rank_view_data_[iIndex].iRank = iWeekRank; // ¼øÀ§ if(bPointRanking) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) current_week_rank_view_data_[iIndex].iLevel = GetMemberLV(no, current_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type, current_mission_system_rank_type_); //·¹º§ //À̸§ if ( GetMemberName(no, current_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type, current_mission_system_rank_type_) != NULL ) { StrnCopy(current_week_rank_view_data_[iIndex].strName, GetMemberName(no, current_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type, current_mission_system_rank_type_), MAX_CHARNAME_LENGTH); } #else current_week_rank_view_data_[iIndex].iLevel = GetMemberLV(no, current_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type); //·¹º§ //À̸§ if ( GetMemberName(no, current_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type) != NULL ) { StrnCopy(current_week_rank_view_data_[iIndex].strName, GetMemberName(no, current_week_rank_view_data_[iIndex].iPartyNum, (eRANKING_TYPE)type), MAX_CHARNAME_LENGTH); } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR else { TCHAR empty_name[INTERFACE_STRING_LENGTH] = {0, }; // 5477 %s »èÁ¦µÈ ij¸¯ÅÍ g_InterfaceManager.GetInterfaceString(5477, empty_name, INTERFACE_STRING_LENGTH); StrnCopy(current_week_rank_view_data_[iIndex].strName, empty_name, MAX_CHARNAME_LENGTH); } } else { current_week_rank_view_data_[iIndex].iLevel = record->GetAvrgLVClient(); // Æò±Õ·¹º§ } ++iIndex; } } } if ( ui_rank_list_ptr_ ) { ui_rank_list_ptr_->UpdateRankList(); } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::UpdateReceiveData(eRANKING_SYSTEM_TYPE type, RANKINGNO no, BYTE page) { bool bPointRanking = false; #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) if ( type >= eRANKING_TYPE_POINT && type < eRANKING_TYPE_MAX ) { // Æ÷ÀÎÆ® ·©Å· ŸÀÔ ÀÌ»óÀÌ¸é °°Àº ·ÎÁ÷À» »ç¿ëÇϱ⠶§¹®¿¡ bPointRankingÀ¸·Î Á¦¾î ÇÑ´Ù. bPointRanking = true; } else if ( type <= eRANKING_TYPE_TIME_ATTACK && type > eRANKING_TYPE_NONE ) { } else { // ¿©±â¿¡ µé¾î¿ÀÁö ¸»¾Æ¾ß ÇÑ´Ù. return; } #else if(GET_MISSION_RANK_MANAGER()->GetRankingType(no) == eRANKING_TYPE_POINT) //Æ÷ÀÎÆ®·©Å· { bPointRanking = true; } else if(GET_MISSION_RANK_MANAGER()->GetRankingType(no) == eRANKING_TYPE_TIME_ATTACK) //¹Ì¼Ç·©Å· { } else if(GET_MISSION_RANK_MANAGER()->GetRankingType(no) == eRANKING_TYPE_BATTLEGROUND_WIN) // ½Â·ü { } else if (GET_MISSION_RANK_MANAGER()->GetRankingType(no) == eRANKING_TYPE_BATTLEGROUND_KILL) // ų { } else if (GET_MISSION_RANK_MANAGER()->GetRankingType(no) == eRANKING_TYPE_BATTLEGROUND_ASSIST) // ¾î½Ã½ºÆ® { } else { return; } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR current_mission_number_ = no; current_mission_system_rank_type_ = type; m_CurRankPage = page; // ¸¸¾à ³»°¡ ÇØ´ç µ¥ÀÌÅ͸¦ °¡Áö°í ÀÖ´Ù¸é ¸®½ºÆ®¸¸ °»½Å #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) if ( IsRankData(no, page, type ) ) #else if(IsRankData(no, page)) #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR { ZeroMemory(&my_ranking_view_data_, sizeof(my_ranking_view_data_)); ZeroMemory(&pre_week_rank_view_data_, sizeof(pre_week_rank_view_data_)); ZeroMemory(¤t_week_rank_view_data_, sizeof(current_week_rank_view_data_)); ZeroMemory(&member_view_data_, sizeof(member_view_data_)); MissionRanking *pMR = NULL; int iRank=1; int iIndex = 0; // ³ªÀÇ ·©Å· Á¤º¸ #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_MYRANKING, current_mission_number_, current_mission_system_rank_type_); #else pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_MYRANKING, current_mission_number_); #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR if(pMR) { const RANKING_INFO_LIST& mission_list = pMR->GetMemberHash(); iRank=1; RANKING_INFO_LIST::const_iterator it = mission_list.begin(), end = mission_list.end(); for (; it != end; ++it) { if(iRank > MAX_FAME_RANK) // ³ªÀÇ ·©Å· Á¤º¸´Â 1¸í¸¸ ÀÖ´Ù break; MissionRankingRecord* const record = (*it); if (static_cast(record->GetClearTime()) <= 0) break; my_ranking_view_data_.iPartyNum = record->GetKey(); // ÆÄƼ¹øÈ£ my_ranking_view_data_.dwTime = (DWORD)(record->GetClearTime()); // ÁøÇà½Ã°£ // ±âÁ¸¿¡ ÀÖ´ø °Å¿¡¼­ ¼øÀ§ Á¤º¸¸¦ °¡Á®¿Â´Ù. std::vector::iterator iter = vecRqstMission.begin(); for ( ; iter != vecRqstMission.end(); ++iter) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) if ((*iter).no == current_mission_number_ && (*iter).ranking_system_type == current_mission_system_rank_type_) { my_ranking_view_data_.iRank = (*iter).myranking; } #else if ((*iter).no == current_mission_number_) { my_ranking_view_data_.iRank = (*iter).myranking; break; } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR } if(bPointRanking) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) my_ranking_view_data_.iLevel = GetMemberLV(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING, current_mission_system_rank_type_); //·¹º§ //À̸§ if ( GetMemberName(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING, current_mission_system_rank_type_) != NULL) { StrnCopy(my_ranking_view_data_.strName, GetMemberName(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING, current_mission_system_rank_type_), MAX_CHARNAME_LENGTH); } #else my_ranking_view_data_.iLevel = GetMemberLV(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING); //·¹º§ //À̸§ if ( GetMemberName(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING) != NULL) { StrnCopy(my_ranking_view_data_.strName, GetMemberName(no, my_ranking_view_data_.iPartyNum, eRANKING_MYRANKING), MAX_CHARNAME_LENGTH); } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR else { TCHAR empty_name[INTERFACE_STRING_LENGTH] = {0, }; // 5477 %s »èÁ¦µÈ ij¸¯ÅÍ g_InterfaceManager.GetInterfaceString(5477, empty_name, INTERFACE_STRING_LENGTH); StrnCopy(my_ranking_view_data_.strName, empty_name, MAX_CHARNAME_LENGTH); } } else { my_ranking_view_data_.iLevel = record->GetAvrgLVClient(); // Æò±Õ·¹º§ } ++iRank; } } // Áö³­ÁÖ ·©Å· #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) int column_count = 0; int start_preweek_rank = (page*MAX_PREWEEK_RANK) + 1; pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_LASTWEEK, current_mission_number_, current_mission_system_rank_type_); #else pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_LASTWEEK, current_mission_number_); #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR if(pMR) { const RANKING_INFO_LIST& mission_list = pMR->GetMemberHash(); iIndex = 0; RANKING_INFO_LIST::const_iterator it = mission_list.begin(), end = mission_list.end(); for (; it != end; ++it) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) ++column_count; if(column_count < start_preweek_rank) continue; MissionRankingRecord* const record = (*it); if (static_cast(record->GetClearTime()) <= 0) continue; #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR if(iIndex >= MAX_PREWEEK_RANK) // Áö³­ÁÖ´Â 3À§±îÁö¸¸ break; pre_week_rank_view_data_[iIndex].iPartyNum = record->GetKey(); // ÆÄƼ¹øÈ£ pre_week_rank_view_data_[iIndex].dwTime = (DWORD)(record->GetClearTime()); // ÁøÇà½Ã°£ pre_week_rank_view_data_[iIndex].iRank = pMR->GetRanking(pre_week_rank_view_data_[iIndex].iPartyNum); // ¼øÀ§ if(bPointRanking) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) pre_week_rank_view_data_[iIndex].iLevel = GetMemberLV(no, pre_week_rank_view_data_[iIndex].iPartyNum, eRANKING_LASTWEEK, current_mission_system_rank_type_); //·¹º§ //À̸§ if ( GetMemberName(no, pre_week_rank_view_data_[iIndex].iPartyNum, eRANKING_LASTWEEK, current_mission_system_rank_type_) != NULL ) { StrnCopy(pre_week_rank_view_data_[iIndex].strName, GetMemberName(no, pre_week_rank_view_data_[iIndex].iPartyNum, eRANKING_LASTWEEK, current_mission_system_rank_type_), MAX_CHARNAME_LENGTH); } #else pre_week_rank_view_data_[iIndex].iLevel = GetMemberLV(no, pre_week_rank_view_data_[iIndex].iPartyNum, eRANKING_LASTWEEK); //·¹º§ //À̸§ if ( GetMemberName(no, pre_week_rank_view_data_[iIndex].iPartyNum, eRANKING_LASTWEEK) != NULL ) { StrnCopy(pre_week_rank_view_data_[iIndex].strName, GetMemberName(no, pre_week_rank_view_data_[iIndex].iPartyNum, eRANKING_LASTWEEK), MAX_CHARNAME_LENGTH); } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR else { TCHAR empty_name[INTERFACE_STRING_LENGTH] = {0, }; // 5477 %s »èÁ¦µÈ ij¸¯ÅÍ g_InterfaceManager.GetInterfaceString(5477, empty_name, INTERFACE_STRING_LENGTH); StrnCopy(pre_week_rank_view_data_[iIndex].strName, empty_name, MAX_CHARNAME_LENGTH); } } else { pre_week_rank_view_data_[iIndex].iLevel = record->GetAvrgLVClient(); // Æò±Õ·¹º§ } ++iIndex; } } int iStartWeekRank = (page*MAX_WEEK_RANK) + 1; // À̹øÁÖ ·©Å· #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) column_count = 0; pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_TODAYWEEK, current_mission_number_, current_mission_system_rank_type_); #else pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(eRANKING_TODAYWEEK, current_mission_number_); #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR if(pMR) { const RANKING_INFO_LIST& mission_list = pMR->GetMemberHash(); iIndex = 0; RANKING_INFO_LIST::const_iterator it = mission_list.begin(), end = mission_list.end(); for (; it != end; ++it) { MissionRankingRecord* const record = (*it); int iKey = record->GetKey(); // ÆÄƼ¹øÈ£ int iWeekRank = pMR->GetRanking(iKey); // ¼øÀ§ #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) ++column_count; if(column_count < iStartWeekRank) continue; if (static_cast(record->GetClearTime()) <= 0) continue; #else if(iWeekRank < iStartWeekRank) continue; #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR if(iIndex >= MAX_WEEK_RANK) // ÇÑÆäÀÌÁö¿¡ 10°³¾¿ ÃÑ 50°³ break; current_week_rank_view_data_[iIndex].iPartyNum = iKey; // ÆÄƼ¹øÈ£ current_week_rank_view_data_[iIndex].dwTime = (DWORD)(record->GetClearTime()); // ÁøÇà½Ã°£ current_week_rank_view_data_[iIndex].iRank = iWeekRank; // ¼øÀ§ if(bPointRanking) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) current_week_rank_view_data_[iIndex].iLevel = GetMemberLV(no, current_week_rank_view_data_[iIndex].iPartyNum, eRANKING_TODAYWEEK, current_mission_system_rank_type_); //·¹º§ //À̸§ if ( GetMemberName(no, current_week_rank_view_data_[iIndex].iPartyNum, eRANKING_TODAYWEEK, current_mission_system_rank_type_) != NULL ) { StrnCopy(current_week_rank_view_data_[iIndex].strName, GetMemberName(no, current_week_rank_view_data_[iIndex].iPartyNum, eRANKING_TODAYWEEK, current_mission_system_rank_type_), MAX_CHARNAME_LENGTH); } #else current_week_rank_view_data_[iIndex].iLevel = GetMemberLV(no, current_week_rank_view_data_[iIndex].iPartyNum, eRANKING_TODAYWEEK); //·¹º§ //À̸§ if ( GetMemberName(no, current_week_rank_view_data_[iIndex].iPartyNum, eRANKING_TODAYWEEK) != NULL ) { StrnCopy(current_week_rank_view_data_[iIndex].strName, GetMemberName(no, current_week_rank_view_data_[iIndex].iPartyNum, eRANKING_TODAYWEEK), MAX_CHARNAME_LENGTH); } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR else { TCHAR empty_name[INTERFACE_STRING_LENGTH] = {0, }; // 5477 %s »èÁ¦µÈ ij¸¯ÅÍ g_InterfaceManager.GetInterfaceString(5477, empty_name, INTERFACE_STRING_LENGTH); StrnCopy(current_week_rank_view_data_[iIndex].strName, empty_name, MAX_CHARNAME_LENGTH); } } else { current_week_rank_view_data_[iIndex].iLevel = record->GetAvrgLVClient(); // Æò±Õ·¹º§ } ++iIndex; } } if ( ui_rank_list_ptr_ ) { ui_rank_list_ptr_->UpdateRankList(); } } else { // µ¥ÀÌÅͰ¡ ¾øÀ¸¸é ¼­¹ö·Î sync º¸³¿ m_PendingRankingType = eRANKING_MYRANKING; pending_ranking_system_type_ = current_mission_system_rank_type_; m_PendingMissionNo = current_mission_number_; m_PendingPage = m_CurRankPage; this->Send_CG_MISSION_RANKING_INFO_SYN(m_PendingRankingType, m_PendingMissionNo, current_mission_system_rank_type_, m_PendingPage); } } //------------------------------------------------------------------------------ /** */ #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) bool uiMissionRankMan2::IsRankData(RANKINGNO no, BYTE page, eRANKING_SYSTEM_TYPE ranking_system_type) { for(unsigned int i=0; iFindMissionRanking(type, no); if(pMR) { MissionRankingRecord * pRecord = pMR->FindRanking(key); if(pRecord) { const MEMBER_HASH& members = pRecord->GetMemberHash(); stMemberConfirmedInfo member_confirmed_info; member_confirmed_info.pending_ranking_type = type; member_confirmed_info.ranking_key = key; member_confirmed_info.ranking_no = no; if(members.empty() && get_confirmed_member_party_key(member_confirmed_info) == false) // µ¥ÀÌÅ͸¦ °®°í ÀÖÁö ¾ÊÀ¸¸é ¼­¹ö¿¡°Ô ¿äû { // Çѹø ã¾ÒÀ¸¸é ´ÙÀ½ ºÎÅÍ´Â ÆÐŶÀ» ¿äûÇÏÁö ¾Ê´Â´Ù. confirmed_member_party_confirmed_list_.push_back(member_confirmed_info); m_RqstRankingType = type; m_RqstMissionNo = no; m_PendingRankingKey = key; MSG_CG_MISSION_RANKING_MEMBER_INFO_SYN sync; sync.m_Type = m_RqstRankingType; sync.m_MissionNo = m_RqstMissionNo; sync.m_Key = m_PendingRankingKey; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof (sync)); Is_wait_receive_packet_ = true; } else // ÀÖÀ¸¸é °®°í ÀÖ´Â°É·Î ÇØ°á { SetMemberData(no, key, type); if ( ui_rank_list_ptr_ ) { ui_rank_list_ptr_->UpdateMemberList(); } } } } } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::SetMemberData(RANKINGNO no, RANKINGKEY key, eRANKING_TYPE type) { ZeroMemory(&member_view_data_, sizeof(member_view_data_)); if (MissionRanking* const mission_ranking = GET_MISSION_RANK_MANAGER()->FindMissionRanking(type, no)) { if (MissionRankingRecord* record = mission_ranking->FindRanking(key)) { const MEMBER_HASH& members = record->GetMemberHash(); MEMBER_HASH::const_iterator it = members.begin(), end = members.end(); if ( members.empty() ) { member_view_data_[0].iLevel = 0; TCHAR empty_name[INTERFACE_STRING_LENGTH] = {0, }; // 5477 %s »èÁ¦µÈ ij¸¯ÅÍ g_InterfaceManager.GetInterfaceString(5477, empty_name, INTERFACE_STRING_LENGTH); StrnCopy(member_view_data_[0].strName, empty_name, MAX_CHARNAME_LENGTH); return; } for (int i = 0; i < _countof(member_view_data_) && it != end; ++i, ++it) { RankingMember* member = it->second; if (member == NULL) { assert(!"unexpected status"); continue; }; if (stMissionRankMemberData* dest = &member_view_data_[i]) { dest->iLevel = member->GetLV(); StrnCopy(dest->strGuild, member->GetGuildName(), MAX_GUILDNAME_LENGTH); StrnCopy(dest->strName, member->GetCharName(), MAX_CHARNAME_LENGTH); } } } } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::CheckEnableMissionRankingRecord() // ¹Ì¼Ç ½ÃÀ۽à óÀ½¿¡¸¸ üũ { if(!g_pMap) { return; } RANKINGNO no = (RANKINGNO)g_pMap->GetMapID(); if(IsMissionRanking(no, eRANKING_TYPE_TIME_ATTACK) == false) { Is_enable_mission_ranking_ = false; return; } ZeroMemory(&mission_party_info_array_, sizeof(mission_party_info_array_)); uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); int iMemberCount = 0; if(partyMan) { STLX_VECTOR& vPartyMem = partyMan->GetPartyListRef(); for (int i=0; iGetPartyNum(); ++i) { if(!vPartyMem[i].IsDead()) { ++iMemberCount; mission_party_info_array_[i].m_Class = vPartyMem[i].Get().m_byClassType; mission_party_info_array_[i].m_LV = vPartyMem[i].Get().m_wLevel; } } } RC::eRANKING_RESULT result = GET_MISSION_RANK_MANAGER()->CanRegisterMissionRecord(no, iMemberCount, mission_party_info_array_); if(result == RC_RANKING_SUCCESS) Is_enable_mission_ranking_ = true; else { Is_enable_mission_ranking_ = false; _processErrorCode(result, eOUTPUT_MSG_TOP_SHOW); _processErrorCode(result); } } //------------------------------------------------------------------------------ /** */ bool uiMissionRankMan2::IsEnableMissionRanking() { return Is_enable_mission_ranking_; } //------------------------------------------------------------------------------ /** */ bool uiMissionRankMan2::DecPage() { if(m_CurRankPage <= 0 || Is_wait_receive_packet_ == true) return false; --m_CurRankPage; UpdateReceiveData(current_mission_system_rank_type_, current_mission_number_, m_CurRankPage); return true; } //------------------------------------------------------------------------------ /** */ bool uiMissionRankMan2::IncPage() { if(m_CurRankPage >= MAX_PAGE || Is_wait_receive_packet_ == true) return false; ++m_CurRankPage; UpdateReceiveData(current_mission_system_rank_type_, current_mission_number_, m_CurRankPage); return true; } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::Send_CG_MISSION_RANKING_INFO_SYN(BYTE byPendingRankingType, RANKINGNO PendingMissionNo, eRANKING_SYSTEM_TYPE ranking_system_type, BYTE byPendingPage) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) if ( !Is_wait_receive_packet_ ) { RANKINGID ranking_id = GetSearchRankingId(PendingMissionNo, ranking_system_type); if (0 == ranking_id) return; MSG_CG_MISSION_RANKING_INFO_SYN sync; sync.m_Type = byPendingRankingType; sync.m_RankingID = ranking_id; sync.m_Page = byPendingPage; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof (sync)); Is_wait_receive_packet_ = true; } #else if ( !Is_wait_receive_packet_ ) { MSG_CG_MISSION_RANKING_INFO_SYN sync; sync.m_Type = byPendingRankingType; sync.m_RankingID = GetSearchRankingId(PendingMissionNo, ranking_system_type); sync.m_Page = byPendingPage; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof (sync)); Is_wait_receive_packet_ = true; } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::Send_CG_MISSION_RANKING_REWARD_SYN() { if ( reward_info_vector_.empty() ) return; std::vector::iterator iter = reward_info_vector_.begin(); if ( !Is_wait_receive_packet_ ) { MSG_CG_MISSION_RANKING_REWARD_SYN sync; sync.ranking_id = (*iter).ranking_id; sync.m_Key = (*iter).reward_ranking_key; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof(sync)); Is_wait_receive_packet_ = true; } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::Send_CG_MISSION_RANKING_SETTLEDDATE_INFO_SYN() { MSG_CG_MISSION_RANKING_SETTLEDDATE_INFO_SYN sync; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &sync, sizeof (sync)); } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::NetworkProc( MSG_BASE * pMsg ) { TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,}; TCHAR szTemp[INTERFACE_STRING_LENGTH] = {0,}; switch (pMsg->m_byCategory) { case CG_MISSION: { switch (pMsg->m_byProtocol) { case CG_MISSION_RECORD_ELAPSEDTIME_CMD: { MSG_CG_MISSION_RECORD_ELAPSEDTIME_CMD *pPacket = (MSG_CG_MISSION_RECORD_ELAPSEDTIME_CMD *)pMsg; SetReceivedStartMissionTime(clock_function::GetTickCount(), pPacket->m_MissionElapsedTimePerSecond * 1000); this->m_dwMissionBestTime = pPacket->m_MissionBestClearTimePerSecond * 1000; if(g_pMap) { //½ºÅ©¸³Æ®¿¡¼­ Àоî¿Í¾ßÇÔ RANKINGNO no = (RANKINGNO)g_pMap->GetMapID(); RankingManager::LEVEL_AREA* pArea = GET_MISSION_RANK_MANAGER()->FindLVArea(no); if(pArea) m_dwMaxMonsterKillNum = pArea->m_MaxMonsterKill; } CheckEnableMissionRankingRecord(); } break; case CG_MISSION_TIMER_CHANGED_BRD: { MSG_CG_MISSION_TIMER_CHANGED_BRD *pPacket = (MSG_CG_MISSION_TIMER_CHANGED_BRD *)pMsg; m_dwTotalMonsterKillNum = pPacket->m_TotalMonsterKillNum; #ifdef _DEBUG TCHAR szDebug[INTERFACE_STRING_LENGTH] = {0,}; Snprintf(szDebug, INTERFACE_STRING_LENGTH-1, _T("\nCG_MISSION_TIMER_CHANGED_BRD: %ld\n"),pPacket->m_TotalMonsterKillNum); OutputDebugString(szDebug); #endif } break; case CG_MISSION_CLEAR_RECORD_CMD: { MSG_CG_MISSION_CLEAR_RECORD_CMD *pPacket = (MSG_CG_MISSION_CLEAR_RECORD_CMD *)pMsg; m_dwMonsterKillNum_General = pPacket->m_MonsterKillNum_General; m_dwMonsterKillNum_Leader = pPacket->m_MonsterKillNum_Leader; ////////////////////////////////////////////////////////////////////////// // ÇØ´ç³»¿ëÀº ±âÁ¸¿¡ À߸øµÈ ºÎºÐ¶§¹®¿¡ À̺κп¡¼­ ¹Ì¼Ç Ä«¿îÆ®¸¦ Áõ°¡ ½Ã۱â·Î ¼­¹ö¿Í ÇÕÀÇ Çß½À´Ï´Ù. if (g_pMission_Concrete && g_pMap) { // Æ®¸®°Å ÂÊ¿¡¼­ SetMissionPoint¸¦ ¿Ã·Á Áֱ⠶§¹®¿¡ ¿©±â¿¡¼­ ¶Ç´Ù½Ã ¿Ã·ÁÁÙ Çʿ䰡 ¾ø´Ù. if ( g_pQMGR_Real ) { g_pQMGR_Real->Event( QUEST_EVENT_MISSION, NULL); g_InterfaceManager.UpdateQuestInfo(); } } ////////////////////////////////////////////////////////////////////////// } break; case CG_MISSION_RANKING_SUCCESS_BRD: { MSG_CG_MISSION_RANKING_SUCCESS_BRD *pPacket = (MSG_CG_MISSION_RANKING_SUCCESS_BRD *)pMsg; SetClearTime(pPacket->m_ClearTime); if(g_pHero) { uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); if(partyMan) { uicPartyMemberInfoPlus *pInfo = const_cast(partyMan->GetPartyLeader()); if(pInfo) { TCHAR szMaster[MAX_CHARNAME_LENGTH+1] ={0,}; StrnCopy(szMaster, pInfo->Get().m_szCharName, MAX_CHARNAME_LENGTH); DisplayEnding(pPacket->m_Ranking, pPacket->m_Key, szMaster); } } // 1~50À§ ±îÁö´Â ½Ã½ºÅÛâ¿¡µµ Ãâ·Â~ g_InterfaceManager.GetInterfaceString( 9908, szTemp, INTERFACE_STRING_LENGTH ); // ¹Ì¼Ç·©Å· %dÀ§ Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, pPacket->m_Ranking); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } } break; case CG_MISSION_RANKING_FAILED_BRD: { MSG_CG_MISSION_RANKING_FAILED_BRD *pPacket = (MSG_CG_MISSION_RANKING_FAILED_BRD *)pMsg; SetClearTime(pPacket->m_ClearTime); _processErrorCode(pPacket->m_dwErrorCode, eOUTPUT_MSG_CENTER_SHOW); _processErrorCode(pPacket->m_dwErrorCode, eOUTPUT_MSG_CHAT); } break; case CG_MISSION_RANKING_INFO_ACK: { Is_wait_receive_packet_ = false; // °¡º¯ ÆÐŶ MSG_CG_MISSION_RANKING_INFO_ACK *pPacket = (MSG_CG_MISSION_RANKING_INFO_ACK *)pMsg; if (m_PendingRankingType == eRANKING_MYRANKING) { stRqstMissionRankInfo mssionInfo; mssionInfo.no = m_PendingMissionNo; mssionInfo.page = m_PendingPage; mssionInfo.myranking = pPacket->myranking; #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) // ·©Å· ½Ã½ºÅÛ Å¸ÀÔÀ» Ãß°¡ mssionInfo.ranking_system_type = current_mission_system_rank_type_; #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR vecRqstMission.push_back(mssionInfo); } #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) if ((m_PendingRankingType != eRANKING_MYRANKING + 1) && m_PendingMissionNo != MAX_MISSION_NUM) { if ( current_mission_system_rank_type_ >= eRANKING_TYPE_POINT && current_mission_system_rank_type_ < eRANKING_TYPE_MAX ) { // Æ÷ÀÎÆ® ·©Å· ŸÀÔ ÀÌ»óÀÌ¸é °°Àº ·ÎÁ÷À» »ç¿ëÇϱ⠶§¹®¿¡ ³ªÁß¿¡ È®ÀåÀ» À§Çؼ­ Á¶°Ç¹®À¸·Î ó¸® GET_MISSION_RANK_MANAGER()->Serialize((eRANKING_TYPE)m_PendingRankingType, m_PendingMissionNo, m_PendingPage, pPacket->m_pBUFFER, pPacket->m_Size, RANKING_SERIALIZE_SAVE, current_mission_system_rank_type_); } else if ( current_mission_system_rank_type_ <= eRANKING_TYPE_TIME_ATTACK && current_mission_system_rank_type_ > eRANKING_TYPE_NONE ) { GET_MISSION_RANK_MANAGER()->SerializeForClient(static_cast(m_PendingRankingType), m_PendingMissionNo, m_PendingPage, pPacket->m_pBUFFER, pPacket->m_Size, RANKING_SERIALIZE_CLIENT_SAVE); } else { // ¿©±â¿¡ µé¾î¿ÀÁö ¸»¾Æ¾ß ÇÑ´Ù. break; } SetReceiveData(m_PendingRankingType, m_PendingMissionNo, m_PendingPage); } #else if((m_PendingRankingType != eRANKING_MYRANKING + 1) && (m_PendingMissionNo != MAX_MISSION_NUM)) { if(GET_MISSION_RANK_MANAGER()->GetRankingType(m_PendingMissionNo) == eRANKING_TYPE_TIME_ATTACK) //¹Ì¼Ç·©Å· { GET_MISSION_RANK_MANAGER()->SerializeForClient((eRANKING_TYPE)m_PendingRankingType, m_PendingMissionNo, m_PendingPage, pPacket->m_pBUFFER, pPacket->m_Size, RANKING_SERIALIZE_CLIENT_SAVE); } else if(GET_MISSION_RANK_MANAGER()->GetRankingType(m_PendingMissionNo) == eRANKING_TYPE_POINT) //Æ÷ÀÎÆ®·©Å· { GET_MISSION_RANK_MANAGER()->Serialize((eRANKING_TYPE)m_PendingRankingType, m_PendingMissionNo, m_PendingPage, pPacket->m_pBUFFER, pPacket->m_Size, RANKING_SERIALIZE_SAVE); } else { break; } SetReceiveData(m_PendingRankingType, m_PendingMissionNo, m_PendingPage); } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR // ¾î¿¼ö ¾ø´Â ¿¹¿Üó¸®. if (m_PendingRankingType == eRANKING_MYRANKING) { m_PendingRankingType = eRANKING_LASTWEEK; } else { ++m_PendingRankingType; } if(m_PendingRankingType < eRANKING_MAX) { m_PendingMissionNo = current_mission_number_; Send_CG_MISSION_RANKING_INFO_SYN(m_PendingRankingType, m_PendingMissionNo, pending_ranking_system_type_, m_PendingPage); // ´ÙÀ½ ŸÀÔ ¿äû } } break; case CG_MISSION_RANKING_INFO_NAK: { Is_wait_receive_packet_ = false; MSG_CG_MISSION_RANKING_INFO_NAK *pPacket = (MSG_CG_MISSION_RANKING_INFO_NAK *)pMsg; _processErrorCode(pPacket->m_dwErrorCode); if ( ui_rank_list_ptr_ ) { ui_rank_list_ptr_->non_existent_my_ranking_list_control_item(); } if(m_PendingRankingType < eRANKING_TODAYWEEK) { ++m_PendingRankingType; m_PendingMissionNo = current_mission_number_; Send_CG_MISSION_RANKING_INFO_SYN(m_PendingRankingType, m_PendingMissionNo, pending_ranking_system_type_, m_PendingPage); // ´ÙÀ½ ŸÀÔ ¿äû } } break; // ·©Å· ¸â¹ö Á¤º¸ case CG_MISSION_RANKING_MEMBER_INFO_ACK: { Is_wait_receive_packet_ = false; MSG_CG_MISSION_RANKING_MEMBER_INFO_ACK *pPacket = (MSG_CG_MISSION_RANKING_MEMBER_INFO_ACK *)pMsg; MissionRanking* pMR = GET_MISSION_RANK_MANAGER()->FindMissionRanking(m_RqstRankingType, m_RqstMissionNo); if(pMR) { MissionRankingRecord * pRecord = pMR->FindRanking(m_PendingRankingKey); if(pRecord) { ArchiveOfStream lArchive( pPacket->m_pBUFFER, pPacket->m_Size ); pRecord->SerializeMember(lArchive, RANKING_SERIALIZE_CLIENT_SAVE); SetMemberData(m_RqstMissionNo, m_PendingRankingKey, m_RqstRankingType); if (ui_rank_list_ptr_) { ui_rank_list_ptr_->UpdateMemberList(); } } } } break; case CG_MISSION_RANKING_MEMBER_INFO_NAK: { Is_wait_receive_packet_ = false; MSG_CG_MISSION_RANKING_MEMBER_INFO_NAK *pPacket = (MSG_CG_MISSION_RANKING_MEMBER_INFO_NAK *)pMsg; _processErrorCode(pPacket->m_dwErrorCode); } break; case CG_MISSION_RANKING_SETTLEDDATE_INFO_ACK: { MSG_CG_MISSION_RANKING_SETTLEDDATE_INFO_ACK* pPacket = (MSG_CG_MISSION_RANKING_SETTLEDDATE_INFO_ACK* )pMsg; if (pPacket) { SetFinishDay(pPacket->settled_date); ui_rank_list_ptr_->set_Is_setting_finish_day(true); // °á»êÀÏ ÆÐŶ¿¡ º¸»ó¹ÞÀ» ¼ö ÀÖ´Â ¸ñ·Ïµµ °°ÀÌ ¹Þ¾ÆÁØ´Ù. for ( int i = 0; i < MSG_CG_MISSION_RANKING_SETTLEDDATE_INFO_ACK::MAX_REWARDABLE_MISSION_LIST_SIZE ; ++i) { if ( pPacket->reward_mission_list[i].ranking_id != 0 && pPacket->reward_mission_list[i].ranking_key != 0 ) { stRewardInfo reward_info; reward_info.ranking_id = pPacket->reward_mission_list[i].ranking_id; reward_info.reward_ranking_key = pPacket->reward_mission_list[i].ranking_key; reward_info_vector_.push_back(reward_info); Is_can_reward_ = true; if ( ui_rank_list_ptr_ ) { ui_rank_list_ptr_->set_reward_yellow_texture_show( TRUE ); } } } if ( Is_can_reward_ == false ) { if ( ui_rank_list_ptr_ ) { ui_rank_list_ptr_->set_reward_yellow_texture_show( FALSE ); } } } } break; case CG_MISSION_RANKING_SETTLEDDATE_INFO_NAK: { Is_wait_receive_packet_ = false; MSG_CG_MISSION_RANKING_INFO_NAK *pPacket = (MSG_CG_MISSION_RANKING_INFO_NAK *)pMsg; _processErrorCode(pPacket->m_dwErrorCode); } break; case CG_MISSION_RANKING_REWARD_ACK: { Is_wait_receive_packet_ = false; MSG_CG_MISSION_RANKING_REWARD_ACK *pPacket = (MSG_CG_MISSION_RANKING_REWARD_ACK *)pMsg; ItemManager::Instance()->InsertInventoryTotalInfo(REWARD, pPacket->m_ItemInfo); LONGLONG current_money = 0; TCHAR temp_message[INTERFACE_STRING_LENGTH] = {0, }; if (g_pHero) { current_money = g_pHero->GetMoney(); g_pHero->SetMoney(pPacket->rewarded_money); } TCHAR chat_result[INTERFACE_STRING_LENGTH] = {0,}; LONGLONG acquired_money = pPacket->rewarded_money - current_money; int bonus_money = 0; if( pPacket->hime_bonus_ratio > 0) { bonus_money = static_cast(ceil(static_cast(acquired_money) * (static_cast(pPacket->hime_bonus_ratio) / (100.0f + static_cast(pPacket->hime_bonus_ratio) ) ) ) ); } if( bonus_money > 0) { //5095 %I64u ÇÏÀÓÀ» ȹµæÇÏ¿´½À´Ï´Ù.(Ãß°¡ ÇÏÀÓ %d ȹµæ) g_InterfaceManager.GetInterfaceString(5095, temp_message); Snprintf(chat_result, INTERFACE_STRING_LENGTH-1, temp_message, acquired_money - bonus_money, bonus_money); } else { // %I64u ÇÏÀÓ¸¦ ȹµæÇÏ¿´½À´Ï´Ù. g_InterfaceManager.GetInterfaceString( eST_CODE_GET_MONEY, temp_message, MAX_MESSAGE_LENGTH ); _stprintf(chat_result, temp_message, acquired_money); } #ifdef _DEV_VER TCHAR debug_message[INTERFACE_STRING_LENGTH] ={0,}; Snprintf(debug_message, INTERFACE_STRING_LENGTH -1,"DEBUG!! ȹµæ ÇÏÀÓ = %I64u , BonusRatio = %d" , acquired_money, pPacket->hime_bonus_ratio ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, debug_message); #endif //_DEV_VER // ȹµæ ÇÏÀÓÀÌ ÀÖ´Ù´Â ¸Þ½ÃÁö¸¦ ¶ç¿î´Ù. GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT,chat_result, CHAT_TYPE_SYSTEM); // ½Àµæ ¾ÆÀÌÅÛ ¾Ë¸²ÀÌ ÄÑÁ® ÀÖÀ» °æ¿ì ¾Ë¸°´Ù. if( GAMEOPTION->GetPickUpItemNotify() ) { GameFramework::GetCurrentScene()->InserCenterTextMessage( chat_result, EVENT ); } if ( reward_info_vector_.empty() ) { break; } std::vector::iterator iter = reward_info_vector_.begin(); if ( pPacket->ranking_id == (*iter).ranking_id ) { std::vector::iterator it = ranking_reward_vector_.begin(); bool Is_search = false; for( ; it != ranking_reward_vector_.end(); ++it) { if ((*it).ranking_id == (*iter).ranking_id) { Is_search = true; break; } } if ( Is_search ) { // 2787 %s¿ùµå ·©Å· %sÀ§ ´Þ¼º º¸»óÀÌ Áö±ÞµÇ¾ú½À´Ï´Ù. TCHAR temp_string[INTERFACE_STRING_LENGTH] = {0,}; TCHAR mission_name[INTERFACE_STRING_LENGTH] = {0,}; TCHAR rank_string[INTERFACE_STRING_LENGTH] = {0,}; ZeroMemory(mission_name, sizeof(mission_name)); g_InterfaceManager.GetInterfaceString( (*it).mission_string, mission_name, INTERFACE_STRING_LENGTH ); _itoa(pPacket->reward_ranking, rank_string, 10); g_InterfaceManager.GetInterfaceStringFormat(temp_string, INTERFACE_STRING_LENGTH, 2787, mission_name, rank_string); GlobalFunc::OutputMsg_SysMsg(temp_string); } reward_info_vector_delete_check((*iter).ranking_id); } } break; case CG_MISSION_RANKING_REWARD_NAK: { Is_wait_receive_packet_ = false; MSG_CG_MISSION_RANKING_REWARD_NAK *pPacket = (MSG_CG_MISSION_RANKING_REWARD_NAK *)pMsg; _processErrorCode(pPacket->m_dwErrorCode); } break; case CG_MISSION_GET_MISSION_POINT_BRD: { MSG_CG_MISSION_GET_MISSION_POINT_BRD *pPacket = (MSG_CG_MISSION_GET_MISSION_POINT_BRD *)pMsg; g_InterfaceManager.GetInterfaceString(1462 , szTemp ,INTERFACE_STRING_LENGTH); //1462 ÀúÁÖ¹ÞÀº ¿µÈ¥À» ȹµæÇϼ̽À´Ï´Ù(Æ÷ÀÎÆ®·©Å· %dÁ¡ µî·Ï) Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, pPacket->m_dwPoint); GlobalFunc::OutputMsg_SysMsg(szMessage); if(pPacket->m_dwPoint && ((pPacket->m_dwPoint / c_iCheckPoint) >= 1)) // 1000 Á¡ ´ÜÀ§·Î °øÁö¸Þ½ÃÁö Ãâ·Â { //1463 À̹øÈ¸Â÷ Æ÷ÀÎÆ®·©Å·ÀÇ ´©ÀûÆ÷ÀÎÆ®°¡ %dÁ¡À» ³Ñ¾ú½À´Ï´Ù. \n·©Å·Àº ¸¶À»¿¡ ÀÖ´Â Æ÷ÀÎÆ®·©Å· °ü¸®ÀڷκÎÅÍ È®ÀÎÀÌ °¡´ÉÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString(1463 , szTemp ,INTERFACE_STRING_LENGTH); Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, pPacket->m_dwPoint); GlobalFunc::OutputMsg_SysMsg(szMessage); } } break; case CG_MISSION_POINT_CANNOT_REGISTER_BRD: { //5471 Æ÷ÀÎÆ®·©Å·:Æ÷ÀÎÆ®·©Å· ·¹º§±¸°£¿¡ Æ÷ÇÔµÇÁö ¾ÊÀº ij¸¯ÅÍ Á¸ÀçÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString(5471 , szMessage ,INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_TOP_SHOW, szMessage); } break; } } break; } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::_processErrorCode(DWORD dwErrorCode, eOUTPUT_MSG_TYPE type/* = eOUTPUT_MSG_CHAT*/) { TCHAR szMessage[INTERFACE_STRING_LENGTH] ={0,}; int iMessage = 0; switch(dwErrorCode) { case RC_RANKING_FAILED: // ¾Ë ¼ö ¾ø´Â ¿¡·¯ // 5481 ¹Ì¼Ç·©Å·: ¾Ë ¼ö ¾ø´Â ¿À·ùÇö»óÀÔ´Ï´Ù. iMessage = eST_MISSION_RANK_UNKNOWN_ERROR; break; case RC_RANKING_INVALID_STATE: // À߸øµÈ »óÅ // 5482 ¹Ì¼Ç·©Å·: À߸øµÈ »óÅÂÀÔ´Ï´Ù. iMessage = eST_MISSION_RANK_INVALID_STATUS; break; case RC_RANKING_ALREADY_REWARDED: // ÀÌ¹Ì º¸»ó ¹ÞÀº »óÅ // 5483 ¹Ì¼Ç·©Å·: ÀÌ¹Ì º¸»óÀ» ¹Þ¾Ò½À´Ï´Ù. iMessage = eST_MISSION_RANK_ALREADY_REWARDED; break; case RC_RANKING_DOING_TRANSACTION: // Æ®·£Àè¼Ç ÁøÇàÁß, ÀÌ¹Ì ´Ù¸¥ ÀÛ¾÷ ȤÀº ±× ÀÛ¾÷ÀÌ ÁøÇàÁßÀÓ ( ÆÐŶ 2¹øÀÏ °¡´É¼º! ) // 5484 ¹Ì¼Ç·©Å·: ó¸®ÁßÀÔ´Ï´Ù. iMessage = eST_MISSION_RANK_DOING_TRANSACTION; break; case RC_RANKING_NETWORK_ERROR_FOR_PORTAL: // Æ÷Å» ¼­¹ö°¡ ²÷¾îÁ® ÀÖ´Ù. ³×Æ®¿öÅ© Àå¾Ö·Î ÀϽà ±â´É ÁßÁö // 5485 ¹Ì¼Ç·©Å·: ³×Æ®¿öÅ© Àå¾Ö·Î ÀϽà ±â´ÉÁßÁö iMessage = eST_MISSION_RANK_NETWORK_PROBLEM; break; case RC_RANKING_NETWORK_ERROR_FOR_DBPROXY: // DBP ¼­¹ö°¡ ²÷¾îÁ® ÀÖ´Ù. ³×Æ®¿öÅ© Àå¾Ö·Î ÀϽà ±â´É ÁßÁö // 5485 ¹Ì¼Ç·©Å·: ³×Æ®¿öÅ© Àå¾Ö·Î ÀϽà ±â´ÉÁßÁö iMessage = eST_MISSION_RANK_NETWORK_PROBLEM; break; case RC_RANKING_NOT_SPACE_FOR_REWARD: // º¸»óÀ» ¹ÞÀ» ¾ÆÀÌÅÛ °ø°£ÀÌ ºÎÁ·ÇÏ´Ù. // 5486 ¹Ì¼Ç·©Å·: º¸»óÀ» ¹ÞÀ» Àκ¥Å丮 °ø°£ÀÌ ºÎÁ·ÇÕ´Ï´Ù. iMessage = eST_MISSION_RANK_NEDD_INVENTORY_SPACE; break; // Á¦ÇÑ Á¶°Ç °ü·Ã ¿¡·¯ case RC_RANKING_INSUFFICEINT_PARTY_MEMBER: // ·©Å·À» µî·ÏÇϱâ À§ÇÑ ÆÄƼ¸â¹ö(ÇöÀç5¸í)°¡ ºÎÁ·ÇÏ´Ù. // 5487 ¹Ì¼Ç·©Å·: ·©Å·À» µî·ÏÇϱâ À§ÇÑ ÆÄƼ¿øÀÌ ºÎÁ·ÇÕ´Ï´Ù. iMessage = eST_MISSION_RANK_REQUIRE_PARTY_MEMBER; break; case RC_RANKING_A_CLASS_OBTAIN_MAJORITY: // ÇÑ Å¬·¡½º°¡ °ú¹Ý¼ö¸¦ Â÷Áö ÇÏ¸é ¾ÈµÈ´Ù. // 5488 ¹Ì¼Ç·©Å·: ÇÑ Å¬·¡½º°¡ °ú¹Ý¼ö ÀÌ»óÀ» ±¸¼ºÇؼ­´Â ¾ÈµË´Ï´Ù. iMessage = eST_MISSION_RANK_ONE_CLASS_OVER_HALF; break; case RC_RANKING_DONT_INCLUDE_MISSION_LEVEL_AREA: // ¹Ì¼Ç·¹º§±¸°£¿¡ Æ÷ÇÔµÇÁö ¾Ê´Â Ç÷¹À̾ Á¸ÀçÇÑ´Ù. // 5489 ¹Ì¼Ç·©Å·: ¹Ì¼Ç·¹º§±¸°£¿¡ Æ÷ÇÔµÇÁö ¾Ê´Â ij¸¯ÅͰ¡ Á¸ÀçÇÕ´Ï´Ù. iMessage = eST_MISSION_RANK_INVALID_LEVEL_AREA; break; case RC_RANKING_INVALID_PARAM: // À߸øµÈ ÀÎÀÚÀÔ´Ï´Ù. // 5490 ¹Ì¼Ç·©Å·: À߸øµÈ ÀÎÀÚÀÔ´Ï´Ù. iMessage = eST_MISSION_RANK_INVALID_PARAMETER; break; case RC_RANKING_DONT_INCLUDE_RANKING: // ·©Å·¿¡ Æ÷ÇÔµÇÁö ¾Ê¾Ò½À´Ï´Ù. // 5491 ¹Ì¼Ç·©Å·: ·©Å·¿¡ Æ÷ÇÕµÇÁö ¾Ê¾Ò½À´Ï´Ù. iMessage = eST_MISSION_RANK_NOT_INClUDE; break; case RC_RANKING_INVALID_REWARD_INDEX: // º¸»ó À妽º°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù. // ¹Ì¼Ç·©Å·: º¸»ó À妽º°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù 5513 iMessage = 5513; // ½ºÆ®¸µ ¿äû break; case RC_RANKING_SETTLING_INFO: // ·©Å· »êÁ¤Áß, ·©Å·°ü·Ã ¼­ºñ½º ÁßÁöÁß // ¹Ì¼Ç·©Å·: ·©Å· »êÁ¤Áß, ·©Å·°ü·Ã ¼­ºñ½º ÁßÁöÁßÀÔ´Ï´Ù. 5514 iMessage = 5514; // ½ºÆ®¸µ ¿äû break; case RC_RANKING_UNSATISFY_KILL_MONSTER_NUM: //5510 ¹Ì¼Ç·©Å·:ÃÖ¼Ò ¸ó½ºÅÍ Å³ ¼ö°¡ ºÎÁ·ÇÕ´Ï´Ù. iMessage = 5510; break; // ¹Ì¼Ç·©Å·¸¦ º¸»ó¹ÞÀ» À¯Àú¸¦ ãÁö ¸øÇÏ¿´½À´Ï´Ù. case RC_RANKING_NOT_FIND_REWARD_USER: iMessage = 5511; break; // ¹Ì¼Ç·©Å·Á¤º¸¸¦ ãÁö ¸øÇÏ¿´½À´Ï´Ù. case RC_RANKING_NOT_FIND_RANKING_INFO: iMessage = 5512; break; case RC_RANKING_REWARD_FAIL_FATIGUE: iMessage = 6045; break; case RC_RANKING_NOT_REGIST_INVALID_PERIOD: #if defined (_JAPAN) // ÀϺ» ¿¹¿Üó¸® return; #else iMessage = 5512; #endif break; default: iMessage = 5481; // ¹Ì¼Ç·©Å·: ¾Ë ¼ö ¾ø´Â ¿À·ùÇö»óÀÔ´Ï´Ù. break; } g_InterfaceManager.GetInterfaceString( iMessage , szMessage ,INTERFACE_STRING_LENGTH); Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szMessage ); GlobalFunc::OutputMsg_Notice(type, szMessage); } //------------------------------------------------------------------------------ /** */ bool uiMissionRankMan2::IsMissionRanking(RANKINGNO no, int iRankSystemType) { RankingManager::LEVEL_AREA* pArea = GET_MISSION_RANK_MANAGER()->FindLVArea(no); if(pArea) { if((int)pArea->m_RankingType == iRankSystemType) return true; } return false; } //------------------------------------------------------------------------------ /** */ RANKINGID uiMissionRankMan2::GetSearchRankingId( RANKINGNO no , eRANKING_SYSTEM_TYPE type ) { #if defined(_NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR) RankingManager::LEVEL_AREA* level_area_ptr = GET_MISSION_RANK_MANAGER()->FindLVArea(no, type); if ( level_area_ptr ) { return static_cast(level_area_ptr->m_Id); } #else RankingManager::LEVEL_AREA* level_area_ptr = GET_MISSION_RANK_MANAGER()->FindLVArea(no); if ( level_area_ptr ) { if(static_cast(level_area_ptr->m_MissionNo) == no && level_area_ptr->m_RankingType == type) { return static_cast(level_area_ptr->m_Id); } } #endif // _NA_006802_20130819_REORGANIZATION_RANK_SYSTEM_MINOR return 0; } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::fame_data_and_weeks_and_member_data_clar() { ZeroMemory(&my_ranking_view_data_, sizeof(my_ranking_view_data_)); ZeroMemory(&pre_week_rank_view_data_, sizeof(pre_week_rank_view_data_)); ZeroMemory(¤t_week_rank_view_data_, sizeof(current_week_rank_view_data_)); ZeroMemory(&member_view_data_, sizeof(member_view_data_)); } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::reward_check() { if ( !reward_info_vector_.empty() ) { Is_can_reward_ = true; } else { Is_can_reward_ = false; } } //------------------------------------------------------------------------------ /** */ void uiMissionRankMan2::reward_info_vector_delete_check(RANKINGID id) { std::vector::iterator iter = reward_info_vector_.begin(); for ( ; iter != reward_info_vector_.end(); ) { if ((*iter).ranking_id == id) { iter = reward_info_vector_.erase(iter); if (reward_info_vector_.empty()) { Is_can_reward_ = false; if ( ui_rank_list_ptr_ ) { ui_rank_list_ptr_->set_reward_yellow_texture_show( FALSE ); } } break; } else { ++iter; } } } MISSIONNO uiMissionRankMan2::get_reward_id_to_mission_number( RANKINGID id ) { std::vector::iterator iter = ranking_reward_vector_.begin(); for ( ; iter != ranking_reward_vector_.end(); ) { if ( (*iter).ranking_id == id ) { return static_cast((*iter).mission_number); } else { ++iter; } } return 0; } bool uiMissionRankMan2::get_confirmed_member_party_key(const stMemberConfirmedInfo& confirmed_info) { std::list::iterator iter = confirmed_member_party_confirmed_list_.begin(); for ( ; iter != confirmed_member_party_confirmed_list_.end(); ++iter) { if ( (*iter).ranking_key == confirmed_info.ranking_key && (*iter).pending_ranking_type == confirmed_info.pending_ranking_type && (*iter).ranking_no == confirmed_info.ranking_no) { return true; } } return false; } #endif // _NA_006802_20130704_REORGANIZATION_RANK_SYSTEM #endif // _NA_008016_20150202_OLD_RANKING_SYSTEM