X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fserver%2Fcl_player.qc;h=b8b3618de1cb3c8301aa79bd08a25b2cd261db69;hb=1245fb3e998e9ace1b301dbe4bfb84b55f25bdf4;hp=9ab358635b2e47bbbd22030c68da337b5b4a4689;hpb=9077dc21021e33f85cf06f30fbe303614786f2e0;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc index 9ab358635..b8b3618de 100644 --- a/qcsrc/server/cl_player.qc +++ b/qcsrc/server/cl_player.qc @@ -167,13 +167,6 @@ void player_anim (void) animbits |= ANIMSTATE_DUCK; animdecide_setstate(self, animbits, false); animdecide_setimplicitstate(self, (self.flags & FL_ONGROUND)); - - if (self.weaponentity) - { - updateanim(self.weaponentity); - if (!self.weaponentity.animstate_override) - setanim(self.weaponentity, self.weaponentity.anim_idle, true, false, false); - } } void PlayerCorpseDamage (entity inflictor, entity attacker, float damage, int deathtype, vector hitloc, vector force) @@ -479,9 +472,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; @@ -503,7 +505,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) @@ -643,7 +645,10 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, int deathtyp { Weapon w = get_weaponinfo(j); w.wr_resetplayer(w); - ATTACK_FINISHED_FOR(self, j) = 0; + for (int slot = 0; slot < MAX_WEAPONSLOTS; ++slot) + { + ATTACK_FINISHED_FOR(self, j, slot) = 0; + } } } }