From 1d3a8057784db4e983ffff5c39fbd0747aa07c47 Mon Sep 17 00:00:00 2001 From: terencehill Date: Tue, 20 Nov 2012 22:37:40 +0100 Subject: [PATCH] Make player code more generic by detecting after the mutator hook PlayerDies if the player has been "resuscitated" (frozen player case) --- qcsrc/server/cl_player.qc | 9 +++++---- qcsrc/server/mutators/base.qh | 1 - qcsrc/server/mutators/gamemode_freezetag.qc | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc index 64329f23e..f9b8f7313 100644 --- a/qcsrc/server/cl_player.qc +++ b/qcsrc/server/cl_player.qc @@ -692,8 +692,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht frag_inflictor = inflictor; frag_target = self; frag_deathtype = deathtype; - if (MUTATOR_CALLHOOK(PlayerDies)) - return; + MUTATOR_CALLHOOK(PlayerDies); weapon_action(self.weapon, WR_PLAYERDEATH); @@ -718,11 +717,13 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht if(g_arena) Spawnqueue_Unmark(self); - if(g_freezetag) + // player could have been miraculously resuscitated ;) + // e.g. players in freezetag get frozen, they don't really die + if(self.health >= 1) return; // when we get here, player actually dies - // clear waypoints (do this AFTER FreezeTag) + // clear waypoints WaypointSprite_PlayerDead(); // make the corpse upright (not tilted) diff --git a/qcsrc/server/mutators/base.qh b/qcsrc/server/mutators/base.qh index 976eb8401..e276d555c 100644 --- a/qcsrc/server/mutators/base.qh +++ b/qcsrc/server/mutators/base.qh @@ -53,7 +53,6 @@ MUTATOR_HOOKABLE(ClientDisconnect); MUTATOR_HOOKABLE(PlayerDies); // called when a player dies to e.g. remove stuff he was carrying. - // return 1 to skip death animation, gibs and such (e.g. if player must respawn immediately) // INPUT: entity frag_inflictor; entity frag_attacker; diff --git a/qcsrc/server/mutators/gamemode_freezetag.qc b/qcsrc/server/mutators/gamemode_freezetag.qc index edd5c0002..d4502f9b4 100644 --- a/qcsrc/server/mutators/gamemode_freezetag.qc +++ b/qcsrc/server/mutators/gamemode_freezetag.qc @@ -292,7 +292,7 @@ MUTATOR_HOOKFUNCTION(freezetag_PlayerDies) } PutClientInServer(); // respawn the player self.health = 1; - return 1; + return 0; } if(self.freezetag_frozen == 0) -- 2.39.2