From: Mircea Kitsune Date: Sat, 2 Apr 2011 15:46:44 +0000 (+0300) Subject: Return if a damage effect is already active for that player. Else shooting a player... X-Git-Tag: xonotic-v0.6.0~110^2^2~186 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=f9d4de755ce31f812d7bf918436d6a5201953d78;p=xonotic%2Fxonotic-data.pk3dir.git Return if a damage effect is already active for that player. Else shooting a player too much will cause the effect to spam, and network too many bites at a time (which could cause lag). Not fully sure if this is needed, but its safest for now. --- diff --git a/qcsrc/server/g_violence.qc b/qcsrc/server/g_violence.qc index 0cd2836fd..d37b57475 100644 --- a/qcsrc/server/g_violence.qc +++ b/qcsrc/server/g_violence.qc @@ -63,11 +63,13 @@ void Violence_WeaponDamage(entity pl, float type) } .float lifetime; +.float player_weapondamage_active; void Violence_WeaponDamage_DoRepeat() { if(time > self.lifetime) { + self.owner.player_weapondamage_active = FALSE; self.nextthink = 0; remove(self); return; @@ -79,6 +81,10 @@ void Violence_WeaponDamage_DoRepeat() void Violence_WeaponDamage_SetRepeat(entity pl, float type) { + // return if we already have a damage effect active, else too many damage effects get spammed + if(pl.player_weapondamage_active) + return; + entity repeater; repeater = spawn(); repeater.classname = "weapondamage_repeater"; @@ -88,4 +94,6 @@ void Violence_WeaponDamage_SetRepeat(entity pl, float type) repeater.lifetime = time + 3; // TO BE CVARED repeater.think = Violence_WeaponDamage_DoRepeat; repeater.nextthink = time; + + pl.player_weapondamage_active = TRUE; }