From b7ac9ade38c50b8e44813a82840d3d0ec75a3540 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Thu, 27 Aug 2020 06:33:44 +0200 Subject: [PATCH] Counter-Strike: Fixed hostage-rescue zone generation check. Exposed by trying to play bhd_cs by Nipper --- src/server/cstrike/func_hostage_rescue.cpp | 3 +++ src/server/cstrike/gamerules_multiplayer.cpp | 4 +--- src/server/cstrike/info_hostage_rescue.cpp | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/server/cstrike/func_hostage_rescue.cpp b/src/server/cstrike/func_hostage_rescue.cpp index 75f17e89..02c8fd9b 100644 --- a/src/server/cstrike/func_hostage_rescue.cpp +++ b/src/server/cstrike/func_hostage_rescue.cpp @@ -55,6 +55,9 @@ func_hostage_rescue::touch(void) return; } + if (!((player)hosty.m_eFollowing)) + return; + Radio_BroadcastMessage(RADIO_RESCUED); g_cs_hostagesrescued++; diff --git a/src/server/cstrike/gamerules_multiplayer.cpp b/src/server/cstrike/gamerules_multiplayer.cpp index 98edc432..c5bdca30 100644 --- a/src/server/cstrike/gamerules_multiplayer.cpp +++ b/src/server/cstrike/gamerules_multiplayer.cpp @@ -149,9 +149,7 @@ CSMultiplayerRules::CreateRescueZones(void) /* count the already existing rescue zones. */ for (entity e = world; (e = find(e, ::classname, "func_hostage_rescue"));) { - if (e.team == TEAM_CT) { - zones++; - } + zones++; } /* we don't need to create any additional rescue zones. */ diff --git a/src/server/cstrike/info_hostage_rescue.cpp b/src/server/cstrike/info_hostage_rescue.cpp index 834cb432..01c0edba 100644 --- a/src/server/cstrike/info_hostage_rescue.cpp +++ b/src/server/cstrike/info_hostage_rescue.cpp @@ -54,6 +54,10 @@ info_hostage_rescue::touch(void) return; } + /* some custom maps are very smart... */ + if (!((player)hosty.m_eFollowing)) + return; + Radio_BroadcastMessage(RADIO_RESCUED); g_cs_hostagesrescued++;