]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Do the last change properly, and also hide our own effect in 1st person mode.
authorMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Sun, 3 Apr 2011 12:51:57 +0000 (15:51 +0300)
committerMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Sun, 3 Apr 2011 12:51:57 +0000 (15:51 +0300)
qcsrc/client/gibs.qc
qcsrc/server/g_damage.qc
qcsrc/server/g_violence.qc

index a37b5a2e0e8688f45f09b35c99c794c1f1e3f465..448c6aac38daa9e298c0c3b4110d49ca2fdaa502 100644 (file)
@@ -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);
 
index 6b2298eb965f1379a6321479722b4e3dae8a7e7d..55dc6f645dc742136df45e96c020ee7b5554b58b 100644 (file)
@@ -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;
index 82dd404ee618d96b658efcaea094d8f67f76e485..a1cd8932687018a0def403a0b19254880e6063bf 100644 (file)
@@ -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