#include "prc_inc_spells" void main() { int nIncrement = GetLocalInt(OBJECT_SELF, "ExplosionTime"); int nTimeSet = nIncrement + 1; SetLocalInt(OBJECT_SELF, "ExplosionTime", nTimeSet); if (GetLocalInt(OBJECT_SELF, "ExplosionTime") >= 3) { object oCaster = OBJECT_SELF; int nCasterLvl = PRCGetCasterLevel(oCaster); int nMetaMagic = PRCGetMetaMagicFeat(); int nDamage; float fDelay; effect eExplode = EffectVisualEffect(VFX_FNF_FIREBALL); effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); effect eDam; location lTarget = GetLocation(OBJECT_SELF); int bdam = 5000; AssignCommand(oCaster, PlaySound("zep_explosion")); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_PLACEABLE); while (GetIsObjectValid(oTarget)) { ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(bdam, DAMAGE_TYPE_PIERCING), oTarget, 0.0f); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(bdam, DAMAGE_TYPE_FIRE), oTarget, 0.0f); DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_PLACEABLE); } } }