From: Mircea Kitsune Date: Sat, 2 Apr 2011 21:55:45 +0000 (+0300) Subject: If the repeater is being updated, increase its lifetime instead of re-setting it... X-Git-Tag: xonotic-v0.6.0~110^2^2~164 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=3a28fe255565579072999546d57c8018674ae0c3;p=xonotic%2Fxonotic-data.pk3dir.git 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... --- 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; }