From 7c95cb3a3c2cdfcf1ab8b03c38ba34667ce4cb5b Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 31 Aug 2022 15:36:23 +0800 Subject: [PATCH] 1 --- server/gameserver/room.cc | 19 +++++++++++++++++++ server/gameserver/room.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 01a39cc3..15b25805 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -1193,6 +1193,7 @@ void Room::UpdateGas() if (IsPveRoom()) { if (!IsGameOver() && ( + IsAllRealDead() || incubator_->IsTimeOut() || ( incubator_->IsLastWave() && @@ -4135,3 +4136,21 @@ void Room::OnEnterNewWave(int wave) a8::XPrintf("OnEnternerWave:%d\n", {wave}); #endif } + +bool Room::IsAllRealDead() +{ + bool is_all_dead = true; + TraverseHumanList + ( + a8::XParams(), + [&is_all_dead] (Human* hum, a8::XParams& param) + { + if (!hum->real_dead) { + is_all_dead = false; + return false; + } + return true; + } + ); + return is_all_dead; +} diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 0d4a9c3e..fb58d9d5 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -329,6 +329,8 @@ private: void UnInitDebugInfo(); #endif + bool IsAllRealDead(); + private: int room_idx_ = 0; RoomMode_e room_mode_ = kChiJiMode;