#include "SunClientPrecompiledHeader.h" #ifdef _DH_BATTLEZONE2_ #include "BattlezoneMissionTreeParser.h" #include "uiBattlezone2Man/uiBattlezone2Man.h" #include "uiBattlezone2Lobby/uiBattlezone2Lobby.h" #include "uiBattlezone2List/uiBattlezone2List.h" #include "uiBattlezone2Tree/uiBattlezone2Tree.h" #include "UserSlot.h" #include "GlobalFunc.h" #include "Hero.h" #include "ObjectManager.h" #include "SkillInfoParser.h" #include "map.h" #include "BattleScene.h" #include "uiPartyMan/uiPartyMan.h" #include "GameFunc.h" #include "ItemShareSystem.h" #include "uiSystemMan/uiSystemMan.h" #include "GameConst_Color.h" #include "ChatDialog.h" #include "uiChatMan/uiChatMan_def.h" #include "uiPartyMan/uiPartyMan.h" #include "CastDialog.h" #include "AppearanceResourceCode.h" #include "uiToolTipMan/uiToolTipMan.h" #include "Mouse.h" #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND #include "ChaosSystem/ChaosSystemMan.h" #include "Application.h" #endif //_NA_008679_20160202_REWORK_BATTLEGROUND #define WAIT_TIME 5 #define MAX_PLAYER_SLOT 10 //------------------------------------------------------------------------------ void uiBattlezone2Lobby::RegisterControl() { RegisterControlPosition(StrToWzID("B004"), kControl_Button_B004); RegisterControlPosition(StrToWzID("B000"), kControl_Button_B000); RegisterControlPosition(StrToWzID("B006"), kControl_Button_B006); RegisterControlPosition(StrToWzID("B010"), kControl_Button_B010); RegisterControlPosition(StrToWzID("B001"), kControl_Button_B001); RegisterControlPosition(StrToWzID("B025"), kControl_Button_B025); RegisterControlPosition(StrToWzID("B026"), kControl_Button_B026); RegisterControlPosition(StrToWzID("B027"), kControl_Button_B027); RegisterControlPosition(StrToWzID("B028"), kControl_Button_B028); RegisterControlPosition(StrToWzID("B029"), kControl_Button_B029); RegisterControlPosition(StrToWzID("B030"), kControl_Button_B030); RegisterControlPosition(StrToWzID("B031"), kControl_Button_B031); RegisterControlPosition(StrToWzID("B032"), kControl_Button_B032); RegisterControlPosition(StrToWzID("B033"), kControl_Button_B033); RegisterControlPosition(StrToWzID("B002"), kControl_Button_B002); RegisterControlPosition(StrToWzID("B034"), kControl_Button_B034); RegisterControlPosition(StrToWzID("B035"), kControl_Button_B035); RegisterControlPosition(StrToWzID("B036"), kControl_Button_B036); RegisterControlPosition(StrToWzID("B037"), kControl_Button_B037); RegisterControlPosition(StrToWzID("B038"), kControl_Button_B038); RegisterControlPosition(StrToWzID("B039"), kControl_Button_B039); RegisterControlPosition(StrToWzID("B040"), kControl_Button_B040); RegisterControlPosition(StrToWzID("B041"), kControl_Button_B041); RegisterControlPosition(StrToWzID("B042"), kControl_Button_B042); RegisterControlPosition(StrToWzID("B003"), kControl_Button_B003); RegisterControlPosition(StrToWzID("B005"), kControl_Button_B005);//Àӽà º¯°æ ¹öư RegisterControlPosition(StrToWzID("T007"), kControl_Text_T007);//¹Ì¼Ç¸í RegisterControlPosition(StrToWzID("S001"), kControl_Text_S001); RegisterControlPosition(StrToWzID("S000"), kControl_Text_S000); RegisterControlPosition(StrToWzID("T001"), kControl_Text_T001);//¹æ¹øÈ£ RegisterControlPosition(StrToWzID("T002"), kControl_Text_T002); RegisterControlPosition(StrToWzID("T003"), kControl_Text_T003); RegisterControlPosition(StrToWzID("T008"), kControl_Text_T008); RegisterControlPosition(StrToWzID("T010"), kControl_Text_T010); RegisterControlPosition(StrToWzID("T009"), kControl_Text_T009); RegisterControlPosition(StrToWzID("T011"), kControl_Text_T011); RegisterControlPosition(StrToWzID("T004"), kControl_Text_T004); RegisterControlPosition(StrToWzID("T201"), kControl_Text_T201);//·¹º§ 1 RegisterControlPosition(StrToWzID("T202"), kControl_Text_T202); RegisterControlPosition(StrToWzID("T203"), kControl_Text_T203); RegisterControlPosition(StrToWzID("T204"), kControl_Text_T204); RegisterControlPosition(StrToWzID("T205"), kControl_Text_T205); RegisterControlPosition(StrToWzID("T206"), kControl_Text_T206); RegisterControlPosition(StrToWzID("T207"), kControl_Text_T207); RegisterControlPosition(StrToWzID("T208"), kControl_Text_T208); RegisterControlPosition(StrToWzID("T209"), kControl_Text_T209); RegisterControlPosition(StrToWzID("T210"), kControl_Text_T210);//·¹º§10 RegisterControlPosition(StrToWzID("T101"), kControl_Text_T101);//À̸§1 RegisterControlPosition(StrToWzID("T102"), kControl_Text_T102); RegisterControlPosition(StrToWzID("T103"), kControl_Text_T103); RegisterControlPosition(StrToWzID("T104"), kControl_Text_T104); RegisterControlPosition(StrToWzID("T105"), kControl_Text_T105); RegisterControlPosition(StrToWzID("T106"), kControl_Text_T106); RegisterControlPosition(StrToWzID("T107"), kControl_Text_T107); RegisterControlPosition(StrToWzID("T108"), kControl_Text_T108); RegisterControlPosition(StrToWzID("T109"), kControl_Text_T109); RegisterControlPosition(StrToWzID("T110"), kControl_Text_T110);//À̸§10 //RegisterControlPosition(StrToWzID("S002"), kControl_Text_S002); RegisterControlPosition(StrToWzID("B007"), kControl_Button_B007); RegisterControlPosition(StrToWzID("L000"), kControl_List_L000); RegisterControlPosition(StrToWzID("P003"), kControl_Picture_P003); RegisterControlPosition(StrToWzID("P002"), kControl_Picture_P002); RegisterControlPosition(StrToWzID("P000"), kControl_Picture_P000); RegisterControlPosition(StrToWzID("P001"), kControl_Picture_P001); RegisterControlPosition(StrToWzID("P020"), kControl_Picture_P020); RegisterControlPosition(StrToWzID("P006"), kControl_Picture_P006); RegisterControlPosition(StrToWzID("P021"), kControl_Picture_P021); RegisterControlPosition(StrToWzID("P022"), kControl_Picture_P022); RegisterControlPosition(StrToWzID("P023"), kControl_Picture_P023); RegisterControlPosition(StrToWzID("P024"), kControl_Picture_P024); RegisterControlPosition(StrToWzID("P025"), kControl_Picture_P025); RegisterControlPosition(StrToWzID("P026"), kControl_Picture_P026); RegisterControlPosition(StrToWzID("P027"), kControl_Picture_P027); RegisterControlPosition(StrToWzID("P028"), kControl_Picture_P028); RegisterControlPosition(StrToWzID("P004"), kControl_Picture_P004); RegisterControlPosition(StrToWzID("P007"), kControl_Picture_P007); RegisterControlPosition(StrToWzID("P008"), kControl_Picture_P008); RegisterControlPosition(StrToWzID("P009"), kControl_Picture_P009); RegisterControlPosition(StrToWzID("P010"), kControl_Picture_P010); RegisterControlPosition(StrToWzID("P011"), kControl_Picture_P011); RegisterControlPosition(StrToWzID("P012"), kControl_Picture_P012); RegisterControlPosition(StrToWzID("P013"), kControl_Picture_P013); RegisterControlPosition(StrToWzID("P014"), kControl_Picture_P014); RegisterControlPosition(StrToWzID("P015"), kControl_Picture_P015); RegisterControlPosition(StrToWzID("P005"), kControl_Picture_P005); RegisterControlPosition(StrToWzID("P016"), kControl_Picture_P016); RegisterControlPosition(StrToWzID("P017"), kControl_Picture_P017); RegisterControlPosition(StrToWzID("P018"), kControl_Picture_P018); RegisterControlPosition(StrToWzID("P019"), kControl_Picture_P019); RegisterControlPosition(StrToWzID("P029"), kControl_Picture_P029); RegisterControlPosition(StrToWzID("P030"), kControl_Picture_P030); RegisterControlPosition(StrToWzID("C001"), kControl_CheckBT_C001); RegisterControlPosition(StrToWzID("C002"), kControl_CheckBT_C002); RegisterControlPosition(StrToWzID("C003"), kControl_CheckBT_C003); RegisterControlPosition(StrToWzID("C004"), kControl_CheckBT_C004); RegisterControlPosition(StrToWzID("C005"), kControl_CheckBT_C005); RegisterControlPosition(StrToWzID("C006"), kControl_CheckBT_C006); RegisterControlPosition(StrToWzID("C007"), kControl_CheckBT_C007); RegisterControlPosition(StrToWzID("C008"), kControl_CheckBT_C008); RegisterControlPosition(StrToWzID("C009"), kControl_CheckBT_C009); RegisterControlPosition(StrToWzID("P031"), kControl_Picture_P031); RegisterControlPosition(StrToWzID("P041"), kControl_Picture_P041); RegisterControlPosition(StrToWzID("P042"), kControl_Picture_P042); RegisterControlPosition(StrToWzID("P043"), kControl_Picture_P043); RegisterControlPosition(StrToWzID("P044"), kControl_Picture_P044); RegisterControlPosition(StrToWzID("P045"), kControl_Picture_P045); RegisterControlPosition(StrToWzID("P046"), kControl_Picture_P046); RegisterControlPosition(StrToWzID("P047"), kControl_Picture_P047); RegisterControlPosition(StrToWzID("P048"), kControl_Picture_P048); RegisterControlPosition(StrToWzID("P049"), kControl_Picture_P049); RegisterControlPosition(StrToWzID("P032"), kControl_Picture_P032); // ÇÏÀ̶óÀÌÆ® ½½·Ô À̹ÌÁö1 RegisterControlPosition(StrToWzID("P033"), kControl_Picture_P033); RegisterControlPosition(StrToWzID("P034"), kControl_Picture_P034); RegisterControlPosition(StrToWzID("P035"), kControl_Picture_P035); RegisterControlPosition(StrToWzID("P036"), kControl_Picture_P036); RegisterControlPosition(StrToWzID("P037"), kControl_Picture_P037); RegisterControlPosition(StrToWzID("P038"), kControl_Picture_P038); RegisterControlPosition(StrToWzID("P039"), kControl_Picture_P039); RegisterControlPosition(StrToWzID("P040"), kControl_Picture_P040); RegisterControlPosition(StrToWzID("P050"), kControl_Picture_P050); // ÇÏÀ̶óÀÌÆ® ½½·Ô À̹ÌÁö10 RegisterControlPosition(StrToWzID("P051"), kControl_Picture_P051); // ¹æÀå ¸¶Å©1 RegisterControlPosition(StrToWzID("P052"), kControl_Picture_P052); RegisterControlPosition(StrToWzID("P053"), kControl_Picture_P053); RegisterControlPosition(StrToWzID("P054"), kControl_Picture_P054); RegisterControlPosition(StrToWzID("P055"), kControl_Picture_P055); RegisterControlPosition(StrToWzID("P056"), kControl_Picture_P056); RegisterControlPosition(StrToWzID("P057"), kControl_Picture_P057); RegisterControlPosition(StrToWzID("P058"), kControl_Picture_P058); RegisterControlPosition(StrToWzID("P059"), kControl_Picture_P059); RegisterControlPosition(StrToWzID("P060"), kControl_Picture_P060); // ¹æÀå ¸¶Å©10 #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND RegisterControlPosition(StrToWzID("C010"), kControl_Check_C010); RegisterControlPosition(StrToWzID("C011"), kControl_Check_C011); #endif //_NA_008679_20160202_REWORK_BATTLEGROUND } uiBattlezone2Lobby::uiBattlezone2Lobby(InterfaceManager* ui_manager): uiBase(ui_manager) { ui_battlezone2_manager_ = NULL; control_ready_start_ = NULL; if (GetManager()) { GetManager()->InitializeUserSlotSet(); } is_ready_ = false; is_open_slot_count_ = MAX_VIEW_USER_SLOT; clicked_slot_index_ = MAX_VIEW_USER_SLOT; map_code_ = 0; handle_texture_[USE_TEXTURE_READY] = INVALID_HANDLE_VALUE; } uiBattlezone2Lobby::~uiBattlezone2Lobby(void) { } void uiBattlezone2Lobby::Clear() { is_ready_ = false; is_open_slot_count_ = MAX_VIEW_USER_SLOT; kick_player_key_ = 0; clicked_slot_index_ = MAX_VIEW_USER_SLOT; if (control_ready_start_) { control_ready_start_->EnableWindowWZ(true); is_ready_button_enable_ = true; } map_code_ = 0; #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS is_disconnected_uesr_kick_ = false; ZeroMemory(kick_player_name_,sizeof(kick_player_name_)); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS } void uiBattlezone2Lobby::Init(CDrawBase* draw_base) { RegisterControl(); //handle_texture_[USE_TEXTURE_READY] = g_pSunRenderer->x_pManagerTexture->LoadTexture("Data\\Interface\\63_ready.tga" ,TLS_ORIGINAL_SIZE | TLS_NO_MULTITHREAD); handle_texture_[USE_TEXTURE_READY] = g_pSunRenderer->x_pManagerTexture->LoadTexture("Data\\Interface\\Common_bg01.tga" ,TLS_ORIGINAL_SIZE | TLS_NO_MULTITHREAD); texture_information_[USE_TEXTURE_READY] = g_pSunRenderer->x_pManagerTexture->GetTextureInfo(handle_texture_[USE_TEXTURE_READY]); assert(texture_information_[USE_TEXTURE_READY]); int i = 0; for (i = kControl_Button_B001; i < kControl_Button_B033+1; ++i) { control_user_slots_[i-kControl_Button_B001] = static_cast(GetControlWZ_byPosition(i)); assert(control_user_slots_[i-kControl_Button_B001]); } for (i = kControl_Button_B002; i < kControl_Button_B042+1; ++i) { control_ban_[i-kControl_Button_B002] = static_cast(GetControlWZ_byPosition(i)); assert(control_ban_[i-kControl_Button_B002]); if (control_ban_[i-kControl_Button_B002]) { control_ban_[i-kControl_Button_B002]->ShowWindowWZ(WZ_HIDE);//°­Åð¹öưÀº À¯Àú°¡ ¾øÀ¸¸é ¾Èº¸¿©¾ßÇÑ´Ù. } } for (i = kControl_Text_T201; i < kControl_Text_T210+1; ++i) { control_user_levels_[i-kControl_Text_T201] = static_cast(GetControlWZ_byPosition(i)); assert(control_user_levels_[i-kControl_Text_T201]); if (control_user_levels_[i-kControl_Text_T201]) { control_user_levels_[i-kControl_Text_T201]->SetTextWZ(""); } } for (i = kControl_Text_T101; i < kControl_Text_T110+1; ++i) { control_user_names_[i-kControl_Text_T101] = static_cast(GetControlWZ_byPosition(i)); assert(control_user_names_[i-kControl_Text_T101]); if (control_user_names_[i-kControl_Text_T101]) { control_user_names_[i-kControl_Text_T101]->SetTextWZ(""); } } //Ȱ¼ºÈ­ ½½·Ô(³»°¡ ÀÖ´Â ½½·Ô) for (i = kControl_Picture_P032; i < kControl_Picture_P050+1; ++i) { control_highlight_user_[i-kControl_Picture_P032] = static_cast(GetControlWZ_byPosition(i)); assert(control_highlight_user_[i-kControl_Picture_P032]); if (control_highlight_user_[i-kControl_Picture_P032]) { control_highlight_user_[i-kControl_Picture_P032]->ShowWindowWZ(WZ_HIDE); } } #ifdef _DH_BATTLEZONE2_LOBBY_SLOT if (control_highlight_user_[0])//³ª´Â Ç×»ó ù ½½·Ô¿¡ ÀÖ´Ù. { control_highlight_user_[0]->ShowWindowWZ(WZ_SHOW); } #endif//_DH_BATTLEZONE2_LOBBY_SLOT //¹æÀå Ç¥½Ã ¸¶Å© for (i = kControl_Picture_P051; i < kControl_Picture_P060+1; ++i) { control_master_mark_[i-kControl_Picture_P051] = static_cast(GetControlWZ_byPosition(i)); assert(control_master_mark_[i-kControl_Picture_P051]); if (control_master_mark_[i-kControl_Picture_P051]) { control_master_mark_[i-kControl_Picture_P051]->ShowWindowWZ(WZ_HIDE); } } CCtrlButtonCheckWZ* close_slots_= static_cast(GetControlWZ(StrToWzID("C000"))); assert(close_slots_); close_slots_->SetDiscardMessage(true); for (i = kControl_CheckBT_C001; i < kControl_CheckBT_C009+1; ++i)//üũ¹öưÀº 9°³ÀÓ { control_close_slots_[i-kControl_CheckBT_C001] = static_cast(GetControlWZ_byPosition(i)); assert(control_close_slots_[i-kControl_CheckBT_C001]); control_close_slots_[i-kControl_CheckBT_C001]->SetDiscardMessage(true); } for (i = kControl_Picture_P031; i < kControl_Picture_P049+1; ++i) { control_playing_user_[i-kControl_Picture_P031] = static_cast(GetControlWZ_byPosition(i)); assert(control_playing_user_[i-kControl_Picture_P031]); if (control_playing_user_[i-kControl_Picture_P031]) { control_playing_user_[i-kControl_Picture_P031]->ShowWindowWZ(WZ_HIDE); } } // µå¶ø¹æ½Ä µå¶ø´Ù¿î ÄÁÆ®·Ñ bool init_result = dropdown_item_share().Init( GetControlWZ(GetControlID_byPosition(kControl_Button_B007)), static_cast(GetControlWZ(GetControlID_byPosition(kControl_Button_B005))), static_cast(GetControlWZ(GetControlID_byPosition(kControl_List_L000))), NULL, NULL); if (dropdown_item_share().list_control() != NULL) { dropdown_item_share().DeleteItemAll(); dropdown_item_share().list_control()->SetStartLineGapTop(8); TCHAR message[INTERFACE_STRING_LENGTH] ={0,}; DWORD distribution_string; #ifdef _NA_003033_20110831_DICECAST_ITEM_ROUTING const int distribution_max = eITEM_DISTRIBUTION_MAX; #else const int distribution_max = eITEM_DISTRIBUTION_MAX_DICE_BEFORE; #endif //_NA_003033_20110831_DICECAST_ITEM_ROUTING for (int i = 0; i < distribution_max; ++i) { #ifdef _NA_003033_20110831_DICECAST_ITEM_ROUTING distribution_string = ItemShareSystem::distribution_type_list[i]; #else distribution_string = i; #endif //_NA_003033_20110831_DICECAST_ITEM_ROUTING g_InterfaceManager.GetInterfaceString( ItemShareSystem::distribution_type_string_code[distribution_string], message, INTERFACE_STRING_LENGTH); dropdown_item_share().InsertItem(message, (void*)distribution_string, #ifdef _INTERNATIONAL_UI StrToWzID("st10"), #else StrToWzID("mn12"), #endif//_INTERNATIONAL_UI DT_CENTER | DT_BOTTOM, c_InterfaceBKColor, c_InterfaceTextColor, c_InterfaceSelColor); } #ifdef _NA_003033_20110831_DICECAST_ITEM_ROUTING dropdown_item_share().Select(0); #else dropdown_item_share().Select(1); #endif //_NA_003033_20110831_DICECAST_ITEM_ROUTING } CControlWZ* control = GetControlWZ_byPosition(kControl_Button_B006); //ÆÀ¹Ù²Ù±â if (control) { //control->ShowWindowWZ(WZ_HIDE); control->EnableWindowWZ(false); } control_ready_start_ = static_cast(GetControlWZ_byPosition(kControl_Button_B000)); //½ÃÀÛ, Áغñ if (control_ready_start_) { control_ready_start_->SetTextWZ(""); } assert(control_ready_start_); is_ready_button_enable_ = true; kick_player_key_ = 0; #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS is_disconnected_uesr_kick_ = false; ZeroMemory(kick_player_name_, sizeof(kick_player_name_)); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS #ifdef _NA_004204_20120131_BATTLE_ZONE_PARTY_OBTAIN is_party_obtain_room_ = false; #endif //_NA_004204_20120131_BATTLE_ZONE_PARTY_OBTAIN MoveDefaultWindowPos(); #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND window_opend_ = FALSE; #endif //_NA_008679_20160202_REWORK_BATTLEGROUND } void uiBattlezone2Lobby::SetControlByPlayerMove(BYTE index, bool is_enter) { if (index < 0 && index >= MAX_VIEW_USER_SLOT) { assert(!"uiBattlezone2Lobby::SetControlByPlayerMove(Wrong slot index)"); return; } if (control_ban_[index]) { control_ban_[index]->ShowWindowWZ(is_enter?WZ_SHOW:WZ_HIDE); } if (control_user_levels_[index]) { if (is_enter == false) { control_user_levels_[index]->SetTextWZ(""); } } if (control_user_names_[index]) { if (is_enter == false) { control_user_levels_[index]->SetTextWZ(""); } } } //------------------------------------------------------------------------------ uiBattlezone2Man* uiBattlezone2Lobby::GetManager() { if (ui_battlezone2_manager_ == NULL) { ui_battlezone2_manager_ = static_cast(this->GetUIMan()->GetUserInterfaceManager(UIMAN_BATTLE_ZONE_MANAGER)); assert (ui_battlezone2_manager_); } return ui_battlezone2_manager_; } void uiBattlezone2Lobby::ChangeSetting() { if (GetManager()->IsMaster()) { SettingForMaster(); } else { SettingForMember(); } } void uiBattlezone2Lobby::SettingForMaster() { int max_member = kControl_Button_B042 - kControl_Button_B002 + 1; for (int i = 0; i < max_member; ++i) { if (control_ban_[i]) { control_ban_[i]->ShowWindowWZ(WZ_SHOW); } } if (control_ban_[0]) { control_ban_[0]->ShowWindowWZ(WZ_HIDE); } if (control_ready_start_) { control_ready_start_->SetTextID(115); } } void uiBattlezone2Lobby::SettingForMember() { int max_member = kControl_Button_B042 - kControl_Button_B002 + 1; for (int i = 0; i < max_member; ++i) { if (control_ban_[i]) { control_ban_[i]->ShowWindowWZ(WZ_HIDE); } } if (control_ready_start_) { if (is_ready_) { control_ready_start_->SetTextID(302); } else { control_ready_start_->SetTextID(110); } } } void uiBattlezone2Lobby::Release() { if (handle_texture_ != INVALID_HANDLE_VALUE) { g_pSunRenderer->x_pManagerTexture->DestroyTexture(handle_texture_); } } void uiBattlezone2Lobby::OnUpdateSolarDialog() { CControlWZ* control = GetControlWZ_byPosition(kControl_Button_B003); if (GetManager()->IsMaster()) { if (GetManager()->IsReadyForStart()) { control_ready_start_->SetTextID(115); } else { control_ready_start_->SetTextID(70242); } if (control) { control->EnableWindowWZ(true); } } else { if (control) { control->EnableWindowWZ(false); } if (control_ready_start_) { if (is_ready_) { control_ready_start_->SetTextID(302); } else { control_ready_start_->SetTextID(110); } } } RECT control_rect; uiBattlezone2Tree* battlezone2_tree = GET_CAST_DIALOG(uiBattlezone2Tree, IM_BATTLEZONE2_MANAGER::BATTLEZONE2_TREE); if (battlezone2_tree && battlezone2_tree->IsVisible()) { GetDialogWZ()->GetClientRect(&control_rect); battlezone2_tree->MoveWindowWZ(control_rect.right, control_rect.top); } if (GetDialogWZ()->HaveFocus() == true) { if (battlezone2_tree && battlezone2_tree->IsVisible()) { GlobalFunc::MoveToTopDialog(IM_BATTLEZONE2_MANAGER::BATTLEZONE2_TREE); } } if (g_pHero && g_pHero->IsDead()) { if (control_ready_start_ && is_ready_button_enable_) { control_ready_start_->EnableWindowWZ(false); is_ready_button_enable_ = false; } if (is_ready_) { SendGameReady(); } } else { if (control_ready_start_ && !(is_ready_button_enable_)) { control_ready_start_->EnableWindowWZ(true); is_ready_button_enable_ = true; } } //µå¶ø´Ù¿î ÄÁÆ®·Ñ ¾÷µ¥ÀÌÆ® dropdown_item_share().Update(); } bool uiBattlezone2Lobby::SendRequestRenderInfo(WORD party_key, DWORD party_member_key) { if (party_member_key == 0 || party_key == 0) { return false; } if (GetManager()->SafePKBool(uiBattlezone2Man::PACKET_STATUS_SEND_REQUEST_RENDER)) { GetManager()->SetPKBool(uiBattlezone2Man::PACKET_STATUS_SEND_REQUEST_RENDER); //GetManager()->FlushUserSlotSet(); MSG_CG_PARTY_REQUEST_RENDER_INFO_SYN send_packet; send_packet.request_party_key_ = party_key; send_packet.request_member_key_ = party_member_key; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); return true; } return false; } bool uiBattlezone2Lobby::SendRequestMember() { if (GetManager()->SafePKBool(uiBattlezone2Man::PACKET_STATUS_SEND_REQUEST_MEMBER)) { GetManager()->SetPKBool(uiBattlezone2Man::PACKET_STATUS_SEND_REQUEST_MEMBER); GetManager()->FlushUserSlotSet(); uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); DWORD master_key = partyMan->GetMasterKey(); if (ui_battlezone2_manager_ && partyMan) { ui_battlezone2_manager_->SetLobbyMasterPlayerKey(partyMan->GetMasterKey()); } else { assert(!"uiBattlezone2List::NetworkProc(CG_PARTY_JOIN_ROOM_ACK): Can't not find master key"); } #ifdef _DH_BATTLEZONE2_LOBBY_SLOT #else if (master_key != g_pHero->GetObjectKey()) { UserSlot EnterUser; EnterUser.SetPlayerKey(master_key); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS EnterUser.SetPlayerName(partyMan()->GetPartyLeader().Get().m_szCharName); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS ui_battlezone2_manager_->AddPlayer(EnterUser); } #endif//_DH_BATTLEZONE2_LOBBY_SLOT UserSlot EnterUser; EnterUser.SetPlayerKey(g_pHero->GetObjectKey()); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS EnterUser.SetPlayerName(g_pHero->GetName()); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS ui_battlezone2_manager_->AddPlayer(EnterUser); UserSlot* user_slot = ui_battlezone2_manager_->FindPlayer(EnterUser.GetPlayerKey()); if (user_slot != NULL) { if( user_slot->GetBattleZonePlayerKey() == 0 ) { DWORD battlezone_object_key = g_ObjectManager.GenerateKeyByBattleZonePlayer(PLAYER_OBJECT); Player* player = GameFunc::MakePlayer(battlezone_object_key, g_pHero, true); if (player != NULL) { player->SetShow(FALSE); user_slot->SetBattleZonePlayerKey(battlezone_object_key); } } } MSG_CG_PARTY_REQUEST_MEMBER_INFO_SYN send_packet; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); return true; } return false; } void uiBattlezone2Lobby::OnRenderSolarDialog() { // ±×´ë·Î µÎ°í ¾Æ´Ï¸é ÇÔ¼ö·Î »©ÀÚ. float fMeshHeight = 1.f; float fMeshWidth = 1.f; RECT rcSize; // º¸¿©ÁÙ À§Ä¡ Á¤º¸ RECT rcViewport; // view port rect // ÇöÀç BoundingBox¸¦ ±¸ÇÒ¼ö¾ø¾î ij¸¯ÅÍÀÇ Å°¸¦ ±¸ÇÒ¼ö¾ø´Ù. // ij¸¯ÅÍÀÇ Å°¸¦ ÇϵåÄÚµùÇÑ´Ù. if(!GetManager()) { return; } uiPartyMan* party_man = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); TCHAR level_string[32] = {0,}; uicPartyMemberInfoPlus* party_member = NULL; if (party_man && party_man->GetPartyNum() != ui_battlezone2_manager_->GetUserSlotNum()) { ResetLobby(); } #ifdef _NA_004204_20120131_BATTLE_ZONE_PARTY_OBTAIN // ¸ðµÎºÐ¹è ¾ÆÀÌÄÜ Ãâ·Â if (is_party_obtain_room_ == true) { CControlWZ *mission_name_control = GetControlWZ_byPosition(kControl_Text_T007); //¹Ì¼Ç¸í if (mission_name_control) { RECT rect = mission_name_control->GetSizeRect(); const int party_obtain_icon_size = 16; rect.right = rect.left + party_obtain_icon_size; rect.bottom = rect.top + party_obtain_icon_size; g_InterfaceManager.RenderBattleRoomIcon( InterfaceManager::eBATTLE_ICON_PARTY_OBTAIN_ROOM, &rect); } } #endif //_NA_004204_20120131_BATTLE_ZONE_PARTY_OBTAIN int is_master_slot_number = 0; uiToolTipMan* tooltip_manager = GET_DIALOG_MANAGER(uiToolTipMan, UIMAN_TOOLTIP); for (int i = 0; i < MAX_PLAYER_SLOT; ++i) { UserSlot* user_slot = ui_battlezone2_manager_->GetUserSlotByIndex(i); if(!user_slot) { FASSERT(0); continue; } party_member = NULL;//party_manÀÌ NULLÀÏ °æ¿ì¸¦ ´ëºñ if (party_man) { party_member = party_man->GetPartyMemberInfo(user_slot->GetPlayerKey()); } Player* player = g_ObjectManager.GetPlayer(user_slot->GetBattleZonePlayerKey()); // TODO ÀÏ´Ü ÆÄƼ¿¡ Á¾¼ÓÀûÀÌ°Ô ÆÄƼÀå ¸¶Å©¸¦ °è¼Ó °»½ÅÇÏÀÚ, ÃßÈÄ¿¡ ½½·Ô Àüü¸¦ ÆÄƼ·Î ³Ñ±â¸é, ÆÄƼÀå º¯°æ½Ã¿¡¸¸ Àû¿ëÇϵµ·Ï ÇÏÀÚ.(11.11.02) if (party_man && user_slot && control_master_mark_[i]) { ENUM_STATEWZ is_state = (party_man->GetMasterKey() == user_slot->GetPlayerKey())?WZ_SHOW:WZ_HIDE; control_master_mark_[i]->ShowWindowWZ(is_state); if (is_state == WZ_SHOW) { is_master_slot_number = i; } } #ifdef _DH_BATTLEZONE2_LOBBY_SLOT #else if (g_pHero && user_slot && control_highlight_user_[i])//³»°¡ ÀÖ´Â ½½·Ô¸¸ on { ENUM_STATEWZ is_state = (g_pHero->GetObjectKey() == user_slot->GetPlayerKey())?WZ_SHOW:WZ_HIDE; control_highlight_user_[i]->ShowWindowWZ(is_state); } #endif//_DH_BATTLEZONE2_LOBBY_SLOT bool is_in_battlezone = false; if (party_member) { const BattlezoneMissionTreeInfo* find_info = BattlezoneMissionTreeParser::Instance()->FindData((MAPCODE)party_member->map_code()); if (find_info != NULL) { is_in_battlezone = true; } } if (control_playing_user_) { if (user_slot && user_slot->GetPlayerKey() != 0 && ((player == NULL) #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS || (party_member && party_member->IsConnected() == false) //ºñÁ¤»ó Á¢¼Ó Á¾·á¸é || (is_in_battlezone == true) // ¹Ì¼Ç ¾ÈÀ̸é #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS )) { if (party_man && party_member) { control_user_names_[i]->SetTextWZ(party_member->Get().m_szCharName); sprintf(level_string, "%d", party_member->Get().m_wLevel); control_user_levels_[i]->SetTextWZ(level_string); } if (user_slot->GetPlayerKey() == g_pHero->GetObjectKey()) { UserSlot* find_user_slot = ui_battlezone2_manager_->FindPlayer(user_slot->GetPlayerKey()); if (find_user_slot != NULL) { if( find_user_slot->GetBattleZonePlayerKey() == 0 ) { DWORD battlezone_object_key = g_ObjectManager.GenerateKeyByBattleZonePlayer(PLAYER_OBJECT); Player* player = GameFunc::MakePlayer(battlezone_object_key, g_pHero, true); if (player != NULL) { player->SetShow(FALSE); find_user_slot->SetBattleZonePlayerKey(battlezone_object_key); } } } } else { control_playing_user_[i]->ShowWindowWZ(WZ_SHOW); if (party_member && g_pMap && ((g_pMap->IsField() || g_pMap->IsVill()) #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS && (party_member->IsConnected() == true)// Á¢¼ÓÁßÀÎ À¯Àú¸é #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS )) { if (user_slot && (is_in_battlezone == false)) // ¹Ì¼ÇÀÌ ¾Æ´Ò¶§ { //·£´õÁ¤º¸ ¿äû SendRequestRenderInfo(party_man->GetPartyKey(), user_slot->GetPlayerKey()); } } } } else { control_playing_user_[i]->ShowWindowWZ(WZ_HIDE); control_user_names_[i]->SetTextWZ(""); control_user_levels_[i]->SetTextWZ(""); } } if (player == NULL) { if (user_slot->GetBattleZonePlayerKey())//۰¡ ³ÎÀÌ ¾Æ´Ï¸é { if (SendRequestMember()) { return; } } if (i > 0 && control_close_slots_[i-1]) { if (user_slot->GetSlotState() == UserSlot::BLOCK) { control_close_slots_[i-1]->SetCheckState(true); } else { control_close_slots_[i-1]->SetCheckState(false); } if (GetManager()->IsMaster() && control_ban_[i]) { if (user_slot->GetSlotState() == UserSlot::BLOCK) { control_ban_[i]->ShowWindowWZ(WZ_HIDE); } else { control_ban_[i]->ShowWindowWZ(WZ_SHOW); } } } continue; } FPOINT org; // Calc ViewPortWithRect if (!control_user_slots_[i]) { assert(!"uiBattlezone2Lobby:check need to 61_4_BattleZone_ready_new.iwz"); continue; } rcSize = control_user_slots_[i]->GetSizeRect(); rcViewport = g_InterfaceManager.CalcuateViewPortWithRect(rcSize); if (user_slot && user_slot->GetTeam() == 0) { player->SetShow(TRUE); // ÆÀÀÌ ¾ø´Ù. control_user_names_[i]->SetTextWZ(player->GetName()); sprintf(level_string, "%d", player->GetLevel()); control_user_levels_[i]->SetTextWZ(level_string); player->SetShow(FALSE); } else { WzColor wzColor = 0xFFFF6FFF; // ºÓ°Ô int team = 0; if (user_slot) { team = user_slot->GetTeam(); } switch (team) { case 1: { wzColor = WzColor_RGBA(0, 50, 121, 100); // û } break; case 2: { wzColor = WzColor_RGBA(137, 9, 0, 100); // ºÓ } break; case 3: { wzColor = 0xFF8F8F8F; // ³ë¶û } break; default: break; } g_InterfaceManager.RenderRect(rcSize, wzColor); } #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS // ºñÁ¢¼ÓÁßÀ̰ųª ¹Ì¼Ç ¾ÈÀ̸é ij¸¯Å͸¦ ±×¸®Áö ¾ÊÀ½ if (party_member && ((party_member->IsConnected() == false) || (is_in_battlezone == true))) { continue; } #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS player->SetShow(TRUE); g_InterfaceManager.RenderPlayerOnRect(player, control_user_slots_[i]->GetSizeRect(), PI, org, 1); player->SetShow(FALSE); //switch (user_slot->GetSlotState()) if (party_member && party_member->is_ready()) { //// ¿©±â´Ù°¡ Ready Texture¸¦ °¡¿îµ¥¿¡ Âï´Â´Ù. if (handle_texture_[USE_TEXTURE_READY] != INVALID_HANDLE_VALUE) { float x = (float)(rcSize.left + (rcSize.right - rcSize.left)/2 - 48.5f); float y = (float)(rcSize.top+ (rcSize.bottom - rcSize.top)/2 - 14.0f); g_pSunRenderer->RenderTexture( handle_texture_[USE_TEXTURE_READY], x, y, 97.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 28.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, 894.0f,//x, 206.0f,//y, 97.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 28.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, NULL, 0.0f ); } } #ifdef _NA_005003_20120612_NEW_CHARACTER_MYSTIC_FOR_CLIENT float class_x = (float)(rcSize.left + (rcSize.right - rcSize.left)/2 - 30.0f); float class_y = (float)(rcSize.bottom); eCHAR_TYPE class_type = player->GetClass(); GenderType::Value gender = player->GetGender(); eCHAR_TYPE race_type = ResourceCode::GetImageClassType(class_type ,gender); #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE // À̹ÌÁö À§Ä¡°¡ ¼ø¼­´ë·Î µÇ¾îÀÖÁö ¾Ê¾Æ ÇϵåÄÚµù if ( class_type == eCHAR_WITCHBLADE) { g_pSunRenderer->RenderTexture( handle_texture_[USE_TEXTURE_READY], class_x, class_y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, 730.0f + ((eCHAR_MYSTIC-1) * 14),//x, 297.0f + 28.0f,//y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, NULL, 0.0f ); } else { g_pSunRenderer->RenderTexture( handle_texture_[USE_TEXTURE_READY], class_x, class_y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, 730.0f + ((race_type-1) * 14),//x, 297.0f,//y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, NULL, 0.0f ); } #else g_pSunRenderer->RenderTexture( handle_texture_[USE_TEXTURE_READY], class_x, class_y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, 730.0f + ((race_type-1) * 14),//x, 297.0f,//y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, NULL, 0.0f ); #endif // _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE if (tooltip_manager && IsInRect(class_x, class_y, 14.0f, 14.0f)) { tooltip_manager->RegisterTooltip(GlobalFunc::GetRaceString(race_type)); tooltip_manager->SetTooltipDialogID( GetDialogKey() ); } #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE if ( class_type == eCHAR_WITCHBLADE ) { g_pSunRenderer->RenderTexture( handle_texture_[USE_TEXTURE_READY], class_x + 14.0f, class_y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, 730.0f + ((eCHAR_HELLROID-1) * 14),//x, 297.0f + 28.0f,//y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, NULL, 0.0f ); } else { g_pSunRenderer->RenderTexture( handle_texture_[USE_TEXTURE_READY], class_x + 14.0f, class_y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, 730.0f + ((class_type-1) * 14),//x, 297.0f + 14.0f,//y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, NULL, 0.0f ); } #else g_pSunRenderer->RenderTexture( handle_texture_[USE_TEXTURE_READY], class_x + 14.0f, class_y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, 730.0f + ((class_type-1) * 14),//x, 297.0f + 14.0f,//y, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, 14.0f,//(float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, NULL, 0.0f ); #endif // _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE if (tooltip_manager && IsInRect(class_x + 14.0f, class_y, 14.0f, 14.0f)) { tooltip_manager->RegisterTooltip(GlobalFunc::GetClassString(class_type)); tooltip_manager->SetTooltipDialogID( GetDialogKey() ); } #endif//_NA_005003_20120612_NEW_CHARACTER_MYSTIC_FOR_CLIENT /* switch (1) { case UserSlot::FILL: { } break; case UserSlot::READY: { //// ¿©±â´Ù°¡ Ready Texture¸¦ °¡¿îµ¥¿¡ Âï´Â´Ù. if (handle_texture_[USE_TEXTURE_READY] != INVALID_HANDLE_VALUE) { float x = (float)((rcSize.left+rcSize.right) - texture_information_[USE_TEXTURE_READY]->m_nImageWidth)/2; float y = (float)(rcSize.top + rcSize.bottom + texture_information_[USE_TEXTURE_READY]->m_nImageHeight) /2.f; g_pSunRenderer->RenderTexture( handle_texture_[USE_TEXTURE_READY], x, y, (float)texture_information_[USE_TEXTURE_READY]->m_nImageWidth, (float)texture_information_[USE_TEXTURE_READY]->m_nImageHeight, 0.0f, 0.0f, 0.0f, 0.0f, NULL, 0.0f ); } } break; case UserSlot::OPENED: case UserSlot::BLOCK: break; default: { assert(0); } break; }*/ } CControlWZ* ready_control = control_master_mark_[is_master_slot_number]; if (ready_control) { RECT rect = ready_control->GetSizeRect(); SI_TFORMAT* image_format = ready_control->GetCtrlImageFormat(); if (ready_control != INVALID_HANDLE_VALUE) { g_pSunRenderer->RenderTexture( image_format->m_sImageState[E_BASE].m_pVoid, (float)rect.left, (float)rect.top, (float)image_format->m_sImageState[E_BASE].m_sFRect.fWidth, (float)image_format->m_sImageState[E_BASE].m_sFRect.fHeight, (float)image_format->m_sImageState[E_BASE].m_sFRect.fTopX, (float)image_format->m_sImageState[E_BASE].m_sFRect.fTopY, (float)image_format->m_sImageState[E_BASE].m_sFRect.fWidth, (float)image_format->m_sImageState[E_BASE].m_sFRect.fHeight); } } } void uiBattlezone2Lobby::MouseOver_MsgProc(SI_MESSAGE* message) { } void uiBattlezone2Lobby::OnShowWindow(BOOL is_show) { #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND #else RECT control_rect; uiBattlezone2List* battlezone2_list = GET_CAST_DIALOG(uiBattlezone2List, IM_BATTLEZONE2_MANAGER::BATTLEZONE2_LIST); #endif //_NA_008679_20160202_REWORK_BATTLEGROUND if (is_show) { #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND uiChaosSystemMan* chaos_manager = GET_DIALOG_MANAGER(uiChaosSystemMan, UIMAN_CHAOS); if (chaos_manager) { chaos_manager->ToggleChaoszoneDialog(true); RECT ui_position = chaos_manager->GetUIPosition(); if (ui_position.right != -1) { this->MoveWindowWZ(ui_position.left, ui_position.top); } else { uiChaosSystemMan* chaos_manager = GET_DIALOG_MANAGER(uiChaosSystemMan, UIMAN_CHAOS); if (chaos_manager) { this->GetDialogWZ()->GetClientRect(&ui_position); ui_position.right = 0; //ÃʱâÈ­ È®Àοë chaos_manager->SetUIPosition(ui_position); } } } mouse_cursor_point.x = Mouse::Instance()->GetMouseX(); mouse_cursor_point.y = Mouse::Instance()->GetMouseY(); CCtrlButtonCheckWZ* check_control = static_cast(GetControlWZ_byPosition(kControl_Check_C010)); if (check_control) { check_control->SetCheckState(true); } check_control = static_cast(GetControlWZ_byPosition(kControl_Check_C011)); if (check_control) { check_control->SetCheckState(false); } if (window_opend_ == FALSE) { window_opend_ = TRUE; } #else if (this->IsVisible() && battlezone2_list && battlezone2_list->GetDialogWZ()) { battlezone2_list->GetDialogWZ()->GetClientRect(&control_rect); this->MoveWindowWZ(control_rect.left, control_rect.top); } #endif //_NA_008679_20160202_REWORK_BATTLEGROUND ChangeSetting(); keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType = eDoType_Battlezone2Lobby_Dialog; msg.wParam = IM_BATTLEZONE2_MANAGER::BATTLEZONE2_LOBBY; msg.DoSomething = GlobalFunc::DoShowWindowEx; g_KeyQueueManager.PushBack(msg); ResetLobby(); GetManager()->UnsetPKBool(uiBattlezone2Man::PACKET_STATUS_SEND_REQUEST_RENDER);//âÀ» ¿­¸é ÀÏ´Ü Ç®¾îÁÖÀÚ. } else { #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND uiChaosSystemMan* chaos_manager = GET_DIALOG_MANAGER(uiChaosSystemMan, UIMAN_CHAOS); if (chaos_manager && window_opend_) { RECT ui_position; this->GetDialogWZ()->GetClientRect(&ui_position); ui_position.right = 0; //ÃʱâÈ­ È®Àοë chaos_manager->SetUIPosition(ui_position); } #else if (!this->IsVisible() && battlezone2_list && battlezone2_list->GetDialogWZ()) { this->GetDialogWZ()->GetClientRect(&control_rect); battlezone2_list->MoveWindowWZ(control_rect.left, control_rect.top); } #endif //_NA_008679_20160202_REWORK_BATTLEGROUND if (GetManager()) { GetManager()->ShowBattlezoneDialog(uiBattlezone2Man::BATTLEZONE2_DIALOG_TREE, false); GetManager()->ShowBattlezoneDialog(uiBattlezone2Man::BATTLEZONE2_DIALOG_RESERVATION, false); } g_KeyQueueManager.DeleteMsg(eDoType_Battlezone2Lobby_Dialog); } } void uiBattlezone2Lobby::Process(DWORD tick_count) { if (wait_timer_.Check() != TIMER_STAT_NONE) { if (wait_timer_.Check() == TIMER_STAT_FINISH) { WaitGague(false); } else { CastDialog* cast_dialog = static_cast(g_InterfaceManager.GetDialog(InterfaceManager::DIALOG_CASTING)); if (cast_dialog) { cast_dialog->SetGage((wait_timer_.SpentTime()/50.0f)); } } } } //------------------------------------------------------------------------------ void uiBattlezone2Lobby::MessageProc(SI_MESSAGE* message) { if (IsLock()) return; #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND MovementButtonMessageProc(message); #endif //_NA_008679_20160202_REWORK_BATTLEGROUND /*if (GetManager() == NULL) return;*/ if (GetManager()->IsMaster()) { bool is_change = false; if (dropdown_item_share().MessageProc(message, OUT is_change)) { if (is_change) { BYTE select_type = static_cast(dropdown_item_share().CurrentUserData()); MSG_CG_PARTY_ITEM_DISTRIBUTION_CHANGE_SYN message; message.m_byItemDistributionType = select_type; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &message, sizeof(message)); } return; } } else { if (message->eResultMsg == RT_MSG_LBUTTONCLICK) { switch (GetControlPosition_byID(message->dwCtrlID)) { case kControl_Button_B005: case kControl_List_L000: case kControl_Button_B007: //ÆÄƼÀ常 º¯°æ ÇÒ ¼ö ÀÖ´Ù if (GetManager()->IsMaster() == FALSE) { TCHAR szMessage[INTERFACE_STRING_LENGTH] ={0,}; //5334 ÆÄƼÀåÀÌ ¾Æ´Õ´Ï´Ù. g_InterfaceManager.GetInterfaceString(5334, szMessage,INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } return; default: break; } } } switch (message->eResultMsg) { case RT_MSG_LBUTTONCLICK: OnLButtonClick(message); break; default: SolarDialog::MessageProc(message); break; } } bool uiBattlezone2Lobby::SendGameStart() { if (GetManager()->IsReadyForStart())//½ÃÀÛ °¡´ÉÇÑÁö üũ, ¸ðµÎ ·¹µðÀΰ¡? { //GetManager()->StartBattle(); MSG_CG_PARTY_ROOM_START_SYN send_packet; PartyRoomInfo* party_room_info = GetManager()->current_room_info(); PartyZoneType type = PartyOfNone; if (party_room_info) { type = party_room_info->base_party_room_info.party_room_type_; } send_packet.require_item_ = 0; uiBattlezone2Tree* battlezone2_tree = GET_CAST_DIALOG(uiBattlezone2Tree, IM_BATTLEZONE2_MANAGER::BATTLEZONE2_TREE); const BattlezoneMissionTreeInfo* find_info = BattlezoneMissionTreeParser::Instance()->FindData(static_cast(map_code_), type); if (battlezone2_tree && find_info) { send_packet.require_item_ = static_cast(battlezone2_tree->GetRequireItem(find_info)); } GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); } else { TCHAR message[INTERFACE_STRING_LENGTH] = {0,}; g_InterfaceManager.GetInterfaceString(70243, message, INTERFACE_STRING_LENGTH); g_InterfaceManager.ShowMessageBox(message, 10000, NULL, 0); return false; } return true; } bool uiBattlezone2Lobby::SendGameReady() { //is_ready_ = !is_ready_; uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); if (partyMan && g_pHero) { uicPartyMemberInfoPlus* party_member = partyMan->GetPartyMemberInfo(g_pHero->GetObjectKey()); if (party_member) { is_ready_ = !party_member->is_ready(); } MSG_CG_PARTY_READY_STATE_SYN send_packet; send_packet.ready_state_ = is_ready_;//³» ÇöÀç »óŸ¦ ±âÁØÀ¸·Î º¯°æÇؼ­ º¸³»Áà¾ßÇÑ´Ù. GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); return true; } return false; } bool uiBattlezone2Lobby::SendGameExit() { MSG_CG_PARTY_LEAVE_ROOM_SYN send_packet; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); return true; } void uiBattlezone2Lobby::SetShareType(BYTE share_type) { #ifdef _NA_003033_20110831_DICECAST_ITEM_ROUTING const int share_type_max = eITEM_DISTRIBUTION_MAX; #else const int share_type_max = eITEM_DISTRIBUTION_MAX_DICE_BEFORE; #endif //_NA_003033_20110831_DICECAST_ITEM_ROUTING if (share_type < share_type_max) { TCHAR message[INTERFACE_STRING_LENGTH] ={0,}; g_InterfaceManager.GetInterfaceString( ItemShareSystem::distribution_type_string_code[share_type], message, INTERFACE_STRING_LENGTH); //CCtrlStaticWZ* static_control = static_cast(GetControlWZ_byPosition(kControl_Text_S002)); CControlWZ* text_control = dropdown_item_share().text_control(); if (text_control != NULL) { text_control->SetTextWZ(message); } } } bool uiBattlezone2Lobby::SendChangeTeam() { if (GetManager()->SafePKBool(uiBattlezone2Man::PACKET_STATUS_SEND_CHANGE_TEAM)) { GetManager()->SetPKBool(uiBattlezone2Man::PACKET_STATUS_SEND_CHANGE_TEAM); uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); /*DWORD master_key = partyMan->GetMasterKey(); if (ui_battlezone2_manager_ && partyMan) { ui_battlezone2_manager_->SetLobbyMasterPlayerKey(partyMan->GetMasterKey()); } else { assert(!"uiBattlezone2List::NetworkProc(CG_PARTY_JOIN_ROOM_ACK): Can't not find master key"); } if (master_key != g_pHero->GetObjectKey()) { UserSlot EnterUser; EnterUser.SetPlayerKey(master_key); ui_battlezone2_manager_->AddPlayer(EnterUser); } UserSlot EnterUser; EnterUser.SetPlayerKey(g_pHero->GetObjectKey()); ui_battlezone2_manager_->AddPlayer(EnterUser);*/ UserSlot* user_slot = ui_battlezone2_manager_->FindPlayer(g_pHero->GetObjectKey()); if (user_slot != NULL) { MSG_CG_PARTY_SELECT_TEAM_SYN send_packet; send_packet.select_team_ = static_cast(user_slot->GetTeam()==1)?2:1; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); return true; } } return false; } //------------------------------------------------------------------------------ bool uiBattlezone2Lobby::OnLButtonClick(SI_MESSAGE* message) { bool result = true; switch (GetControlPosition_byID(message->dwCtrlID)) { case kControl_Button_B004: //´Ý±â { ShowInterface(FALSE); } break; case kControl_Button_B000://°ÔÀÓ½ÃÀÛ/·¹µð { if (GetManager()->IsMaster())//ÆÄƼÀåÀ̸é { if (GetManager()->IsReadyForStart() == true) { if (GetManager()->StartBattle() == true) { SendGameStart(); } } else { TCHAR message[INTERFACE_STRING_LENGTH] = {0,}; g_InterfaceManager.GetInterfaceString(70243, message, INTERFACE_STRING_LENGTH); g_InterfaceManager.ShowMessageBox(message, 10000, NULL, 0); } } else { SendGameReady(); } } break; case kControl_Button_B010://¹æ³ª°¡±â { SendGameExit(); } break; case kControl_Button_B006://ÆÀ¹Ù²Ù±â { SendChangeTeam(); } break; case kControl_Button_B001: { // ¹æÀåÀº °­Åð ¾ÈµÊ } break; case kControl_Button_B025: case kControl_Button_B026: case kControl_Button_B027: case kControl_Button_B028: case kControl_Button_B029: case kControl_Button_B030: case kControl_Button_B031: case kControl_Button_B032: case kControl_Button_B033: { BlockPlayer(GetControlPosition_byID(message->dwCtrlID) - kControl_Button_B001); } break; case kControl_Button_B002: { // ¹æÀåÀº °­Åð ¾ÈµÊ } break; case kControl_Button_B034: case kControl_Button_B035: case kControl_Button_B036: case kControl_Button_B037: case kControl_Button_B038: case kControl_Button_B039: case kControl_Button_B040: case kControl_Button_B041: case kControl_Button_B042: { int index = GetControlPosition_byID(message->dwCtrlID) - kControl_Button_B002; UserSlot* user_slot = GetManager()->GetUserSlotByIndex(index); bool is_party = false; if (user_slot) { Player* player = g_ObjectManager.GetPlayer(user_slot->GetBattleZonePlayerKey()); uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); if (partyMan->IsPartyMember(user_slot->GetPlayerKey())) { is_party = true; } if (player || is_party) { // Ç÷¹À̾ ÀÖÀ¸¸é °­Åð BanPlayerByIndex(GetControlPosition_byID(message->dwCtrlID) - kControl_Button_B002); } else { BlockPlayer(GetControlPosition_byID(message->dwCtrlID) - kControl_Button_B002); } } } break; case kControl_Button_B003: { uiBattlezone2List* battlezone_list_dialog = GET_CAST_DIALOG(uiBattlezone2List, IM_BATTLEZONE2_MANAGER::BATTLEZONE2_LIST); if (battlezone_list_dialog) { battlezone_list_dialog->ShowBattlezoneTree(uiBattlezone2Tree::kModificationMode); } } break; /*case kControl_Text_S002: { } break;*/ // case kControl_CheckBT_C001: // case kControl_CheckBT_C002: // case kControl_CheckBT_C004: // case kControl_CheckBT_C003: // case kControl_CheckBT_C005: // case kControl_CheckBT_C006: // case kControl_CheckBT_C007: // case kControl_CheckBT_C008: // case kControl_CheckBT_C009: // { // if (GetManager()->IsMaster()) // { // BlockPlayer(GetControlPosition_byID(message->dwCtrlID) - kControl_CheckBT_C001); // } // else // { // CCtrlButtonCheckWZ* control = static_cast(GetControlWZ(message->dwCtrlID)); // if (control) // { // if (control->GetCheckState()) // { // control->SetCheckState(false); // } // else // { // control->SetCheckState(true); // } // } // } // } // break; default: { } break; } return result; } void uiBattlezone2Lobby::SetBaseInfo(PartyRoomInfo* mission_infomation) { TCHAR buffer_string[INTERFACE_STRING_LENGTH] = {0,}; CCtrlStaticWZ* control = NULL; if (mission_infomation == NULL) { #ifdef _DEV_VER GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, _T("uiBattlezone2Lobby::SetBaseInfo(base_mission_infomation is null)")); #endif return; } control = static_cast(GetControlWZ_byPosition(kControl_Text_T001));//¹æ¹øÈ£ if (control) { sprintf(buffer_string, "%d", (mission_infomation->room_key_ - BASE_ROOM_KEY)); control->SetTextWZ(buffer_string); } map_code_ = mission_infomation->base_party_room_info.map_code_; const BattlezoneMissionTreeInfo* find_info = BattlezoneMissionTreeParser::Instance()->FindData(mission_infomation->base_party_room_info.map_code_); if (find_info) { control = static_cast(GetControlWZ_byPosition(kControl_Text_T007));//¹Ì¼Ç¸í if (control) { control->SetTextID(find_info->mission_string_code); } control = static_cast(GetControlWZ_byPosition(kControl_Text_T009));//·¹º§Á¦ÇÑ if (control) { const sMAPINFO* map_info= MapInfoParser::Instance()->FindMapInfo((MAPCODE)find_info->map_code); if(map_info != NULL) { sprintf(buffer_string, "%d-%d", map_info->minLV, map_info->maxLV); control->SetTextWZ(buffer_string); } else { sprintf(buffer_string, "All"); control->SetTextWZ(buffer_string); } } control = static_cast(GetControlWZ_byPosition(kControl_Text_T011));//±ÇÀå·¹º§ if (control) { sprintf(buffer_string, "%d-%d", find_info->min_level, find_info->max_level); control->SetTextWZ(buffer_string); } #ifdef _NA_004204_20120131_BATTLE_ZONE_PARTY_OBTAIN if (find_info->item_obtain_ == kObtainType_Enable) { is_party_obtain_room_ = true; } else { is_party_obtain_room_ = false; } #endif //_NA_004204_20120131_BATTLE_ZONE_PARTY_OBTAIN } control = static_cast(GetControlWZ_byPosition(kControl_Text_T003));//ºñ¹Ð¹øÈ£ if (control) { sprintf(buffer_string, "%s", mission_infomation->base_party_room_info.party_room_password_); control->SetTextWZ(buffer_string); } control = static_cast(GetControlWZ_byPosition(kControl_Text_T002));//¹æÀ̸§ if (control) { control->SetTextWZ(mission_infomation->base_party_room_info.party_room_title_); } GetManager()->SetNonBlockSlot(mission_infomation->max_user_num_); CControlWZ* control_button = GetControlWZ_byPosition(kControl_Button_B006); //ÆÀ¹Ù²Ù±â if (mission_infomation->base_party_room_info.party_room_type_ == PartyOfPvPByTeam) { if (control_button) { //control_button->ShowWindowWZ(WZ_SHOW); control_button->EnableWindowWZ(true); } } else { if (control_button) { //control_button->ShowWindowWZ(WZ_HIDE); control_button->EnableWindowWZ(false); } } //base_mission_infomation->special_type_; } void uiBattlezone2Lobby::ChangeMaster(DWORD master_key) { if (ui_battlezone2_manager_ == NULL) { return; } uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); DWORD old_master_key = 0; if (partyMan) { old_master_key = partyMan->GetMasterKey(); } else { assert(!"uiBattlezone2List::NetworkProc(CG_PARTY_ALLPLAYERS_CMD): Can't not find master key"); return; } ui_battlezone2_manager_->SetLobbyMasterPlayerKey(master_key); #ifdef _DH_BATTLEZONE2_LOBBY_SLOT #else ui_battlezone2_manager_->SwapUserSlot(old_master_key, master_key); #endif//_DH_BATTLEZONE2_LOBBY_SLOT //test Àӽà ÄÚµå //GetManager()->SetCancleAllReady(); //is_ready_ = false; //test Àӽà ÄÚµå ChangeSetting(); } void uiBattlezone2Lobby::WaitGague(bool is_show) { CastDialog* cast_dialog = static_cast(g_InterfaceManager.GetDialog(InterfaceManager::DIALOG_CASTING)); if (is_show) { wait_timer_.On(WAIT_TIME); if (cast_dialog) { g_InterfaceManager.HideAllWindows(); g_InterfaceManager.ShowGameInterface(TRUE); TCHAR message[INTERFACE_STRING_LENGTH] = {0,}; //5116 Àá½Ã¸¸ ±â´Ù·Á ÁֽʽÿÀ. g_InterfaceManager.GetInterfaceString(5116, message); cast_dialog->SetText(message); cast_dialog->ShowWindow(TRUE); } if (ui_battlezone2_manager_) { ui_battlezone2_manager_->set_is_wait(true); } g_InterfaceManager.LockDlgsAll(); } else { wait_timer_.Off(); if (cast_dialog) { cast_dialog->ShowWindow(FALSE); cast_dialog->SetText(""); } /*if (ui_battlezone2_manager_) { ui_battlezone2_manager_->set_is_wait(false); } g_InterfaceManager.UnLockDlgs();*/ } } void uiBattlezone2Lobby::Unlocks() { if (ui_battlezone2_manager_) { ui_battlezone2_manager_->set_is_wait(false); } g_InterfaceManager.UnLockDlgs(); } void uiBattlezone2Lobby::NetworkProc(MSG_BASE* message_ptr) { //¹èƲÁ¸ ÆÐŶ¸¸ ó¸®ÇÑ´Ù if (message_ptr->m_byCategory != CG_PARTY) { return; } switch (message_ptr->m_byProtocol) { case CG_PARTY_START_ROOM_COUNT_BRD: { WaitGague(true); } break; case CG_PARTY_READY_STATE_BRD: { MSG_CG_PARTY_READY_STATE_BRD* recv_packet = (MSG_CG_PARTY_READY_STATE_BRD*)message_ptr; if (recv_packet) { GetManager()->SetReadyUserSlot(recv_packet->member_key_, recv_packet->ready_state_); } else { assert("CG_PARTY_READY_STATE_BRD: packet is null"); } } break; case CG_PARTY_ALLPLAYERS_CMD: { MSG_CG_PARTY_ALLPLAYERS_CMD* recv_packet = (MSG_CG_PARTY_ALLPLAYERS_CMD*)message_ptr; BYTE* pPacket = ( (BYTE*)(recv_packet) + sizeof(MSG_CG_PARTY_ALLPLAYERS_CMD) ); PLAYER_RENDER_INFO_EX* pRenderInfo = NULL; ETC_STATE_TOTAL_INFO* pShield = NULL; //is_ready_ = false; int max_count = 0; if (recv_packet) { max_count = recv_packet->m_byCount; } uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); for (int i = 0; i < max_count; i++) { pRenderInfo = (PLAYER_RENDER_INFO_EX *)pPacket; PLAYER_RENDER_INFO_EX output; // ÃʱâÈ­ ÇÊ¿ä ¾øÀ½. int nSize = PLAYER_RENDER_INFO_EX::ConvertForRecv(pRenderInfo, &output); pShield = (ETC_STATE_TOTAL_INFO *)( (BYTE*)(pPacket) + nSize ); //pVendorInfo = (VENDOR_RENDER_INFO*)( (BYTE*)(pShield) + pShield->GetSize() ); if (ui_battlezone2_manager_) { uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); DWORD master_key = partyMan->GetMasterKey(); if (ui_battlezone2_manager_ && partyMan) { ui_battlezone2_manager_->SetLobbyMasterPlayerKey(partyMan->GetMasterKey()); } else { assert(!"uiBattlezone2List::NetworkProc(CG_PARTY_ALLPLAYERS_CMD): Can't not find master key"); return; } UserSlot* user_slot = ui_battlezone2_manager_->FindPlayer(output.player_key); if (user_slot == NULL) { UserSlot EnterUser; EnterUser.SetPlayerKey(output.player_key); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS EnterUser.SetPlayerName(output.char_name); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS ui_battlezone2_manager_->AddPlayer(EnterUser); user_slot = ui_battlezone2_manager_->FindPlayer(output.player_key); } if ((user_slot != NULL) && (user_slot->GetBattleZonePlayerKey() <= 0)) { Player* player = GameFunc::MakeBattleZonePlayer(output, pShield, NULL, NULL, NULL); if (player != NULL) { player->SetShow(FALSE); user_slot->SetBattleZonePlayerKey(player->GetObjectKey()); } if (partyMan) { uicPartyMemberInfoPlus* party_member = partyMan->GetPartyMemberInfo(output.player_key); if (party_member) { if (party_member->is_ready()) { user_slot->SetSlotState(UserSlot::READY); } } } } } pPacket += (nSize + pShield->GetSize()); //pPacket += GetPlayerSize(pPacket,nSize); GetManager()->UnsetPKBool(uiBattlezone2Man::PACKET_STATUS_SEND_REQUEST_MEMBER); } } break; case CG_PARTY_ALLPLAYERS_EQUIPINFO_CMD: { MSG_CG_PARTY_ALLPLAYERS_EQUIPINFO_CMD* recv_packet = (MSG_CG_PARTY_ALLPLAYERS_EQUIPINFO_CMD*)message_ptr; // ù¹øÂ° ÀåÂøÁ¤º¸ÀÇ À§Ä¡¸¦ ¼ÂÆÃÇÑ´Ù. EQUIP_ITEM_BASEINFO *pEquipInfo = (EQUIP_ITEM_BASEINFO*)( (BYTE*)recv_packet + sizeof(MSG_CG_PARTY_ALLPLAYERS_EQUIPINFO_CMD) ); int max_count = 0; if (recv_packet) { max_count = recv_packet->m_byCount; } for (int i = 0; i < max_count; i++) { // ¾ÆÀÌÅÛ ½½·ÔÀÇ À§Ä¡¸¦ ¼ÂÆÃÇÑ´Ù. EQUIP_ITEM_BASEINFO::data_type* pItemSlot = (EQUIP_ITEM_BASEINFO::data_type*)((BYTE*)pEquipInfo + sizeof(EQUIP_ITEM_BASEINFO)); UserSlot* user_slot = ui_battlezone2_manager_->FindPlayer(pEquipInfo->m_dwObjectKey); if (user_slot != NULL) { Player* player = (Player*)g_ObjectManager.GetObject(user_slot->GetBattleZonePlayerKey()); if (player) { player->SetEquipItemBaseInfo(pEquipInfo->m_Count, pItemSlot); player->RefreshAppearRender(); } } // ´ÙÀ½ ÀåÂøÁ¤º¸ÀÇ À§Ä¡¸¦ ¼ÂÆÃÇÑ´Ù. pEquipInfo = (EQUIP_ITEM_BASEINFO*)((BYTE*)pItemSlot + pEquipInfo->m_Count * sizeof(EQUIP_ITEM_BASEINFO::data_type)); } } break; case CG_PARTY_RENDER_EFFECT_ITEM_LIST_CMD: { MSG_CG_PARTY_RENDER_EFFECT_ITEM_LIST_CMD* recv_packet = (MSG_CG_PARTY_RENDER_EFFECT_ITEM_LIST_CMD*)message_ptr; int iPlayerCnt = 0; if (recv_packet) { iPlayerCnt = recv_packet->m_Count; } sMSG_RENDER_EFFECT_ITEM_LIST* pOffsetOfList = (sMSG_RENDER_EFFECT_ITEM_LIST*)( ((BYTE*)recv_packet) + recv_packet->GetSize() ); for(int i = 0; i < iPlayerCnt; i++) { sMSG_RENDER_EFFECT_ITEM_LIST* pRender_effect_List = pOffsetOfList; UserSlot* user_slot = ui_battlezone2_manager_->FindPlayer(pRender_effect_List->m_PlayerKey); if (user_slot != NULL) { if( Player* pPlayer = (Player*)g_ObjectManager.GetObject(user_slot->GetBattleZonePlayerKey()) ) { int iItemCnt = pRender_effect_List->m_ItemCount; pPlayer->RefreshRenderEffectItem(pPlayer, &pRender_effect_List->m_ItemCodes[0], iItemCnt); } } pOffsetOfList = (sMSG_RENDER_EFFECT_ITEM_LIST*)( ((BYTE*)pOffsetOfList) + pOffsetOfList->GetSize() ); } } break; case CG_PARTY_JOIN_ROOM_BRD: { MSG_CG_PARTY_JOIN_ROOM_BRD* recv_packet = (MSG_CG_PARTY_JOIN_ROOM_BRD*)message_ptr; GetManager()->UnsetPKBool(uiBattlezone2Man::PACKET_STATUS_SEND_REQUEST_RENDER); if (GetManager() && GetManager()->battlezone_room_state() == uiBattlezone2Man::ROOM_STATE_LIST) { ShowInterface(TRUE); GetManager()->set_battlezone_room_state(uiBattlezone2Man::ROOM_STATE_LOBBY); GetManager()->ShowBattlezoneDialog(uiBattlezone2Man::BATTLEZONE2_DIALOG_LIST, false); GetManager()->ShowBattlezoneDialog(uiBattlezone2Man::BATTLEZONE2_DIALOG_RESERVATION, false); GetManager()->ShowBattlezoneDialog(uiBattlezone2Man::BATTLEZONE2_DIALOG_TREE, false); } PLAYER_RENDER_INFO_EX* pRenderInfo = (PLAYER_RENDER_INFO_EX*)( (BYTE*)(recv_packet) + sizeof(MSG_CG_PARTY_JOIN_ROOM_BRD) ); PLAYER_RENDER_INFO_EX output; // ÃʱâÈ­ ÇÊ¿ä ¾øÀ½. int nSize = PLAYER_RENDER_INFO_EX::ConvertForRecv(pRenderInfo, &output); //½¯µåÁ¤º¸°¡ ÀÌÁß°£¿¡ µé¾î¿Â´Ù ETC_STATE_TOTAL_INFO *pShield = (ETC_STATE_TOTAL_INFO*)((BYTE*)(pRenderInfo) + nSize); //ÀÌÅ¢Á¤º¸ EQUIP_ITEM_BASEINFO* pEquipInfo = (EQUIP_ITEM_BASEINFO*)((BYTE*)(pShield) + pShield->GetSize()); //ÀÌÆåÆ® Á¤º¸ sMSG_RENDER_EFFECT_ITEM_LIST* effect_item_info = (sMSG_RENDER_EFFECT_ITEM_LIST*)((BYTE*)(pEquipInfo) + pEquipInfo->GetSize()); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS // µé¾î¿À´Â »ç¶÷°ú °°Àº À̸§ÀÌ Á¸ÀçÇÏ¸é »èÁ¦ ui_battlezone2_manager_->DeleteDisConnectedUser(output.char_name); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS // ¹ö±×¼öÁ¤ : Áߺ¹+¾ù°¥¸° ÆÐŶÀ¸·Î ÆÄƼ¸¦ ¶°³­ À¯Àú°¡ ½½·Ô¿¡ »ðÀԵǴ Çö»ó ¼öÁ¤ uiPartyMan* party_manager = GET_DIALOG_MANAGER(uiPartyMan, UIMAN_PARTY); uicPartyMemberInfoPlus* party_member = NULL; if (party_manager) { party_member = party_manager->GetPartyMemberInfo(output.player_key); if (party_member == NULL) { return; } } UserSlot* user_slot = ui_battlezone2_manager_->FindPlayer(output.player_key); if (user_slot == NULL) { UserSlot EnterUser; EnterUser.SetPlayerKey(output.player_key); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS EnterUser.SetPlayerName(output.char_name); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS ui_battlezone2_manager_->AddPlayer(EnterUser); user_slot = ui_battlezone2_manager_->FindPlayer(output.player_key); } if (user_slot != NULL) { if (user_slot->GetBattleZonePlayerKey() <= 0) { Player* player = GameFunc::MakeBattleZonePlayer(output, pShield, NULL, pEquipInfo, effect_item_info); if (player != NULL) { player->SetShow(FALSE); player->SetAnimation("N002", TRUE); user_slot->SetBattleZonePlayerKey(player->GetObjectKey()); } } if (party_member->is_ready()) { user_slot->SetSlotState(UserSlot::READY); } } } break; case CG_PARTY_LEAVE_ROOM_ACK: { MSG_CG_PARTY_LEAVE_ROOM_ACK* recv_packet = (MSG_CG_PARTY_LEAVE_ROOM_ACK*)message_ptr; is_ready_ = false; if (recv_packet && recv_packet->result_value_ != RC::RC_PARTY_SUCCESS) { #ifdef _DEV_VER GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, "CG_PARTY_LEAVE_ROOM_ACK:result code(%d)", recv_packet->result_value_); #endif //_DEV_VER if (g_pHero && !g_pHero->IsParty())//½ÇÆÐÁö¸¸ ÆÄƼ°¡ ¾Æ´Ï¸é ³ª°¡ÀÚ { LeaveHero(); } return; } //BattleScene::SetLobbyFlag(FALSE); LeaveHero(); } break; case CG_PARTY_ROOM_START_ACK: { MSG_CG_PARTY_ROOM_START_ACK* recv_packet = (MSG_CG_PARTY_ROOM_START_ACK*)message_ptr; if (recv_packet && recv_packet->result_code_ != RC::RC_PARTY_SUCCESS) { uiPartyMan* party_manager = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); if (party_manager) { party_manager->Reason(recv_packet->result_code_); } ui_battlezone2_manager_->set_battlezone_room_state(uiBattlezone2Man::ROOM_STATE_LOBBY); ui_battlezone2_manager_->ShowBattlezoneDialog(uiBattlezone2Man::BATTLEZONE2_DIALOG_ICON, true); ui_battlezone2_manager_->set_is_wait(false); if (g_InterfaceManager.IsLockDlg()) { g_InterfaceManager.UnLockDlgs(); } if (GetManager() && GetManager()->IsMaster()) { SendGameReady();//¹æÀåÀε¥ °ÔÀÓ ½ÃÀÛ ½ÇÆÐ½Ã ·¹µð¸¦ Ǭ´Ù. } #ifdef _DEV_VER GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, "CG_PARTY_ROOM_START_ACK:result code(%d)", recv_packet->result_code_); #endif //_DEV_VER } } break; case CG_PARTY_LEAVE_ROOM_BRD: { MSG_CG_PARTY_LEAVE_ROOM_BRD* recv_packet = (MSG_CG_PARTY_LEAVE_ROOM_BRD*)message_ptr; if (ui_battlezone2_manager_) { DWORD master_key = 0; if (recv_packet && ui_battlezone2_manager_ && recv_packet->member_key_ == ui_battlezone2_manager_->master_player_key()) { /*uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY));*/ //ChangeMaster(recv_packet->member_key_); //master_key = partyMan->GetMasterKey(); //ui_battlezone2_manager_->SetLobbyMasterPlayerKey(recv_packet->member_key_); //¹æÀåÀÌ ³ª°¡¸é ¹æ ÃʱâÈ­ PartyRoomInfo* party_room_info = GetManager()->current_room_info(); if (party_room_info) { party_room_info->base_party_room_info.map_code_ = 0; SetBattleRoom(party_room_info); } } #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS if (recv_packet->reason_to_leave_ != eREASON_LEAVE_PARTY_ABNORMAL) #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS { // ºñÁ¤»ó Á¾·á°¡ ¾Æ´Ï¸é À¯Àú½½·Ô¿¡¼­ Á¦°Å ui_battlezone2_manager_->LeavePlayer(recv_packet->member_key_); } if (kick_player_key() == recv_packet->member_key_) { GetManager()->UnsetPKBool(uiBattlezone2Man::PACKET_STATUS_SEND_BAN); } if (g_pHero && g_pHero->GetObjectKey() == recv_packet->member_key_) { LeaveHero(); return; } } } break; case CG_PARTY_CHANGE_ROOM_OPTION_BRD: { MSG_CG_PARTY_CHANGE_ROOM_OPTION_BRD* recv_packet = (MSG_CG_PARTY_CHANGE_ROOM_OPTION_BRD*)message_ptr; PartyRoomInfo* party_room_info = GetManager()->current_room_info(); if (party_room_info && recv_packet) { party_room_info->base_party_room_info = recv_packet->change_party_room_info_; SetBattleRoom(party_room_info); if (recv_packet->change_party_room_info_.map_code_ == 0) { GetManager()->SetCancleAllReady(); } is_ready_ = false; } //GetManager()->SetCancleAllReady(); } break; case CG_PARTY_RESET_READY_STATE_CMD: { MSG_CG_PARTY_RESET_READY_STATE_CMD* recv_packet = (MSG_CG_PARTY_RESET_READY_STATE_CMD*)message_ptr; GetManager()->SetCancleAllReady(); is_ready_ = false; } break; case CG_PARTY_CREATE_ROOM_ACK: { MSG_CG_PARTY_CREATE_ROOM_ACK* recv_packet = (MSG_CG_PARTY_CREATE_ROOM_ACK*)message_ptr; if (recv_packet == NULL) { return; } if (recv_packet->result_code_ != RC::RC_PARTY_SUCCESS) { TCHAR string[INTERFACE_STRING_LENGTH] = {0,}; uiPartyMan* party_manager = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); if (party_manager) { party_manager->Reason(recv_packet->result_code_); uiBattlezone2Tree* battlezone2_tree = GET_CAST_DIALOG(uiBattlezone2Tree, IM_BATTLEZONE2_MANAGER::BATTLEZONE2_TREE); if (battlezone2_tree) { battlezone2_tree->set_last_create_room(0); } break; } #ifdef _DEV_VER GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, "MSG_CG_PARTY_CREATE_ROOM_ACK:result code(%d)", recv_packet->result_code_); #endif //_DEV_VER return; } if (ui_battlezone2_manager_) { ui_battlezone2_manager_->SetLobbyMasterPlayerKey(g_pHero->GetObjectKey()); UserSlot EnterUser; EnterUser.SetPlayerKey(g_pHero->GetObjectKey()); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS EnterUser.SetPlayerName(g_pHero->GetName()); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS ui_battlezone2_manager_->AddPlayer(EnterUser); is_ready_ = false; UserSlot* user_slot = ui_battlezone2_manager_->FindPlayer(EnterUser.GetPlayerKey()); if (user_slot != NULL) { if( user_slot->GetBattleZonePlayerKey() == 0 ) { DWORD battlezone_object_key = g_ObjectManager.GenerateKeyByBattleZonePlayer(PLAYER_OBJECT); Player* player = GameFunc::MakePlayer(battlezone_object_key, g_pHero, true); if (player != NULL) { player->SetShow(FALSE); user_slot->SetBattleZonePlayerKey(battlezone_object_key); } } } } ChatDialog* chat_dialog = GET_CAST_DIALOG(ChatDialog, IM_CHAT_MANAGER::CHAT_DIALOG); if (chat_dialog) { chat_dialog->OnPartyChat(); } ShowInterface(TRUE); SetBattleRoom(&recv_packet->party_room_info_); is_ready_ = false; } break; case CG_PARTY_CHANGE_MAX_PLAYER_COUNT_ACK: { MSG_CG_PARTY_CHANGE_MAX_PLAYER_COUNT_ACK* recv_message = (MSG_CG_PARTY_CHANGE_MAX_PLAYER_COUNT_ACK*)message_ptr; GetManager()->SetBlockUserSlot(); } break; case CG_PARTY_CHANGE_MAX_PLAYER_COUNT_BRD: { //if(BattleScene::IsLobby()) { // ¸¶½ºÅͰ¡ ¾Æ´Ò¶§¸¸ Àǹ̰¡ ÀÖ´Ù. // ÃÖ°í Àοø¼ö¿¡ µû¶ó µÚ¿¡¼­ºÎÅÍ ºí·°Çسª°£´Ù. if (GetManager()->IsMaster()) { return; } MSG_CG_PARTY_CHANGE_MAX_PLAYER_COUNT_BRD* recv_message = (MSG_CG_PARTY_CHANGE_MAX_PLAYER_COUNT_BRD*)message_ptr; GetManager()->SetNonBlockSlot(recv_message->max_count_); GetManager()->set_current_room_max_user_num(recv_message->max_count_); } } break; case CG_PARTY_PLAYER_MOVE_FIELD_BRD: { MSG_CG_PARTY_PLAYER_MOVE_FIELD_BRD* recv_message = (MSG_CG_PARTY_PLAYER_MOVE_FIELD_BRD*)message_ptr; uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); if (partyMan) { uicPartyMemberInfoPlus* member_info = partyMan->GetPartyMemberInfo(recv_message->member_key_); if (member_info) { member_info->set_map_code(recv_message->map_code_); partyMan->CheckOutputZoneType(); } } } break; case CG_PARTY_SELECT_TEAM_ACK: { MSG_CG_PARTY_SELECT_TEAM_ACK* recv_message = (MSG_CG_PARTY_SELECT_TEAM_ACK*)message_ptr; GetManager()->UnsetPKBool(uiBattlezone2Man::PACKET_STATUS_SEND_CHANGE_TEAM); if (recv_message && recv_message->result_code_ == RC::RC_PARTY_SUCCESS) { int a = 0; } else { //ÆÀº¯°æ ½ÇÆÐ } } break; case CG_PARTY_SELECT_TEAM_BRD: { MSG_CG_PARTY_SELECT_TEAM_BRD* recv_message = (MSG_CG_PARTY_SELECT_TEAM_BRD*)message_ptr; //ÆÀº¯°æ SetTeam(recv_message->member_key_, recv_message->select_team_); } break; } } void uiBattlezone2Lobby::ResetLobby() { uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); DWORD master_key = partyMan->GetMasterKey(); if (ui_battlezone2_manager_ && partyMan && g_pHero) { if (partyMan->GetPartyNum() != ui_battlezone2_manager_->GetUserSlotNum()) { int a = 0; } else { return; } } else { return; } ui_battlezone2_manager_->SetLobbyMasterPlayerKey(partyMan->GetMasterKey()); #ifdef _DH_BATTLEZONE2_LOBBY_SLOT UserSlot EnterUser1; EnterUser1.SetPlayerKey(g_pHero->GetObjectKey()); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS EnterUser1.SetPlayerName(g_pHero->GetName()); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS ui_battlezone2_manager_->AddPlayer(EnterUser1); #else UserSlot EnterUser, EnterUser1; if (master_key == g_pHero->GetObjectKey()) { EnterUser1.SetPlayerKey(g_pHero->GetObjectKey()); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS EnterUser1.SetPlayerName(g_pHero->GetName()); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS ui_battlezone2_manager_->AddPlayer(EnterUser1); } else { EnterUser.SetPlayerKey(master_key); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS EnterUser.SetPlayerName(partyMan->GetPartyLeader().Get().m_szCharName); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS ui_battlezone2_manager_->AddPlayer(EnterUser); EnterUser1.SetPlayerKey(g_pHero->GetObjectKey()); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS EnterUser1.SetPlayerName(g_pHero->GetName()); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS ui_battlezone2_manager_->AddPlayer(EnterUser1); } #endif// UserSlot* user_slot = ui_battlezone2_manager_->FindPlayer(EnterUser1.GetPlayerKey()); if (user_slot != NULL) { if( user_slot->GetBattleZonePlayerKey() == 0 ) { DWORD battlezone_object_key = g_ObjectManager.GenerateKeyByBattleZonePlayer(PLAYER_OBJECT); Player* player = GameFunc::MakePlayer(battlezone_object_key, g_pHero, true); if (player != NULL) { user_slot->SetBattleZonePlayerKey(battlezone_object_key); } } } // ÆÄƼÀå, ³ª¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö Ç÷¹À̾î if (ui_battlezone2_manager_ && partyMan) { for (int i = 0; i < partyMan->GetPartyNum(); ++i) { const uicPartyMemberInfoPlus member_info = partyMan->GetParty(i); const _PARTY_MEMBER_INFO party_member_info = member_info.Get(); DWORD member_key = party_member_info.m_dwMemberKey; #ifdef _DH_BATTLEZONE2_LOBBY_SLOT if (member_key != 0 && member_key != g_pHero->GetObjectKey()) #else if (member_key != 0 && member_key != g_pHero->GetObjectKey() && member_key != master_key) #endif//_DH_BATTLEZONE2_LOBBY_SLOT { UserSlot EnterUser; EnterUser.SetPlayerKey(member_key); #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS EnterUser.SetPlayerName(party_member_info.m_szCharName); #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS ui_battlezone2_manager_->AddPlayer(EnterUser); } } } } void uiBattlezone2Lobby::SetTeam(DWORD member_key, BYTE team) { //ÆÀº¯°æ UserSlot* user_slot = ui_battlezone2_manager_->FindPlayer(member_key); if (user_slot) { user_slot->SetTeam(team); } } void uiBattlezone2Lobby::SetBattleRoom(PartyRoomInfo* party_room_info) { if (GetManager()) { GetManager()->set_battlezone_room_state(uiBattlezone2Man::ROOM_STATE_LOBBY); GetManager()->ShowBattlezoneDialog(uiBattlezone2Man::BATTLEZONE2_DIALOG_LIST, false); GetManager()->ShowBattlezoneDialog(uiBattlezone2Man::BATTLEZONE2_DIALOG_TREE, false); GetManager()->ShowBattlezoneDialog(uiBattlezone2Man::BATTLEZONE2_DIALOG_RESERVATION, false); } GetManager()->set_current_room_info(party_room_info); SetBaseInfo(party_room_info); } void uiBattlezone2Lobby::Send_CG_PARTY_ROOM_FORCE_LEAVE_SYN() { #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS if (is_disconnected_uesr_kick_ == false) { if (GetManager()->SafePKBool(uiBattlezone2Man::PACKET_STATUS_SEND_BAN)) { GetManager()->SetPKBool(uiBattlezone2Man::PACKET_STATUS_SEND_BAN); MSG_CG_PARTY_ROOM_FORCE_LEAVE_SYN send_packet; send_packet.member_key_ = kick_player_key(); GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); } } else { if (GetManager()->SafePKBool( uiBattlezone2Man::PACKET_STATUS_SEND_DISCONNECTED_USER_BAN)) { GetManager()->SetPKBool( uiBattlezone2Man::PACKET_STATUS_SEND_DISCONNECTED_USER_BAN); // ºñÁ¤»ó Á¾·áÀÚ °­Åð ¿äû uiPartyMan* party_manager = GET_DIALOG_MANAGER(uiPartyMan, UIMAN_PARTY); if (party_manager) { MSG_CG_PARTY_RETURN_G2C_MEMBER_REMOVE_SYN send_packet; send_packet.request_party_key_ = party_manager->GetPartyKey(); StrnCopy(send_packet.leave_member_name_, kick_player_name_, MAX_CHARNAME_LENGTH); GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); } } } #else if (GetManager()->SafePKBool(uiBattlezone2Man::PACKET_STATUS_SEND_BAN)) { GetManager()->SetPKBool(uiBattlezone2Man::PACKET_STATUS_SEND_BAN); MSG_CG_PARTY_ROOM_FORCE_LEAVE_SYN send_packet; send_packet.member_key_ = kick_player_key(); GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); } #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS } void ConfirmKickMember(bool is_ok) { if (is_ok) { uiBattlezone2Lobby* battlezone_lobby_dialog = GET_CAST_DIALOG(uiBattlezone2Lobby, IM_BATTLEZONE2_MANAGER::BATTLEZONE2_LOBBY); if (battlezone_lobby_dialog) { battlezone_lobby_dialog->Send_CG_PARTY_ROOM_FORCE_LEAVE_SYN(); } } } bool uiBattlezone2Lobby::BanPlayerByIndex(int index) { assert(index >= 1 && index < MAX_VIEW_USER_SLOT-1); if (GetManager()->IsMaster()) { clicked_slot_index_ = index; // ¹æÀ常 ³»º¸³»±â¸¦ ÇÑ´Ù. UserSlot* user_slot = GetManager()->GetUserSlotByIndex(index); if (!user_slot) { assert(0); return FALSE; } switch (user_slot->GetSlotState()) { case UserSlot::READY: case UserSlot::FILL: { TCHAR message[INTERFACE_STRING_LENGTH] ={0,}; TCHAR temp_string[INTERFACE_STRING_LENGTH] ={0,}; uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); uiSystemMan* system_manager = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_SYSTEM)); if (partyMan && system_manager) { uicPartyMemberInfoPlus *party_info = partyMan->GetPartyMemberInfo(user_slot->GetPlayerKey()); if (party_info) { #ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS if (party_info->IsConnected() == true) { kick_player_key_ = party_info->Get().m_dwMemberKey; ZeroMemory(kick_player_name_, sizeof(kick_player_name_)); is_disconnected_uesr_kick_ = false; } else { StrnCopy(kick_player_name_, party_info->Get().m_szCharName, MAX_CHARNAME_LENGTH); kick_player_key_ = 0; is_disconnected_uesr_kick_ = true; } #else kick_player_key_ = party_info->Get().m_dwMemberKey; #endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS // %s´ÔÀ» ÆÄƼ¿¡¼­ Å»Åð½ÃŰ°Ú½À´Ï±î? g_InterfaceManager.GetInterfaceString(5215, temp_string, INTERFACE_STRING_LENGTH); Snprintf(message, INTERFACE_STRING_LENGTH-1, temp_string, party_info->Get().m_szCharName); system_manager->Sys_ConfirmLock(message, ConfirmKickMember); } } } break; default: { // ¿­·ÁÀְųª ºí·°µÈ ½½·ÔÀÌ´Ù. return FALSE; } break; } } else { assert(!"¹æÀ徯´Ï¸é µÆ°Åµç"); return FALSE; } return TRUE; } bool uiBattlezone2Lobby::BlockPlayer(int index) { if(!GetManager()) { return false; } //assert(index >= 1 && index < MAX_VIEW_USER_SLOT); // ¹æÀ常 ºí·°À» ÇÒ¼öÀÖ´ç if(ui_battlezone2_manager_ && !ui_battlezone2_manager_->IsMaster()) { return false; } clicked_slot_index_ = index; TCHAR message[INTERFACE_STRING_LENGTH] = {0,}; //int current_user_number = ui_battlezone2_manager_->GetNumUser(); //ui_battlezone2_manager_->m_iPendingPlayerIndex = index; UserSlot* user_slot = ui_battlezone2_manager_->GetUserSlotByIndex(index); if (!user_slot) { assert(0); return false; } // ÃÖ´ë À¯Àú¸¦ º¯°æÇØÁØ´Ù. ÃÖ¼Ò ÀοøÀº ÇöÀç ¼Â¸øÇÏ°Ô ÇÑ»óÅÂÀÌ´Ù. switch (user_slot->GetSlotState()) { case UserSlot::BLOCK: { // ºí·°µÈ À¯Àú´Â ¿ÀÇÂÇØÁà¾ßÁö // ÃÖ´ë À¯Àú Á¦ÇÑ¿¡ À§¹èµÇÁö ¾Ê´À³Ä? int opened_slot = ui_battlezone2_manager_->GetNonBlockUserSlotNum(); /*if (opened_slot >= ui_battlezone2_manager_->GetBattleRoomEntry().GetCurLimitMaxUser()) { // Àοø¼ö Á¦ÇÑ¿¡ À§¹è µË´Ï´Ù. const int c_iNotChangeMinNumber = 70245; g_InterfaceManager.GetInterfaceString(c_iNotChangeMinNumber, message, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Error(eOUTPUT_MSG_CHAT, message); g_InterfaceManager.ShowMessageBox(message, 10000); return FALSE; }*/ ++opened_slot; assert(opened_slot <= MAX_VIEW_USER_SLOT); ui_battlezone2_manager_->ModifyPlayerNumber(opened_slot); } break; case UserSlot::OPENED: { // ¿ÀÇÂµÈ À¯Àú´Â ºí·°ÇØÁà¾ßÁö int blocked_number = ui_battlezone2_manager_->GetBlockUserSlotNum(); int can_block_number = ui_battlezone2_manager_->GetMaxUserSlot() - blocked_number; //int max_limit_user = ui_battlezone2_manager_->GetBattleRoomEntry().GetCurLimitMinUser(); // TODO : ÀÏ´Ü Min User°¡ ¾øÀ¸´Ï±î 1·ÎÇÏÀÚ. // Min User º¸´Ù ÀÛ°Ô ºí·°ÇÒ¼ö ¾ø´Ù. // ÃÖ¼Ò À¯Àú Á¦ÇÑ¿¡ À§¹èµÇÁö ¾Ê´À³Ä? /*if (can_block_number <= max_limit_user) { // Àοø¼ö Á¦ÇÑ¿¡ À§¹è µË´Ï´Ù. const int c_iNotChangeMinNumber = 70244; g_InterfaceManager.GetInterfaceString(c_iNotChangeMinNumber, message, INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Error(eOUTPUT_MSG_CHAT, message); return FALSE; }*/ int change_number = ui_battlezone2_manager_->GetMaxUserSlot() - (blocked_number + 1); ui_battlezone2_manager_->ModifyPlayerNumber(change_number); } break; case UserSlot::FILL: case UserSlot::READY: { // ¹«½Ã. } break; default: assert(0); return false; break; } return true; } void uiBattlezone2Lobby::LeaveHero() { ShowInterface(FALSE);//¹æ³ª°¡±â if (GetManager() && GetManager()->battlezone_room_state() == uiBattlezone2Man::ROOM_STATE_MISSION) { //GetManager()->set_battlezone_room_state(uiBattlezone2Man::ROOM_STATE_LOBBY); } else { GetManager()->ShowBattlezoneDialog(uiBattlezone2Man::BATTLEZONE2_DIALOG_LIST, true); } if(ui_battlezone2_manager_ && g_pHero) { ui_battlezone2_manager_->LeavePlayer(g_pHero->GetObjectKey()); } if (GetManager()) { GetManager()->set_battlezone_room_state(uiBattlezone2Man::ROOM_STATE_LIST); GetManager()->FlushUserSlotSet(); } ChatDialog* chat_dialog = GET_CAST_DIALOG(ChatDialog, IM_CHAT_MANAGER::CHAT_DIALOG); if (chat_dialog) { chat_dialog->OnNoramlChat(); } } #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND //------------------------------------------------------------------------------ void uiBattlezone2Lobby::MovementButtonMessageProc(SI_MESSAGE* message) { static bool mouse_drag = false; // Ŭ¸¯ÀÎÁö. µå·¡±×ÀÎÁö ±¸º° static POINT mouse_cursor_start_point; //Ŭ¸¯ ½ÃÀÛÁ¡ if ((GetControlPosition_byID(message->dwCtrlID) == kControl_Check_C010 || GetControlPosition_byID(message->dwCtrlID) == kControl_Check_C011) == FALSE) { return; } switch (message->eResultMsg) { case RT_MSG_LBUTTONDOWN: { mouse_cursor_point.x = Mouse::Instance()->GetMouseX(); mouse_cursor_point.y = Mouse::Instance()->GetMouseY(); mouse_cursor_start_point.x = mouse_cursor_point.x; mouse_cursor_start_point.y = mouse_cursor_point.y; mouse_drag = false; } break; //case RT_MSG_LBUTTONUP: case RT_MSG_LBUTTONCLICK: { if (mouse_drag == false) //µå·¡±× ¾Æ´Ï°í Ŭ¸¯À̸é { if (GetControlPosition_byID(message->dwCtrlID) == kControl_Check_C011) { uiChaosSystemMan* chaos_manager = GET_DIALOG_MANAGER(uiChaosSystemMan, UIMAN_CHAOS); if (chaos_manager) { chaos_manager->ToggleChaoszoneDialog(); } } } CCtrlButtonCheckWZ* check_control = static_cast(GetControlWZ_byPosition(kControl_Check_C010)); if (check_control) { check_control->SetCheckState(true); } check_control = static_cast(GetControlWZ_byPosition(kControl_Check_C011)); if (check_control) { check_control->SetCheckState(false); } } break; case RT_MSG_MOUSEOVER: { if (g_Input.GetState( MOUSE_LBUTTON, IKS_MOUSE_KEY)) { LONG distance_x = Mouse::Instance()->GetMouseX() - mouse_cursor_point.x; LONG distance_y = Mouse::Instance()->GetMouseY() - mouse_cursor_point.y; mouse_cursor_point.x = Mouse::Instance()->GetMouseX(); mouse_cursor_point.y = Mouse::Instance()->GetMouseY(); FRECT dialog_rect; dialog_rect.left = GetDialogWZ()->GetDlgX() + distance_x; dialog_rect.top = GetDialogWZ()->GetDlgY() + distance_y; dialog_rect.right = dialog_rect.left + GetDialogWZ()->GetClientWZ()->GetSizeWidth(); dialog_rect.bottom = dialog_rect.top + GetDialogWZ()->GetClientWZ()->GetSizeHeight(); POINT app_size = g_pApplication->Get2DModeMapping(); // ui°¡ È­¸éÅ©±â¸¦ ¾È¹þ¾î³­´Ù¸é uiÀ̵¿ if (dialog_rect.left > 0 && dialog_rect.top > 0 && dialog_rect.right < app_size.x && dialog_rect.bottom < app_size.y) { MoveWindowWZ( dialog_rect.left, dialog_rect.top, GetDialogWZ()->GetClientWZ()->GetSizeWidth(), GetDialogWZ()->GetClientWZ()->GetSizeHeight() ); if (mouse_drag == false) { static float test_distance = 2.0f; //¸¹ÀÌ À̵¿ÇßÀ¸¸é if (abs(mouse_cursor_start_point.x - mouse_cursor_point.x) + abs(mouse_cursor_start_point.y - mouse_cursor_point.y) > test_distance) { mouse_drag = true; } } } } } break; } } #endif //_NA_008679_20160202_REWORK_BATTLEGROUND #endif //_DH_BATTLEZONE2_