From 9ca06774e9668ed615071e51f4fd08383c945aba Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 31 Jul 2020 20:30:37 +0800 Subject: [PATCH] 1 --- server/gameserver/human.cc | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index fcb5d5e..78d017b 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1233,9 +1233,29 @@ bool Human::HasLiveTeammate() bool Human::HasNoDownedTeammate() { - if (room->GetRoomMode() == kZombieMode && - GetRace() == kHumanRace) { - return true; + if (room->GetRoomMode() == kZombieMode) { + if (GetRace() == kHumanRace) { + bool has_now_downed_teammate = false; + Human* myself = this; + room->TouchHumanList + ( + a8::XParams(), + [myself, &has_now_downed_teammate] (Human* hum, const a8::XParams& param) + { + if (myself != hum && + !hum->dead && + !hum->downed && + hum->GetRace() == kHumanRace) { + has_now_downed_teammate = true; + return false; + } + return true; + } + ); + return has_now_downed_teammate; + } else { + return false; + } } if (team_members) { for (auto& hum : *team_members) {