From f9d4de755ce31f812d7bf918436d6a5201953d78 Mon Sep 17 00:00:00 2001 From: Mircea Kitsune Date: Sat, 2 Apr 2011 18:46:44 +0300 Subject: [PATCH] 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. --- qcsrc/server/g_violence.qc | 8 ++++++++ 1 file changed, 8 insertions(+) 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; } -- 2.39.2