From 38f945ff985785468311898696c167b1f8c2e8ba Mon Sep 17 00:00:00 2001 From: Mircea Kitsune Date: Sun, 3 Apr 2011 15:51:57 +0300 Subject: [PATCH] Do the last change properly, and also hide our own effect in 1st person mode. --- qcsrc/client/gibs.qc | 7 +++++-- qcsrc/server/g_damage.qc | 2 +- qcsrc/server/g_violence.qc | 6 +++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/qcsrc/client/gibs.qc b/qcsrc/client/gibs.qc index a37b5a2e0..448c6aac3 100644 --- a/qcsrc/client/gibs.qc +++ b/qcsrc/client/gibs.qc @@ -277,14 +277,14 @@ void GibSplash_Precache() void Ent_DamageEffect() { - float type, specnum1, specnum2, isself; + float type, specnum1, specnum2, entnumber; vector org; string specstr, effectnum; entity e; type = ReadByte(); // damage weapon specnum1 = ReadByte(); // player species - isself = ReadByte(); // is self + entnumber = ReadByte(); // player entnum org_x = ReadCoord(); org_y = ReadCoord(); org_z = ReadCoord(); @@ -293,6 +293,9 @@ void Ent_DamageEffect() return; if(autocvar_cl_gentle || autocvar_cl_gentle_damage) return; + // if we aren't in third person mode, hide our own damage effect + if(entnumber == player_localentnum && !autocvar_chase_active) + return; e = get_weaponinfo(type); diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 6b2298eb9..55dc6f645 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -499,7 +499,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float { // if the target is a player or dead body, activate damage effects if(targ.classname == "player" || targ.classname == "body") - Violence_DamageEffect_SetRepeat(targ, damage, DEATH_WEAPONOF(deathtype), targ == self); + Violence_DamageEffect_SetRepeat(targ, damage, DEATH_WEAPONOF(deathtype)); float mirrordamage; float mirrorforce; diff --git a/qcsrc/server/g_violence.qc b/qcsrc/server/g_violence.qc index 82dd404ee..a1cd89326 100644 --- a/qcsrc/server/g_violence.qc +++ b/qcsrc/server/g_violence.qc @@ -43,7 +43,7 @@ float Violence_DamageEffect_SendEntity(entity to, float sf) WriteByte(MSG_ENTITY, ENT_CLIENT_DAMAGEEFFECT); WriteByte(MSG_ENTITY, self.cnt); // the damage weapon WriteByte(MSG_ENTITY, self.state); // species - WriteByte(MSG_ENTITY, self.team); // is self + WriteByte(MSG_ENTITY, self.team); // player entnum WriteCoord(MSG_ENTITY, floor(self.origin_x)); WriteCoord(MSG_ENTITY, floor(self.origin_y)); WriteCoord(MSG_ENTITY, floor(self.origin_z)); @@ -58,6 +58,7 @@ void Violence_DamageEffect(entity pl, float type) e.classname = "weapondamage"; e.cnt = type; e.state |= 8 * pl.species; // gib type, ranges from 0 to 15 + e.team = num_for_edict(pl); setorigin(e, pl.origin); Net_LinkEntity(e, FALSE, 0.2, Violence_DamageEffect_SendEntity); @@ -80,7 +81,7 @@ void Violence_DamageEffect_DoRepeat() self.nextthink = time + autocvar_sv_damageeffect_tick; } -void Violence_DamageEffect_SetRepeat(entity pl, float damage, float type, float isself) +void Violence_DamageEffect_SetRepeat(entity pl, float damage, float type) { if not(autocvar_sv_damageeffect_tick && autocvar_sv_damageeffect_lifetime) return; @@ -95,7 +96,6 @@ void Violence_DamageEffect_SetRepeat(entity pl, float damage, float type, float pl.damageeffect_repeater.owner = pl; pl.damageeffect_repeater.think = Violence_DamageEffect_DoRepeat; - pl.damageeffect_repeater.team = isself; pl.damageeffect_repeater.lifetime = time + (autocvar_sv_damageeffect_lifetime * damage); } else -- 2.39.2