From ff5438b5688d69c5ef63661cde9d278aa0b86bfa Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 22 Dec 2020 10:28:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=87=86=E5=A4=87=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/room.cc | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 7701db78..5fb54c36 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -1985,17 +1985,6 @@ void Room::NotifyGameStart() for (auto& pair : accountid_hash_) { pair.second->SendNotifyMsg(msg); } - for (int buff_id : map_meta_->buff_list) { - MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); - if (buff_meta) { - for (auto& pair : human_hash_) { - pair.second->AddBuff(pair.second, - buff_meta, - 1, - nullptr); - } - } - } waiting_start_ = true; xtimer.AddDeadLineTimerAndAttach @@ -2008,6 +1997,26 @@ void Room::NotifyGameStart() room->waiting_start_ = false; }, &xtimer_attacher_.timer_list_); + xtimer.AddDeadLineTimerAndAttach + (MetaMgr::Instance()->GetSysParamAsInt("prepare_time", 3000) / FRAME_RATE_MS, + a8::XParams() + .SetSender(this), + [] (const a8::XParams& param) + { + Room* room = (Room*)param.sender.GetUserData(); + for (int buff_id : room->map_meta_->buff_list) { + MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); + if (buff_meta) { + for (auto& pair : room->human_hash_) { + pair.second->AddBuff(pair.second, + buff_meta, + 1, + nullptr); + } + } + } + }, + &xtimer_attacher_.timer_list_); xtimer.AddDeadLineTimerAndAttach (SERVER_FRAME_RATE * 1, a8::XParams()