]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/cl_player.qc
Rebase @Debugger's damage-on-scoreboard
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / cl_player.qc
index 1b770121e8a8904b18ffe87312d271a8a885d741..ecbafc40b8a058f0afee2ae134ab1647249d163a 100644 (file)
 
 #include "../common/animdecide.qh"
 
+void Drop_Special_Items(entity player)
+{
+       // called when the player has become stuck or frozen
+       // so objective items aren't stuck with the player
+
+       MUTATOR_CALLHOOK(DropSpecialItems, player);
+}
+
 void CopyBody_Think(void)
 {SELFPARAM();
        if(self.CopyBody_nextthink && time > self.CopyBody_nextthink)
@@ -471,9 +479,18 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, int deathtyp
        self.dmg_take = self.dmg_take + take;//max(take - 10, 0);
        self.dmg_inflictor = inflictor;
 
-       float abot, vbot;
-       abot = (IS_BOT_CLIENT(attacker));
-       vbot = (IS_BOT_CLIENT(self));
+       if (self != attacker) {
+               float realdmg = damage - excess;
+               if (IS_PLAYER(attacker)) {
+                       PlayerScore_Add(attacker, SP_DMG, realdmg);
+               }
+               if (IS_PLAYER(self)) {
+                       PlayerScore_Add(self, SP_DMGTAKEN, realdmg);
+               }
+       }
+       
+       bool abot = (IS_BOT_CLIENT(attacker));
+       bool vbot = (IS_BOT_CLIENT(self));
 
        valid_damage_for_weaponstats = 0;
        Weapon awep = WEP_Null;
@@ -495,7 +512,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, int deathtyp
                dh = dh - max(self.health, 0);
                da = da - max(self.armorvalue, 0);
                WeaponStats_LogDamage(awep.m_id, abot, self.weapon, vbot, dh + da);
-               MUTATOR_CALLHOOK(PlayerDamaged, attacker, self, dh, da, hitloc);
+               MUTATOR_CALLHOOK(PlayerDamaged, attacker, self, dh, da, hitloc, deathtype);
        }
 
        if (self.health < 1)