Index: g_weapon.c =================================================================== --- g_weapon.c (revisione 160) +++ g_weapon.c (copia locale) @@ -1185,6 +1185,7 @@ zap->timeToLive = LEVEL2_AREAZAP_TIME; zap->damageUsed = 0; + zap->damageDelay= 0; zap->creator = creator; @@ -1262,8 +1263,18 @@ else source = zap->targets[ j - 1 ]; - damage = ceil( ( (float)msec / LEVEL2_AREAZAP_TIME ) * + if(zap->damageDelay+msec>=50) + { + + damage = ceil( ( (float)(zap->damageDelay+msec) / LEVEL2_AREAZAP_TIME ) * LEVEL2_AREAZAP_DMG * damageFraction ); + zap->damageDelay=0; + } + else + { + zap->damageDelay+=msec; + damage=0; + } // don't let a high msec value inflate the total damage if( damage + zap->damageUsed > LEVEL2_AREAZAP_DMG ) Index: g_local.h =================================================================== --- g_local.h (revisione 160) +++ g_local.h (copia locale) @@ -1009,6 +1021,7 @@ int timeToLive; int damageUsed; + int damageDelay; gentity_t *effectChannel; } zap_t;