From 6bbc463dada078044df5c0ed1733187e6f05c0e8 Mon Sep 17 00:00:00 2001 From: Mircea Kitsune Date: Thu, 25 Aug 2011 19:36:38 +0300 Subject: [PATCH] Re-implement lifetime for the effects --- qcsrc/client/autocvars.qh | 2 ++ qcsrc/client/damage.qc | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index ac12dd8d9..df6814349 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -365,3 +365,5 @@ string autocvar__togglezoom; float autocvar_cl_damageeffect_player; float autocvar_cl_damageeffect_gibs; float autocvar_cl_damageeffect_gibs_randomize; +float autocvar_cl_damageeffect_lifetime; +float autocvar_cl_damageeffect_lifetime_max; diff --git a/qcsrc/client/damage.qc b/qcsrc/client/damage.qc index cf65d9d73..1f6efab3e 100644 --- a/qcsrc/client/damage.qc +++ b/qcsrc/client/damage.qc @@ -239,6 +239,7 @@ void DamageInfo_Precache() .entity dmgent; .float dmgpartnum, dmgtime; +.float lifetime; void Ent_DamageEffect_Think() { @@ -247,6 +248,12 @@ void Ent_DamageEffect_Think() float foundgib; entity entcs; + if(time >= self.lifetime) + { + remove(self); + self = world; + return; + } if(self.dmgtime > time) return; entcs = entcs_receiver[self.team]; @@ -262,7 +269,7 @@ void Ent_DamageEffect_Think() { if(autocvar_cl_damageeffect_gibs) { - if(autocvar_cl_damageeffect_gibs_randomize < random()) + if(autocvar_cl_damageeffect_gibs_randomize >= random()) pointparticles(self.dmgpartnum, head.origin, '0 0 0', 1); self.dmgtime = time + autocvar_cl_damageeffect_gibs; } @@ -327,6 +334,7 @@ void Ent_DamageEffect() e.classname = "damageeffect"; e.team = entnumber - 1; e.dmgpartnum = particleeffectnum(effectnum); + e.lifetime = time + bound(0, dmg * autocvar_cl_damageeffect_lifetime, autocvar_cl_damageeffect_lifetime_max); e.think = Ent_DamageEffect_Think; e.nextthink = time; } -- 2.39.2