From e5a55e77038e3d36e3d26bb024cb6657c1957fa1 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 21 May 2019 11:38:16 +0800 Subject: [PATCH] 1 --- server/gameserver/room.cc | 32 +++++++++++++++++++------------- server/gameserver/room.h | 1 + 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 5cf43f7..75c2d44 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -178,6 +178,7 @@ void Room::AddPlayer(Player* hum) while (human_hash_.size() > ROOM_MAX_PLAYER_NUM) { RandRemoveAndroid(); } + NotifyUiUpdate(); } unsigned short Room::AllocUniid() @@ -588,19 +589,7 @@ void Room::OnHumanDie(Human* hum) frame_event.AddExplosionEx(hum, 0, hum->pos, 1); } --alive_count_; - xtimer.AddDeadLineTimerAndAttach(0, - a8::XParams() - .SetSender(this), - [] (const a8::XParams& param) - { - Room* room = (Room*)param.sender.GetUserData(); - room->TouchPlayerList(a8::XParams(), - [] (Player * hum, a8::XParams & param) - { - hum->SendUIUpdate(); - }); - }, - &xtimer_attacher.timer_list_); + NotifyUiUpdate(); } bool Room::OverBorder(const Vector2D pos, float radius) @@ -1185,3 +1174,20 @@ void Room::RandRemoveAndroid() --alive_count_; } } + +void Room::NotifyUiUpdate() +{ + xtimer.AddDeadLineTimerAndAttach(0, + a8::XParams() + .SetSender(this), + [] (const a8::XParams& param) + { + Room* room = (Room*)param.sender.GetUserData(); + room->TouchPlayerList(a8::XParams(), + [] (Player * hum, a8::XParams & param) + { + hum->SendUIUpdate(); + }); + }, + &xtimer_attacher.timer_list_); +} diff --git a/server/gameserver/room.h b/server/gameserver/room.h index d3dbcb9..c84a778 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -110,6 +110,7 @@ private: void AddObjectLater(Entity* entity); void OnGameOver(); void RandRemoveAndroid(); + void NotifyUiUpdate(); private: timer_list* stats_timer_ = nullptr;