From 3a28fe255565579072999546d57c8018674ae0c3 Mon Sep 17 00:00:00 2001 From: Mircea Kitsune Date: Sun, 3 Apr 2011 00:55:45 +0300 Subject: [PATCH] If the repeater is being updated, increase its lifetime instead of re-setting it entirely. This fixes the shotgun among other things, where only the damage of one bullet would be taken into account. Also fix an issue I can't understand with some field entities... --- qcsrc/server/g_violence.qc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/qcsrc/server/g_violence.qc b/qcsrc/server/g_violence.qc index a3026d871..922143dc3 100644 --- a/qcsrc/server/g_violence.qc +++ b/qcsrc/server/g_violence.qc @@ -70,8 +70,8 @@ void Violence_DamageEffect_DoRepeat() if(time > self.lifetime) { self.nextthink = 0; - self = world; - remove(self); + remove(self.owner.damageeffect_repeater); + self.owner.damageeffect_repeater = world; return; } @@ -92,9 +92,16 @@ void Violence_DamageEffect_SetRepeat(entity pl, float damage, float type) pl.damageeffect_repeater.classname = "damageeffect_repeater"; pl.damageeffect_repeater.owner = pl; pl.damageeffect_repeater.think = Violence_DamageEffect_DoRepeat; + + pl.damageeffect_repeater.lifetime = time + (autocvar_sv_damageeffect_lifetime * damage); + } + else + { + // if the repeater is being updated, increase its lifetime instead of re-setting it entirely + // this fixes the shotgun among other things, where only the damage of one bullet would be taken into account + pl.damageeffect_repeater.lifetime += (autocvar_sv_damageeffect_lifetime * damage); } pl.damageeffect_repeater.cnt = type; - pl.damageeffect_repeater.lifetime = time + (autocvar_sv_damageeffect_lifetime * damage); pl.damageeffect_repeater.nextthink = time; } -- 2.39.2