From 0c6a2b6f6da8427b25e805228269ddd2a04fe1f9 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 21 Apr 2023 16:44:32 +0800 Subject: [PATCH] 1 --- server/gameserver/incubator.cc | 3 ++- server/gameserver/room.cc | 1 + server/gameserver/room.h | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/server/gameserver/incubator.cc b/server/gameserver/incubator.cc index ad1528ac..ea90168c 100644 --- a/server/gameserver/incubator.cc +++ b/server/gameserver/incubator.cc @@ -70,7 +70,8 @@ void Incubator::AllocAndroid(Human* target, int num, std::vector* androi if (!room->xtimer.IsRunning()) { A8_ABORT(); } - if (target->room->IsGameOver()) { + if (target->room->IsGameOver() || + target->room->IsForceOver()) { return; } int try_count = 0; diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 2c3a9538..8749d3d9 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -3751,6 +3751,7 @@ void Room::ForceOver() return true; }); } + force_over_ = true; GameLog::Instance()->ForceOver(this); xtimer.SetTimeoutEx (SERVER_FRAME_RATE * 5, diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 123372c4..05155e48 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -92,6 +92,7 @@ public: long long GetBattleStartFrameNo() { return battle_start_frameno_; } bool IsGameOver() { return game_over_; } bool IsGameTimeOut() { return game_timeout_; } + bool IsForceOver() { return force_over_; } const GasData& GetGasData() { return gas_data_; } RoomType_e GetRoomType() { return room_type_; } RoomMode_e GetRoomMode() { return room_mode_; } @@ -394,6 +395,7 @@ private: FrameCallNode* work_node_ = nullptr; Team* victory_team_ = nullptr; + bool force_over_ = false; friend class Incubator; friend class Team;