//Usage: Caller explodes after a delay and damages nearby objects for 2d6 fire // damage (Reflex save DC 25) //Notes: // v1.0: Release version // void ExplodeAtLocation(location lTarget, int nDamage, int nSaveDC = 25, float fRadius = 3.) { ApplyEffectAtLocation( DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), lTarget); object oObject = GetFirstObjectInShape(SHAPE_SPHERE, fRadius, lTarget); do { int nDamageAfterSave = GetReflexAdjustedDamage(nDamage, oObject, nSaveDC); ApplyEffectToObject( DURATION_TYPE_INSTANT, EffectDamage(nDamageAfterSave, DAMAGE_TYPE_FIRE), oObject); } while ((oObject = GetNextObjectInShape(SHAPE_SPHERE, fRadius, lTarget)) != OBJECT_INVALID); } // void main() { location lSource = GetLocation(OBJECT_SELF); DelayCommand(3., ExplodeAtLocation(lSource, d12(6))); }