From: Mircea Kitsune Date: Sat, 2 Apr 2011 20:57:50 +0000 (+0300) Subject: Turn the repeater entity into a field entity. This will allow us to modify its proper... X-Git-Tag: xonotic-v0.6.0~110^2^2~166 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=c9919c0a1f0b152fdcaa879541500ac65c8f9c58;p=xonotic%2Fxonotic-data.pk3dir.git Turn the repeater entity into a field entity. This will allow us to modify its properties, allowing some new features (such as modifying the existing damage effect rather than having to wait for it to finish so we can spawn a new one). --- diff --git a/qcsrc/server/g_violence.qc b/qcsrc/server/g_violence.qc index 932651de7..b88dab1c2 100644 --- a/qcsrc/server/g_violence.qc +++ b/qcsrc/server/g_violence.qc @@ -62,8 +62,9 @@ void Violence_DamageEffect(entity pl, float type) Net_LinkEntity(e, FALSE, 0.2, Violence_DamageEffect_SendEntity); } -.float lifetime; +.entity player_damageeffect_repeater; .float player_damageeffect_active; +.float lifetime; void Violence_DamageEffect_DoRepeat() { @@ -88,15 +89,14 @@ void Violence_DamageEffect_SetRepeat(entity pl, float damage, float type) if(pl.player_damageeffect_active) return; // return if we already have a damage effect active, else too many damage effects get spammed - entity repeater; - repeater = spawn(); - repeater.classname = "weapondamage_repeater"; - repeater.owner = pl; - repeater.origin = pl.origin; - repeater.cnt = type; - repeater.lifetime = time + (autocvar_sv_damageeffect_lifetime * damage); - repeater.think = Violence_DamageEffect_DoRepeat; - repeater.nextthink = time; + pl.player_damageeffect_repeater = spawn(); + pl.player_damageeffect_repeater.classname = "weapondamage_repeater"; + pl.player_damageeffect_repeater.owner = pl; + pl.player_damageeffect_repeater.origin = pl.origin; + pl.player_damageeffect_repeater.cnt = type; + pl.player_damageeffect_repeater.lifetime = time + (autocvar_sv_damageeffect_lifetime * damage); + pl.player_damageeffect_repeater.think = Violence_DamageEffect_DoRepeat; + pl.player_damageeffect_repeater.nextthink = time; pl.player_damageeffect_active = TRUE; }