void main() { float fDamageRange = 11.0; // Range of FireDamage int iMinDamage = 20; // Minimal Firedamage int iAddDamage = d6(8); // Additional (random) Damage // TotalDamage to an object is // iMinDamage + iAddDamage // Do the nice Fire Explosion effect eExpl = EffectVisualEffect(VFX_FNF_FIREBALL); ApplyEffectToObject(DURATION_TYPE_INSTANT,eExpl,OBJECT_SELF); // Do Damage to all Objects in a range defined by fDamageRange object o; effect eFireDamage; o = GetFirstObjectInShape(SHAPE_SPHERE,fDamageRange,GetLocation(OBJECT_SELF),TRUE,OBJECT_TYPE_ALL); while(GetIsObjectValid(o)) { eFireDamage = EffectDamage(iMinDamage + iAddDamage,DAMAGE_TYPE_FIRE, DAMAGE_POWER_PLUS_TWO); if (GetIsPC(o)){ ApplyEffectToObject(DURATION_TYPE_INSTANT,eFireDamage,o); } o = GetNextObjectInShape(SHAPE_SPHERE,fDamageRange,GetLocation(OBJECT_SELF),TRUE,OBJECT_TYPE_ALL); } ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(150, DAMAGE_TYPE_FIRE, DAMAGE_POWER_PLUS_FIVE), OBJECT_SELF ); }