enum Quest_Data { SPELL_FLAMES = 48454, SPELL_SMOKE = 48456, SPELL_BURNING_WATER = 48455, SPELL_QUEST_COMPLETE = 50290, NPC_PIRATE = 27233, }; class fire_upon_the_waters_helper : public CreatureScript { public: fire_upon_the_waters_helper() : CreatureScript("fire_upon_the_waters_helper") { } struct fire_upon_the_waters_helperAI : public NullCreatureAI { fire_upon_the_waters_helperAI(Creature* creature) : NullCreatureAI(creature) { } void SpellHit(Unit* caster, SpellInfo const* spell) { if (spell->Id == SPELL_BURNING_WATER) { caster->CastSpell(caster, SPELL_QUEST_COMPLETE, true); me->AddAura(SPELL_SMOKE,me); me->AddAura(SPELL_FLAMES,me); for(int i=0;i<10;i++) { if(Creature* pirate = me->FindNearestCreature(NPC_PIRATE, 30.0f, true)) me->Kill(pirate,true); } } } }; CreatureAI* GetAI(Creature* creature) const { return new fire_upon_the_waters_helperAI(creature); } };