#include "SunClientPrecompiledHeader.h" #include "uiBattleScoreMan.h" #include "InterfaceManager.h" #include "uiBattleScoreSingle\uiBattleScoreSingle.h" #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH #else #include "uiBattleScoreDouble\uiBattleScoreDouble.h" #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH #include "uiBattleScoreBlood\uiBattleScoreBlood.h" #include "uiBattleScoreBattleGround\uiBattleScoreBattleGround.h" #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH #include "uiBattleScoreGoldRush\uiBattleScoreGoldRush.h" #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH #include "uiPartyMan\uiPartyMan.h" #include "Hero.h" #include "GlobalFunc.h" const DWORD IM_BATTLESCORE_MANAGER::DLG_BT_SINGLE = StrToWzID("0673"); #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH #else const DWORD IM_BATTLESCORE_MANAGER::DLG_BT_DOUBLE = StrToWzID("0674"); #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH const DWORD IM_BATTLESCORE_MANAGER::DLG_BT_BLOOD = StrToWzID("0675"); #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND const DWORD IM_BATTLESCORE_MANAGER::DLG_BT_GROUND = StrToWzID("0645"); #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH const DWORD IM_BATTLESCORE_MANAGER::DLG_BT_GOLDRUSH = StrToWzID("0981"); #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH uiBattleScoreMan::uiBattleScoreMan(InterfaceManager * pUIMAN) :uiBaseMan(pUIMAN) { } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::InitInfo() { switch(GetMode()) { case eBTS_MISSION: case eBTS_SSQ: { if(m_pBattleScoreSingle) { m_pBattleScoreSingle->InitInfo(); SetIsInit(true); } } break; #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND case eBTS_BATTLE_GROUND: { if(battle_score_battle_ground) { battle_score_battle_ground->InitInfo(); SetIsInit(true); } } break; #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH case eBTS_GOLD_RUSH: { if (battle_score_gold_rush_ptr_) { battle_score_gold_rush_ptr_->InitInfo(); SetIsInit(true); } } break; #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH case eBTS_HUNTING: { #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH #else if(m_pBattleScoreDouble) { if(!m_pBattleScoreDouble->IsVisible()) { m_pBattleScoreDouble->InitInfo(); SetIsInit(true); } } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH } case eBTS_PVP_PRIVATE: case eBTS_PVP_TEAM: case eBTS_DOMINATION: { SetIsInit(true); } default://eBTS_NONE_MODE { // ÇåÆÃÁ¸, ¹Ì¼ÇÁ¸ µî ¹Û¿¡¼­´Â ¿­Áö ¾Ê´Â´Ù. } break; }// switch } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::RefreshInfo(EXPTYPE add_experience, MONEY add_money) { switch(GetMode()) { case eBTS_MISSION: case eBTS_SSQ: { if(m_pBattleScoreSingle) { m_pBattleScoreSingle->RefreshInfo(add_experience, add_money); } } break; #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH #else case eBTS_HUNTING: { if(m_pBattleScoreDouble) { m_pBattleScoreDouble->RefreshInfo(); } } break; #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND case eBTS_BATTLE_GROUND: #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND case eBTS_PVP_PRIVATE: case eBTS_PVP_TEAM: case eBTS_DOMINATION: #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH case eBTS_GOLD_RUSH: #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH default://eBTS_NONE_MODE { // ÇåÆÃÁ¸, ¹Ì¼ÇÁ¸ µî ¹Û¿¡¼­´Â ¿­Áö ¾Ê´Â´Ù. } break; }// switch } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::Reset() { SetIsInit(false); set_first_open(true); ClearMemberData(); RefreshListCtrlData(); // ½Â¼ö 0À¸·Î ÃʱâÈ­ for(int i = 0; i < eTeamCNT; ++i) { SetWinPoint(0, (E_TEAM) i); } ClearSelection(); SetHeroTeam(0); // °³ÀÎÀüÀ¸·Î ÃʱâÈ­ } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::ToggleBattleScoreWindow() { if (IsBattleScoreWinOpen()) { ShowBattleScoreWin(); } else { SendPacketBattleResultSYN(); } } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::SendPacketBattleResultSYN() { MSG_CG_ZONE_PLAYER_BATTLE_RESULT_SYN packet; if (GetMode() == eBTS_DOMINATION) { if (m_pBattleScoreBlood->home_team_selected() == true) { packet.m_OwnerGuild = 0; } else { packet.m_OwnerGuild = 1; } } else { packet.m_OwnerGuild = 0; } GlobalFunc::SendPacket(CI_GAMESERVERIDX, &packet, sizeof (packet)); } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::PartyRefresh() { bool opened = false; switch (GetMode()) { case eBTS_MISSION: case eBTS_SSQ: case eBTS_PVP_TEAM: case eBTS_HUNTING: { if (m_pBattleScoreSingle && m_pBattleScoreSingle->IsVisible()) { opened = true; } } break; #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND case eBTS_BATTLE_GROUND: { if (battle_score_battle_ground && battle_score_battle_ground->IsVisible()) { opened = true; } } break; #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH case eBTS_GOLD_RUSH: { if (battle_score_gold_rush_ptr_ && battle_score_gold_rush_ptr_->IsVisible()) { opened = true; } } break; #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH default: { opened = false; } break; }// switch if(opened == true) { set_toggle_ui_open(true); SendPacketBattleResultSYN(); } } //------------------------------------------------------------------------------ /** */ bool uiBattleScoreMan::IsBattleScoreWinOpen()//(bool bIsOpen) { switch (GetMode()) { case eBTS_MISSION: case eBTS_SSQ: case eBTS_PVP_PRIVATE: { if (m_pBattleScoreSingle) { if (m_pBattleScoreSingle->IsVisible()) { return true; } else { return false; } } } break; case eBTS_HUNTING: case eBTS_PVP_TEAM: { #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH #else if (m_pBattleScoreDouble) { if (m_pBattleScoreDouble->IsVisible()) { return true; } else { return false; } } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH } break; case eBTS_DOMINATION: { if (m_pBattleScoreBlood) { if (m_pBattleScoreBlood->IsVisible()) { return true; } else { return false; } } } break; #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND case eBTS_BATTLE_GROUND: { if (battle_score_battle_ground) { if (battle_score_battle_ground->IsVisible()) { return true; } else { return false; } } } break; #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH case eBTS_GOLD_RUSH: { if (battle_score_gold_rush_ptr_) { if (battle_score_gold_rush_ptr_->IsVisible()) { return true; } else { return false; } } } break; #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH default://eBTS_NONE_MODE { return false; } break; }// switch return false; } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::ShowBattleScoreWin() { bool bIsOpen = toggle_ui_open(); switch(GetMode()) { case eBTS_MISSION: case eBTS_SSQ: case eBTS_PVP_PRIVATE: { if(m_pBattleScoreSingle) { if(!m_pBattleScoreSingle->IsVisible()) { m_pBattleScoreSingle->ShowInterface(TRUE); } else { if(bIsOpen == false) // ÀÌ °ªÀÌ trueÀÌ¸é ´ÝÁö ¾Ê´Â´Ù. { m_pBattleScoreSingle->ShowInterface(FALSE); } } } } break; case eBTS_HUNTING: case eBTS_PVP_TEAM: { #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH #else if(m_pBattleScoreDouble) { if(!m_pBattleScoreDouble->IsVisible()) { m_pBattleScoreDouble->ShowInterface(TRUE); } else { if(bIsOpen == false) // ÀÌ °ªÀÌ trueÀÌ¸é ´ÝÁö ¾Ê´Â´Ù. { m_pBattleScoreDouble->ShowInterface(FALSE); } } } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH } break; case eBTS_DOMINATION: { #ifdef _NA_006826_20130722_DOMINATION_RENEWAL #else if (m_pBattleScoreBlood) { if (m_pBattleScoreBlood->IsVisible() == false) { m_pBattleScoreBlood->ShowInterface(TRUE); } else { if (bIsOpen == false) // ÀÌ °ªÀÌ trueÀÌ¸é ´ÝÁö ¾Ê´Â´Ù. { m_pBattleScoreBlood->ShowInterface(FALSE); } } } #endif //_NA_006826_20130722_DOMINATION_RENEWAL } break; #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND case eBTS_BATTLE_GROUND: { if (battle_score_battle_ground) { if (battle_score_battle_ground->IsVisible() == false) { battle_score_battle_ground->ShowInterface(TRUE); } else { if (bIsOpen == false) // ÀÌ °ªÀÌ trueÀÌ¸é ´ÝÁö ¾Ê´Â´Ù. { battle_score_battle_ground->ShowInterface(FALSE); } } } } break; #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH case eBTS_GOLD_RUSH: { if (battle_score_gold_rush_ptr_) { if (battle_score_gold_rush_ptr_->IsVisible() == false) { battle_score_gold_rush_ptr_->ShowInterface(TRUE); } else { if (bIsOpen == false) // ÀÌ °ªÀÌ trueÀÌ¸é ´ÝÁö ¾Ê´Â´Ù. { battle_score_gold_rush_ptr_->ShowInterface(FALSE); } } } } break; #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH default://eBTS_NONE_MODE { // ÇåÆÃÁ¸, ¹Ì¼ÇÁ¸ µî ¹Û¿¡¼­´Â ¿­Áö ¾Ê´Â´Ù. } break; }// switch } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::ClearMemberData() { for(int i = eHomeTeam; i < eTeamCNT; ++i) { m_BTSMemberArray[i].Clear(); } SetMode(eBTS_NONE_MODE); } //------------------------------------------------------------------------------ /** */// ÇåÆÃ À̱ä ÈÄ °á°ú ÃʱâÈ­, AwayÆÀ ÃʱâÈ­, µ¥¹ÌÁöµî 0À¸·Î ÃʱâÈ­ void uiBattleScoreMan::ResetHuntingData() { m_BTSMemberArray[eAwayTeam].Clear(); int cnt = m_BTSMemberArray[eHomeTeam].Size(); for(int i = 0; i 0) { RefreshListCtrlData(); } } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::OnInitialize() { SetIsInit(false); SetMode(eBTS_NONE_MODE); ClearSelection(); for(int i = 0; i < eTeamCNT; ++i) { SetWinPoint(0, (E_TEAM) i); } m_iHeroTeam = 0; toggle_ui_open_ = true; m_pBattleScoreSingle = CreateUIDialog(IM_BATTLESCORE_MANAGER::DLG_BT_SINGLE, "Data\\Interface\\67_3_result_mission_pvp.iwz",this, TRUE); SUN_ASSERT(m_pBattleScoreSingle); #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH #else m_pBattleScoreDouble = CreateUIDialog(IM_BATTLESCORE_MANAGER::DLG_BT_DOUBLE, "Data\\Interface\\67_4_result_time_survival_death_pvp.iwz",this, TRUE); SUN_ASSERT(m_pBattleScoreDouble); #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH m_pBattleScoreBlood = CreateUIDialog(IM_BATTLESCORE_MANAGER::DLG_BT_BLOOD, "Data\\Interface\\67_5_result_blood.iwz",this, TRUE); SUN_ASSERT(m_pBattleScoreBlood); #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND battle_score_battle_ground = CreateUIDialog(IM_BATTLESCORE_MANAGER::DLG_BT_GROUND, "Data\\Interface\\64_5_chaos_result.iwz",this, TRUE); SUN_ASSERT(battle_score_battle_ground); #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH battle_score_gold_rush_ptr_ = CreateUIDialog(IM_BATTLESCORE_MANAGER::DLG_BT_GOLDRUSH, "Data\\Interface\\98_1_Gold_Rush.iwz", this, TRUE); #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::ClearSelection() { m_iCurTeam01Select = -1; m_iCurTeam02Select = -1; } //------------------------------------------------------------------------------ /** */ int uiBattleScoreMan::FindMember(DWORD character_guid, E_TEAM eTeam) { for(int i=0;i= 0 && size > 0) { m_BTSMemberArray[eTeam].Erase(index); } //Á¦°ÅÈÄ Á¤·ÄÇØÁà¾ßÇÔ SortbyList(); } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::ConnectMember(int index, E_TEAM eTeam) { unsigned int size = m_BTSMemberArray[eTeam].Size(); if (index >= 0 && size > 0) { m_BTSMemberArray[eTeam][index].bConnected = true; } } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::DisconnectMember(int index, E_TEAM eTeam) { unsigned int size = m_BTSMemberArray[eTeam].Size(); if(index >= 0 && size > 0) { m_BTSMemberArray[eTeam][index].bConnected = false; } } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::RefreshListCtrlData() { switch(GetMode()) { case eBTS_MISSION: case eBTS_SSQ: case eBTS_PVP_PRIVATE: { if(m_pBattleScoreSingle) { m_pBattleScoreSingle->_RefreshListCtrlData(m_BTSMemberArray[eHomeTeam]); } } break; case eBTS_HUNTING: case eBTS_PVP_TEAM: { #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH #else if(m_pBattleScoreDouble) { for(int i = eHomeTeam; i < eTeamCNT; ++i) { m_pBattleScoreDouble->_RefreshListCtrlData(m_BTSMemberArray[i], (E_TEAM)i); } } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH } break; case eBTS_DOMINATION: { if (m_pBattleScoreBlood) { if (m_pBattleScoreBlood->home_team_selected() == true) { m_pBattleScoreBlood->refresh_list_control_data(m_BTSMemberArray[eHomeTeam]); } else { m_pBattleScoreBlood->refresh_list_control_data(m_BTSMemberArray[eAwayTeam]); } } } break; #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND case eBTS_BATTLE_GROUND: { RefreshBattleGroundList(); } break; #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH case eBTS_GOLD_RUSH: { RefreshGoldRushList(); } break; #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH } } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::NetworkProc( MSG_BASE * pMsg ) { if (pMsg->m_byCategory == CG_ZONE) { switch (pMsg->m_byProtocol) { case CG_ZONE_INSERT_BATTLE_PLAYER_CMD: { int player_count = 0; int list_index = 0; WORD team_index = (WORD)eHomeTeam; int find_index = -1; MSG_CG_ZONE_INSERT_BATTLE_PLAYER_CMD* battle_player_packet = (MSG_CG_ZONE_INSERT_BATTLE_PLAYER_CMD*)pMsg; BATTLESCORE_DATA battle_player_data; memset(&battle_player_data, 0, sizeof(BATTLESCORE_DATA)); if (battle_player_packet != NULL) { player_count = battle_player_packet->m_ZonePlayers.m_PlayerCount; } if (player_count <= 0 || player_count > MAX_PLAYER) { player_count = 0; } for (list_index = 0; list_index < player_count; ++list_index) { battle_player_data.dwCharGuid = battle_player_packet->m_ZonePlayers.m_Info[list_index].CharGuid; battle_player_data.byClassCode = battle_player_packet->m_ZonePlayers.m_Info[list_index].byClass; battle_player_data.wLevel = battle_player_packet->m_ZonePlayers.m_Info[list_index].byLevel; battle_player_data.name = battle_player_packet->m_ZonePlayers.m_Info[list_index].szName; team_index = battle_player_packet->m_ZonePlayers.m_Info[list_index].wTeam; battle_player_data.gender = battle_player_packet->m_ZonePlayers.m_Info[list_index].gender; battle_player_data.bConnected = true; battle_player_data.dwTotalDamageByEnemy = 0; battle_player_data.dwTotalDamageToEnemy = 0; battle_player_data.dwTotalHealToParty = 0; battle_player_data.dwMaxDamageToEnemy = 0; battle_player_data.wKillCount = 0; battle_player_data.wDeadCount = 0; #ifdef _NA_006633_20130415_ADD_BATTLEGROUND_ASSIST battle_player_data.wAssistCount = 0; #endif // _NA_006633_20130415_ADD_BATTLEGROUND_ASSIST #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH battle_player_data.gold_point_ = 0; #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH // Áߺ¹µÇ¸é ÀÌÀü°ÍÀ» Áö¿î´Ù(³ª°¬´Ù µé¾î¿Â °æ¿ì) for (int team_temp_index = eHomeTeam; team_temp_index < eTeamCNT; ++team_temp_index) { find_index = FindMember(battle_player_data.dwCharGuid, (E_TEAM)team_temp_index); if (find_index >= 0) { RemoveMember(find_index, (E_TEAM)team_temp_index); RefreshListCtrlData(); break; } } if (team_index < eTeamCNT) { m_BTSMemberArray[team_index].PushBack(battle_player_data); } } // ÃÖÃÊ ÆÐŶ¿¡¼­¸¸ ³ª¸¦ ¸ÇÀ§·Î Á¤·Ä if (first_open()) { set_first_open(false); // ³ª¸¦ ã´Â´Ù const TCHAR* hero_name = g_pHero->GetName(); for (int team_temp_index = eHomeTeam; team_temp_index < eTeamCNT; ++team_temp_index) { find_index = FindMemberToName(hero_name, (E_TEAM)team_temp_index); if (find_index >= 0) { // swap BATTLESCORE_DATA temp_player = m_BTSMemberArray[team_temp_index][0]; m_BTSMemberArray[team_temp_index][0] = m_BTSMemberArray[team_temp_index][find_index]; m_BTSMemberArray[team_temp_index][find_index] = temp_player; break; } } } // ÆÀ±¸ºÐÀ» À§ÇØ ÀÌ ÆÐŶÀ» ¹Þ±âÀü¿¡ GetParty()°¡ ¸ÕÀú È£ÃâµÈ »óÅ¿©¾ß ÇÑ´Ù. } break; case CG_ZONE_REMOVE_BATTLE_PLAYER_CMD: { MSG_CG_ZONE_REMOVE_BATTLE_PLAYER_CMD* battle_player_packet = (MSG_CG_ZONE_REMOVE_BATTLE_PLAYER_CMD*)pMsg; int find_index = -1; CHARGUID player_guid = 0; BYTE disconnect_type = 0; int player_count = battle_player_packet->m_ZonePlayers.m_PlayerCount; for (int player_index = 0; player_index < player_count; ++player_index) { player_guid = battle_player_packet->m_ZonePlayers.m_Info[player_index].CharGuid; disconnect_type = battle_player_packet->m_ZonePlayers.m_Info[player_index].AbNormalDisconnect; for (int team_index = eHomeTeam; team_index < eTeamCNT; ++team_index) { find_index = FindMember(player_guid, (E_TEAM)team_index); if (find_index >= 0) { // Á¡·ÉÀüÀÎ °æ¿ì´Â »èÁ¦, ±×¿Ü´Â Á¢¼ÓÁ¾·á if (GetMode() == eBTS_DOMINATION) { RemoveMember(find_index, (E_TEAM)team_index); } else { DisconnectMember(find_index, (E_TEAM)team_index); } RefreshListCtrlData(); break; }//if }//for }//for }//case break; case CG_ZONE_PLAYER_BATTLE_RESULT_ACK: { MSG_CG_ZONE_PLAYER_BATTLE_RESULT_ACK* battle_player_packet = (MSG_CG_ZONE_PLAYER_BATTLE_RESULT_ACK*)pMsg; int find_index = -1; CHARGUID player_guid = 0; int player_count = battle_player_packet->m_ZonePlayers.m_PlayerCount; for (int player_index = 0; player_index < player_count; ++player_index) { player_guid = battle_player_packet->m_ZonePlayers.m_Info[player_index].CharGuid; for (int team_index = eHomeTeam; team_index < eTeamCNT; ++team_index) { find_index = FindMember(player_guid, (E_TEAM)team_index); if (find_index >= 0) { m_BTSMemberArray[team_index][find_index].dwTotalDamageByEnemy = battle_player_packet->m_ZonePlayers.m_Info[player_index].dwTotalDamageByEnemy; m_BTSMemberArray[team_index][find_index].dwTotalDamageToEnemy = battle_player_packet->m_ZonePlayers.m_Info[player_index].dwTotalDamageToEnemy; m_BTSMemberArray[team_index][find_index].dwTotalHealToParty = battle_player_packet->m_ZonePlayers.m_Info[player_index].dwTotalHealToParty; m_BTSMemberArray[team_index][find_index].wDeadCount = battle_player_packet->m_ZonePlayers.m_Info[player_index].wDeadCount; m_BTSMemberArray[team_index][find_index].wKillCount = battle_player_packet->m_ZonePlayers.m_Info[player_index].wKillCount; m_BTSMemberArray[team_index][find_index].wLevel = battle_player_packet->m_ZonePlayers.m_Info[player_index].wLevel; m_BTSMemberArray[team_index][find_index].dwMaxDamageToEnemy = battle_player_packet->m_ZonePlayers.m_Info[player_index].dwMaxDamageToEnemy; #ifdef _NA_006633_20130415_ADD_BATTLEGROUND_ASSIST m_BTSMemberArray[team_index][find_index].wAssistCount = battle_player_packet->m_ZonePlayers.m_Info[player_index].assist_count; #endif // _NA_006633_20130415_ADD_BATTLEGROUND_ASSIST #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND if (GetMode() == eBTS_BATTLE_GROUND) { m_BTSMemberArray[team_index][find_index].strongpoint_attack = battle_player_packet->m_ZonePlayers.m_Info[player_index].strongpoint_attack; m_BTSMemberArray[team_index][find_index].strongpoint_defense = battle_player_packet->m_ZonePlayers.m_Info[player_index].strongpoint_defense; m_BTSMemberArray[team_index][find_index].series_kill = battle_player_packet->m_ZonePlayers.m_Info[player_index].series_kill; } #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH if (GetMode() == eBTS_GOLD_RUSH) { m_BTSMemberArray[team_index][find_index].gold_point_ = battle_player_packet->m_ZonePlayers.m_Info[player_index].gold_point; } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH break; } } } RefreshListCtrlData(); uiBattleScoreMan* battle_score_manager_ptr = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_BATTLE_SCORE)); battle_score_manager_ptr->ShowBattleScoreWin(); } break; case CG_ZONE_CHUNTING_BATTLE_INFO_CMD: { MSG_CG_ZONE_CHUNTING_BATTLE_INFO_CMD* battle_player_packet = (MSG_CG_ZONE_CHUNTING_BATTLE_INFO_CMD*)pMsg; SetWinPoint(battle_player_packet->m_HomeTeamWinCount, eHomeTeam); SetWinPoint(battle_player_packet->m_AwayTeamWinCount, eAwayTeam); RefreshInfo(0, 0); } break; case CG_ZONE_PLAYER_BATTLE_RESULT_NAK: { #ifdef _DEV_VER GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, "CG_ZONE_PLAYER_BATTLE_RESULT_NAK: Can not open Battle Score Window"); #endif } break; }//switch } } //------------------------------------------------------------------------------ /** */ int uiBattleScoreMan::GetPartyMember() { BATTLESCORE_DATA stData; memset(&stData, 0, sizeof(BATTLESCORE_DATA)); if (!g_pHero) { return 0; } int team = eHomeTeam; //if(GetMode() == eBTS_PVP_TEAM && g_pHero->GetTeam() == 2) // 2È«ÆÀ, 1ûÆÀ if (GetHeroTeam() == 2) { team = eAwayTeam; } if (g_pHero->IsParty()) { uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); _PARTY_MEMBER_INFO rMember; if (partyMan) { int partyNum = partyMan->GetPartyNum(); for (int i = 0; i < partyNum; ++i) { rMember = partyMan->GetPartyMemberInfoFromIndex(i)->Get(); stData.dwCharGuid = rMember.m_dwMemberKey; stData.name = rMember.m_szCharName; stData.wLevel = rMember.m_wLevel; stData.byClassCode = rMember.m_byClassType; stData.bConnected = true; if ((stData.dwCharGuid != 0) && (FindMember(stData.dwCharGuid, (E_TEAM)team) < 0)) { m_BTSMemberArray[team].PushBack(stData); } } } } else { // ÀÚ½ÅÁ¤º¸(1ÀÎ ÆÄƼ, È¥ÀÚÀÎ °æ¿ì) stData.dwCharGuid = g_pHero->GetObjectKey(); stData.name = g_pHero->GetName(); stData.wLevel = g_pHero->GetLevel(); stData.byClassCode = g_pHero->GetClass(); stData.bConnected = true; if ((stData.dwCharGuid != 0) && (FindMember(stData.dwCharGuid, (E_TEAM)team) < 0)) { m_BTSMemberArray[team].PushBack(stData); } } return m_BTSMemberArray[team].Size(); } //------------------------------------------------------------------------------ /** ±âº» ¼ÒÆ® */ bool _BaseSort_Name(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(bOrderBy) { return (a.name < b.name); } else { return (a.name >= b.name); } } //------------------------------------------------------------------------------ /** */ bool _BaseSort_Lv(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(a.wLevel == b.wLevel) // °°Àº °æ¿ì ´Ù½Ã À̸§¼øÀ¸·Î Á¤·Ä { return (a.name < b.name); } if(bOrderBy) { return (a.wLevel < b.wLevel); } else { return (a.wLevel >= b.wLevel); } } //------------------------------------------------------------------------------ /** */ bool _BaseSort_Class(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { int j; TCHAR szTemp[2][INTERFACE_STRING_LENGTH] = {0,}; for(int i = 0; i < 2; ++i) { if(i == 0) j = a.byClassCode; else if(i == 1) j = b.byClassCode; else j = -1; Snprintf(szTemp[i], INTERFACE_STRING_LENGTH, _T("%s"), GlobalFunc::GetClassString(static_cast(j))); } if(strcmp(szTemp[0], szTemp[1])==0) // °°Àº °æ¿ì ´Ù½Ã À̸§¼øÀ¸·Î Á¤·Ä { return (a.name < b.name); } if(bOrderBy) { return (strcmp(szTemp[0], szTemp[1])<0); } else { return (strcmp(szTemp[0], szTemp[1])>=0); } } //------------------------------------------------------------------------------ /** */ bool _BaseSort_MaxDmg(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(a.dwMaxDamageToEnemy == b.dwMaxDamageToEnemy) // °°Àº °æ¿ì ´Ù½Ã À̸§¼øÀ¸·Î Á¤·Ä { return (a.name < b.name); } if(bOrderBy) { return (a.dwMaxDamageToEnemy < b.dwMaxDamageToEnemy); } else { return (a.dwMaxDamageToEnemy >= b.dwMaxDamageToEnemy); } } //------------------------------------------------------------------------------ /** */ bool _BaseSort_GiveDmg(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(a.dwTotalDamageToEnemy == b.dwTotalDamageToEnemy) // °°Àº °æ¿ì ´Ù½Ã À̸§¼øÀ¸·Î Á¤·Ä { return (a.name < b.name); } if(bOrderBy) { return (a.dwTotalDamageToEnemy < b.dwTotalDamageToEnemy); } else { return (a.dwTotalDamageToEnemy >= b.dwTotalDamageToEnemy); } } //------------------------------------------------------------------------------ /** */ bool _BaseSort_GetDmg(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(a.dwTotalDamageByEnemy == b.dwTotalDamageByEnemy) // °°Àº °æ¿ì ´Ù½Ã À̸§¼øÀ¸·Î Á¤·Ä { return (a.name < b.name); } if(bOrderBy) { return (a.dwTotalDamageByEnemy < b.dwTotalDamageByEnemy); } else { return (a.dwTotalDamageByEnemy >= b.dwTotalDamageByEnemy); } } //------------------------------------------------------------------------------ /** */ bool _BaseSort_Heal(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(a.dwTotalHealToParty == b.dwTotalHealToParty) // °°Àº °æ¿ì ´Ù½Ã À̸§¼øÀ¸·Î Á¤·Ä { return (a.name < b.name); } if(bOrderBy) { return (a.dwTotalHealToParty < b.dwTotalHealToParty); } else { return (a.dwTotalHealToParty >= b.dwTotalHealToParty); } } //------------------------------------------------------------------------------ /** */ bool _BaseSort_Kill(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(a.wKillCount == b.wKillCount) // °°Àº °æ¿ì ´Ù½Ã À̸§¼øÀ¸·Î Á¤·Ä { return (a.name < b.name); } if(bOrderBy) { return (a.wKillCount < b.wKillCount); } else { return (a.wKillCount >= b.wKillCount); } } //------------------------------------------------------------------------------ /** */ bool _BaseSort_Die(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(a.wDeadCount == b.wDeadCount) // °°Àº °æ¿ì ´Ù½Ã À̸§¼øÀ¸·Î Á¤·Ä { return (a.name < b.name); } if(bOrderBy) { return (a.wDeadCount < b.wDeadCount); } else { return (a.wDeadCount >= b.wDeadCount); } } //------------------------------------------------------------------------------ /** */ #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND bool _BaseSort_StrongPoint_Attack(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(a.strongpoint_attack == b.strongpoint_attack) // °°Àº °æ¿ì ´Ù½Ã À̸§¼øÀ¸·Î Á¤·Ä { return (a.name < b.name); } if(bOrderBy) { return (a.strongpoint_attack < b.strongpoint_attack); } else { return (a.strongpoint_attack >= b.strongpoint_attack); } } //------------------------------------------------------------------------------ /** */ bool _BaseSort_StrongPoint_Defense(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(a.strongpoint_defense == b.strongpoint_defense) // °°Àº °æ¿ì ´Ù½Ã À̸§¼øÀ¸·Î Á¤·Ä { return (a.name < b.name); } if(bOrderBy) { return (a.strongpoint_defense < b.strongpoint_defense); } else { return (a.strongpoint_defense >= b.strongpoint_defense); } } //------------------------------------------------------------------------------ /** */ bool _BaseSort_Series_Kill(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(a.series_kill == b.series_kill) // °°Àº °æ¿ì ´Ù½Ã À̸§¼øÀ¸·Î Á¤·Ä { return (a.name < b.name); } if(bOrderBy) { return (a.series_kill < b.series_kill); } else { return (a.series_kill >= b.series_kill); } } #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND //------------------------------------------------------------------------------ #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH bool _BaseSort_Gold_Point(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b, bool bOrderBy) { if(bOrderBy) { return (a.gold_point_ < b.gold_point_); } else { if (a.gold_point_ == b.gold_point_) { if (a.wKillCount == b.wKillCount) { if (a.wDeadCount == b.wDeadCount) { if (a.dwTotalDamageToEnemy == b.dwTotalDamageToEnemy) { if (a.dwTotalHealToParty == b.dwTotalHealToParty) { return (a.name < b.name); } else { return (a.dwTotalHealToParty > b.dwTotalHealToParty); } } else { return (a.dwTotalDamageToEnemy > b.dwTotalDamageToEnemy); } } else { return (a.wDeadCount < b.wDeadCount); } } else { return (a.wKillCount > b.wKillCount); } } else { return (a.gold_point_ > b.gold_point_); } } } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH //------------------------------------------------------------------------------ /** ¿À¸§Â÷¼ø GetOrderBy()==true / ³»¸²Â÷¼ø GetOrderBy()==false */ uiBattleScoreMan* GetBTSMan() { static uiBattleScoreMan* pBTSMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_BATTLE_SCORE)); return pBTSMan; } bool _Sort_Name(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_Name(a, b, GetBTSMan()->GetOrderBy()); } bool _Sort_Lv(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_Lv(a, b, GetBTSMan()->GetOrderBy()); } bool _Sort_Class(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_Class(a, b, GetBTSMan()->GetOrderBy()); } bool _Sort_MaxDmg(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_MaxDmg(a, b, GetBTSMan()->GetOrderBy()); } bool _Sort_GiveDmg(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_GiveDmg(a, b, GetBTSMan()->GetOrderBy()); } bool _Sort_GetDmg(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_GetDmg(a, b, GetBTSMan()->GetOrderBy()); } bool _Sort_Heal(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_Heal(a, b, GetBTSMan()->GetOrderBy()); } bool _Sort_Kill(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_Kill(a, b, GetBTSMan()->GetOrderBy()); } bool _Sort_Die(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_Die(a, b, GetBTSMan()->GetOrderBy()); } #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND bool _Sort_StrongPoint_Attack(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_StrongPoint_Attack(a, b, GetBTSMan()->GetOrderBy()); } bool _Sort_StrongPoint_Defense(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_StrongPoint_Defense(a, b, GetBTSMan()->GetOrderBy()); } bool _Sort_Series_Kill(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_Series_Kill(a, b, GetBTSMan()->GetOrderBy()); } #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH bool _Sort_Gold_Point(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b) { return _BaseSort_Gold_Point(a, b, GetBTSMan()->GetOrderBy()); } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH //------------------------------------------------------------------------------ /** */ void _SortNone(nArray &Array) { if(g_pHero == NULL) { return; } BATTLESCORE_DATA temp; if(Array.Size() > 2) { temp = Array[0]; for(int i = 0; i < Array.Size(); ++i) { if (Array[i].dwCharGuid == g_pHero->GetCharInfo()->m_CharGuid) { Array[0] = Array[i]; Array[i] = temp; } } } } //------------------------------------------------------------------------------ /** */ void uiBattleScoreMan::SortbyList() { bool (*fpSortBy)(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b); // (OrderBy) true ¿À¸§Â÷¼ø, false ³»¸²Â÷¼ø //SetOrderBy(OrderBy); bool OrderBy = GetOrderBy(); int iSortBy = GetSortBy(); for(int i = eHomeTeam; i < eTeamCNT; ++i) { if(m_BTSMemberArray[i].Size() <= 1) { continue; } switch(iSortBy) { case BTSCROE_LIST_RANK: fpSortBy = NULL; // hero°¡ 1µî ³ª¸ÓÁø »ó°ü¾øÀ½ _SortNone(m_BTSMemberArray[i]); break; case BTSCROE_LIST_ID: fpSortBy = _Sort_Name; break; case BTSCROE_LIST_LV: fpSortBy = _Sort_Lv; break; case BTSCROE_LIST_CLASS: fpSortBy = _Sort_Class; break; case BTSCROE_LIST_MAXDAMAGE: fpSortBy = _Sort_MaxDmg; break; case BTSCROE_LIST_GIVEDAMAGE: fpSortBy = _Sort_GiveDmg; break; case BTSCROE_LIST_GETDAMAGE: fpSortBy = _Sort_GetDmg; break; case BTSCROE_LIST_HEAL: fpSortBy = _Sort_Heal; break; case BTSCROE_LIST_KILL: fpSortBy = _Sort_Kill; break; case BTSCROE_LIST_DIE: fpSortBy = _Sort_Die; break; #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND case BTSCROE_LIST_BATTLE_GROUND_POINT_ATTACK: fpSortBy = _Sort_StrongPoint_Attack; break; case BTSCROE_LIST_BATTLE_GROUND_POINT_DEFENSE: fpSortBy = _Sort_StrongPoint_Defense; break; case BTSCROE_LIST_BATTLE_GROUND_SERIES_KILL: fpSortBy = _Sort_Series_Kill; break; #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH case BTSCROE_LIST_GOLDRUSH_GOLDPOINT: fpSortBy = _Sort_Gold_Point; break; #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH default: fpSortBy = NULL; break; } if(fpSortBy != NULL) { std::sort(m_BTSMemberArray[i].Begin(), m_BTSMemberArray[i].End(), fpSortBy); } } } #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND void uiBattleScoreMan::RefreshBattleGroundList() { if (battle_score_battle_ground) { if (battle_score_battle_ground->select_tap() == uiBattleScoreBattleGround::TAB_BUTTON_ALL_TEAM) { nArray all_team_array; AllMemberScoreArray(&all_team_array); AllMemberSortbyList(all_team_array); battle_score_battle_ground->refresh_list_control_data(all_team_array); } else if (battle_score_battle_ground->select_tap() == uiBattleScoreBattleGround::TAB_BUTTON_HOME_TEAM) { SortbyList(); #ifdef _NA_006620_20130402_GM_BATTLE_GROUND_EVENT_GAME battle_score_battle_ground->refresh_list_control_data(m_BTSMemberArray[eHomeTeam]); #else //ui»ó ºí·ç ÀÚ¸® if (g_pHero && (g_pHero->GetTeam() == kBlue)) { battle_score_battle_ground->refresh_list_control_data(m_BTSMemberArray[eHomeTeam]); } else { battle_score_battle_ground->refresh_list_control_data(m_BTSMemberArray[eAwayTeam]); } #endif //_NA_006620_20130402_GM_BATTLE_GROUND_EVENT_GAME } else { SortbyList(); #ifdef _NA_006620_20130402_GM_BATTLE_GROUND_EVENT_GAME battle_score_battle_ground->refresh_list_control_data(m_BTSMemberArray[eAwayTeam]); #else //ui»ó ·¹µå ÀÚ¸® if (g_pHero && (g_pHero->GetTeam() == kRed)) { battle_score_battle_ground->refresh_list_control_data(m_BTSMemberArray[eHomeTeam]); } else { battle_score_battle_ground->refresh_list_control_data(m_BTSMemberArray[eAwayTeam]); } #endif //_NA_006620_20130402_GM_BATTLE_GROUND_EVENT_GAME } } } #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH void uiBattleScoreMan::RefreshGoldRushList() { if(battle_score_gold_rush_ptr_) { // ¼ÒÆÃ bool is_sort = false; this->SetSortBy(uiBattleScoreMan::BTSCROE_LIST_GOLDRUSH_GOLDPOINT); this->SetOrderBy(is_sort); this->SortbyList(); for(int i = eHomeTeam; i < eTeamCNT; ++i) { battle_score_gold_rush_ptr_->_RefreshListCtrlData(m_BTSMemberArray[i], (E_TEAM)i); } } } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH void uiBattleScoreMan::AllMemberScoreArray(nArray* all_member_array) { //¸ðµç ÆÀ ¸â¹ö Á¡¼ö if (all_member_array == NULL) { return; } all_member_array->Clear(); for (int i = eHomeTeam; i < eTeamCNT; ++i) { if (m_BTSMemberArray[i].Size() < 1) { continue; } for (int j = 0; j < m_BTSMemberArray[i].Size(); ++j) { all_member_array->PushBack(m_BTSMemberArray[i][j]); } } } void uiBattleScoreMan::AllMemberSortbyList(nArray& all_member_array) { bool (*fpSortBy)(const BATTLESCORE_DATA &a, const BATTLESCORE_DATA &b); // (OrderBy) true ¿À¸§Â÷¼ø, false ³»¸²Â÷¼ø //SetOrderBy(OrderBy); bool OrderBy = GetOrderBy(); int iSortBy = GetSortBy(); if(all_member_array.Size() <= 1) { return; } switch(iSortBy) { case BTSCROE_LIST_RANK: fpSortBy = NULL; // hero°¡ 1µî ³ª¸ÓÁø »ó°ü¾øÀ½ _SortNone(all_member_array); break; case BTSCROE_LIST_ID: fpSortBy = _Sort_Name; break; case BTSCROE_LIST_LV: fpSortBy = _Sort_Lv; break; case BTSCROE_LIST_CLASS: fpSortBy = _Sort_Class; break; case BTSCROE_LIST_MAXDAMAGE: fpSortBy = _Sort_MaxDmg; break; case BTSCROE_LIST_GIVEDAMAGE: fpSortBy = _Sort_GiveDmg; break; case BTSCROE_LIST_GETDAMAGE: fpSortBy = _Sort_GetDmg; break; case BTSCROE_LIST_HEAL: fpSortBy = _Sort_Heal; break; case BTSCROE_LIST_KILL: fpSortBy = _Sort_Kill; break; case BTSCROE_LIST_DIE: fpSortBy = _Sort_Die; break; case BTSCROE_LIST_BATTLE_GROUND_POINT_ATTACK: fpSortBy = _Sort_StrongPoint_Attack; break; case BTSCROE_LIST_BATTLE_GROUND_POINT_DEFENSE: fpSortBy = _Sort_StrongPoint_Defense; break; case BTSCROE_LIST_BATTLE_GROUND_SERIES_KILL: fpSortBy = _Sort_Series_Kill; break; default: fpSortBy = NULL; break; } if(fpSortBy != NULL) { std::sort(all_member_array.Begin(), all_member_array.End(), fpSortBy); } } void uiBattleScoreMan::EnableBattleGroundExitButton() { if (battle_score_battle_ground) { battle_score_battle_ground->enable_exit_button(true); } } void uiBattleScoreMan::EnableGoldRushExitButton() { if (battle_score_gold_rush_ptr_) { battle_score_gold_rush_ptr_->enable_exit_button(true); } } #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH int uiBattleScoreMan::get_team_gold_point( E_TEAM eTeam ) { int add_int = 0; int cnt = m_BTSMemberArray[eTeam].Size(); for(int i = 0; i