From a0de81fcf209052d4152b6c17a75bdd11086f516 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 29 May 2020 20:43:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96NotifyGameStart?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/room.cc | 109 +++++++++++++++++++++----------------- server/gameserver/room.h | 1 + 2 files changed, 60 insertions(+), 50 deletions(-) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index e2c92ec..17eeb24 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -1580,58 +1580,33 @@ void Room::NotifyGameStart() cs::SMGameStart msg; for (auto& pair : accountid_hash_) { pair.second->SendNotifyMsg(msg); - if (room_type_ == RT_NewBrid) { - first_newbie_ = pair.second; - } } - xtimer.AddDeadLineTimerAndAttach(SERVER_FRAME_RATE * 1, - a8::XParams() - .SetSender(this), - [] (const a8::XParams& param) - { - Room* room = (Room*)param.sender.GetUserData(); - room->ProcDisableHuman(); - room->SecondRandPoint(); - }, - &xtimer_attacher_.timer_list_); + waiting_start_ = true; - xtimer.AddDeadLineTimerAndAttach(SERVER_FRAME_RATE * 2, - a8::XParams() - .SetSender(this), - [] (const a8::XParams& param) - { - Room* room = (Room*)param.sender.GetUserData(); - room->waiting_start_ = false; - }, - &xtimer_attacher_.timer_list_); - if (room_type_ == RT_NewBrid) { - xtimer.AddDeadLineTimerAndAttach - (SERVER_FRAME_RATE * MetaMgr::Instance()->level0room_robot_protect_time, - a8::XParams() - .SetSender(this), - [] (const a8::XParams& param) - { - Room* room = (Room*)param.sender.GetUserData(); - if (room->GetFirstNewBie()) { - room->GetFirstNewBie()->ProcNewBieLogic(); - } - }, - &xtimer_attacher_.timer_list_); - } - if (room_type_ == RT_MidBrid) { - xtimer.AddDeadLineTimerAndAttach - (SERVER_FRAME_RATE * MetaMgr::Instance()->level1room_shua_robot_min_time, - a8::XParams() - .SetSender(this), - [] (const a8::XParams& param) - { - Room* room = (Room*)param.sender.GetUserData(); -#if 0 - room->ShuaAndroidTimerFunc(); -#endif - room->DieAndroidTimerFunc(); - }, - &xtimer_attacher_.timer_list_); + xtimer.AddDeadLineTimerAndAttach + (SERVER_FRAME_RATE * 2, + a8::XParams() + .SetSender(this), + [] (const a8::XParams& param) + { + Room* room = (Room*)param.sender.GetUserData(); + room->waiting_start_ = false; + }, + &xtimer_attacher_.timer_list_); + xtimer.AddDeadLineTimerAndAttach + (SERVER_FRAME_RATE * 1, + a8::XParams() + .SetSender(this), + [] (const a8::XParams& param) + { + Room* room = (Room*)param.sender.GetUserData(); + room->ProcDisableHuman(); + room->SecondRandPoint(); + }, + &xtimer_attacher_.timer_list_); + + if (room_type == RT_NewBrid || room_type == RT_MidBrid) { + NewBieRoomStart(); } } @@ -2454,3 +2429,37 @@ void Room::ForceSetBornPoint(Human* hum, BornPoint* born_point) grid_service->MoveHuman(hum); } } + +void Room::NewBieRoomStart() +{ + if (room_type_ == RT_NewBrid) { + for (auto& pair : accountid_hash_) { + first_newbie_ = pair.second; + break; + } + xtimer.AddDeadLineTimerAndAttach + (SERVER_FRAME_RATE * MetaMgr::Instance()->level0room_robot_protect_time, + a8::XParams() + .SetSender(this), + [] (const a8::XParams& param) + { + Room* room = (Room*)param.sender.GetUserData(); + if (room->GetFirstNewBie()) { + room->GetFirstNewBie()->ProcNewBieLogic(); + } + }, + &xtimer_attacher_.timer_list_); + } + if (room_type_ == RT_MidBrid) { + xtimer.AddDeadLineTimerAndAttach + (SERVER_FRAME_RATE * MetaMgr::Instance()->level1room_shua_robot_min_time, + a8::XParams() + .SetSender(this), + [] (const a8::XParams& param) + { + Room* room = (Room*)param.sender.GetUserData(); + room->DieAndroidTimerFunc(); + }, + &xtimer_attacher_.timer_list_); + } +} diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 8b4931a..1bfe718 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -178,6 +178,7 @@ private: void AddPlayerPostProc(Player* hum); void CombineTeamBornPoint(); void ForceSetBornPoint(Human* hum, BornPoint* born_point); + void NewBieRoomStart(); #ifdef DEBUG void InitDebugInfo();