From: terencehill Date: Tue, 20 Nov 2012 21:37:40 +0000 (+0100) Subject: Make player code more generic by detecting after the mutator hook PlayerDies if the... X-Git-Tag: xonotic-v0.7.0~61^2~115 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=1d3a8057784db4e983ffff5c39fbd0747aa07c47;p=xonotic%2Fxonotic-data.pk3dir.git Make player code more generic by detecting after the mutator hook PlayerDies if the player has been "resuscitated" (frozen player case) --- 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)