void main() { object oCaster = OBJECT_SELF; float fDelay; effect eExplode = EffectVisualEffect(VFX_FNF_FIREBALL); effect eShock = EffectVisualEffect(VFX_IMP_PULSE_FIRE); effect eWash = EffectVisualEffect(VFX_FNF_FIRESTORM); effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); effect eShk = EffectVisualEffect(VFX_FNF_SCREEN_SHAKE); effect eDam; location lTarget = GetLocation(OBJECT_SELF); int bdam = d20(20) + 200; int pdam = d20(20) + 200; ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eShk, lTarget); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eShock, lTarget); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eWash, lTarget); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eShk, lTarget); object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE); while (GetIsObjectValid(oTarget)) { ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(pdam, 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); } //radius of the explosion check float nRadius = 20.0; // Only scan for creature objects, ignoring WPs, etc. object oTarget2 = GetFirstObjectInShape(SHAPE_SPHERE,nRadius,lTarget,TRUE,OBJECT_TYPE_PLACEABLE); while( oTarget2 != OBJECT_INVALID ) { string sItemTag = GetTag(oTarget2); if (sItemTag=="QuestVault") { DestroyObject(oTarget2); } if (sItemTag=="QuestVault2") { DestroyObject(oTarget2); } oTarget2 = GetNextObjectInShape(SHAPE_SPHERE,nRadius,lTarget,TRUE,OBJECT_TYPE_PLACEABLE); } DestroyObject(OBJECT_SELF); ActionDoCommand(PlaySound("zep_explosion")); }