From 82c24fb8603422412b0e83a2503861035d555db6 Mon Sep 17 00:00:00 2001 From: terencehill Date: Mon, 15 Jun 2020 16:02:21 +0200 Subject: [PATCH] Reimplement "Don't play any pain sound when hitting a frozen player (it happened while revive progress is on)" since the old implementation (429a67d) didn't let frozen players to be killed when they fall into the void --- qcsrc/server/player.qc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/qcsrc/server/player.qc b/qcsrc/server/player.qc index 62822f6f0..d9def3977 100644 --- a/qcsrc/server/player.qc +++ b/qcsrc/server/player.qc @@ -326,7 +326,12 @@ void PlayerDamage(entity this, entity inflictor, entity attacker, float damage, } } - if (time < this.spawnshieldtime && autocvar_g_spawnshield_blockdamage < 1) + if (STAT(FROZEN, this)) + { + if (!ITEM_DAMAGE_NEEDKILL(deathtype)) + damage = 0; + } + else if (time < this.spawnshieldtime && autocvar_g_spawnshield_blockdamage < 1) damage *= 1 - max(0, autocvar_g_spawnshield_blockdamage); if(deathtype & HITTYPE_SOUND) // sound based attacks cause bleeding from the ears @@ -411,8 +416,7 @@ void PlayerDamage(entity this, entity inflictor, entity attacker, float damage, if (take > 100) Violence_GibSplash_At(hitloc, force * -0.2, 3, 1, this, attacker); - if ((time >= this.spawnshieldtime || autocvar_g_spawnshield_blockdamage < 1) - && !STAT(FROZEN, this)) + if (time >= this.spawnshieldtime || autocvar_g_spawnshield_blockdamage < 1) { if (!(this.flags & FL_GODMODE)) { @@ -422,7 +426,7 @@ void PlayerDamage(entity this, entity inflictor, entity attacker, float damage, if(take) this.pauseregen_finished = max(this.pauseregen_finished, time + autocvar_g_balance_pause_health_regen); - if (time > this.pain_finished) //Don't switch pain sequences like crazy + if (time > this.pain_finished && !STAT(FROZEN, this)) // Don't switch pain sequences like crazy { this.pain_finished = time + 0.5; //Supajoe -- 2.39.2