if(attacker == this)
{
- // don't reset pushltime for this damage as it may be an attempt to
+ // don't reset pushltime for self damage as it may be an attempt to
// escape a lava pit or similar
//this.pushltime = 0;
this.istypefrag = 0;
float realdmg = damage - excess;
if (this != attacker && realdmg)
+ if (!(round_handler_IsActive() && !round_handler_IsRoundStarted()) && time >= game_starttime)
{
if (IS_PLAYER(attacker) && DIFF_TEAM(attacker, this)) {
GameRules_scoring_add(attacker, DMG, realdmg);
bool valid_damage_for_weaponstats = false;
Weapon awep = WEP_Null;
+ if (!(round_handler_IsActive() && !round_handler_IsRoundStarted()) && time >= game_starttime)
if(vbot || IS_REAL_CLIENT(this))
if(abot || IS_REAL_CLIENT(attacker))
if(attacker && this != attacker)
this.avelocity = '0 0 0';
// view from the floor
this.view_ofs = '0 0 -8';
- // toss the corpse
- set_movetype(this, MOVETYPE_TOSS);
+ if(this.move_movetype == MOVETYPE_NOCLIP)
+ {
+ // don't toss the corpse in this case, it can get stuck in solid (causing low fps)
+ // or fall indefinitely into the void if out of the map
+ this.velocity = '0 0 0';
+ }
+ else
+ {
+ // toss the corpse
+ set_movetype(this, MOVETYPE_TOSS);
+ }
// shootable corpse
this.solid = SOLID_CORPSE;
PS(this).ballistics_density = autocvar_g_ballistics_density_corpse;