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)
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;
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)
{
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;
+ }
}
}
}