diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Outland/nagrand.cpp | 40 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 42 |
2 files changed, 42 insertions, 40 deletions
diff --git a/src/server/scripts/Outland/nagrand.cpp b/src/server/scripts/Outland/nagrand.cpp index a18f16fbf2c..21265a1b7f2 100644 --- a/src/server/scripts/Outland/nagrand.cpp +++ b/src/server/scripts/Outland/nagrand.cpp @@ -26,7 +26,6 @@ EndScriptData */ /* ContentData mob_shattered_rumbler mob_lump -mob_sunspring_villager npc_altruis_the_sufferer npc_greatmother_geyah npc_lantresor_of_the_blade @@ -243,44 +242,6 @@ public: }; -/*#### -# mob_sunspring_villager - should be done with ACID -####*/ - -class mob_sunspring_villager : public CreatureScript -{ -public: - mob_sunspring_villager() : CreatureScript("mob_sunspring_villager") { } - - CreatureAI* GetAI(Creature* creature) const - { - return new mob_sunspring_villagerAI (creature); - } - - struct mob_sunspring_villagerAI : public ScriptedAI - { - mob_sunspring_villagerAI(Creature* c) : ScriptedAI(c) {} - - void Reset() - { - me->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); - me->SetStandState(UNIT_STAND_STATE_DEAD); - } - - void EnterCombat(Unit* /*who*/) {} - - void SpellHit(Unit* /*caster*/, const SpellInfo *spell) - { - if (spell->Id == 32146) - { - me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); - me->RemoveCorpse(); - } - } - }; - -}; - /*###### ## npc_altruis_the_sufferer ######*/ @@ -1013,7 +974,6 @@ void AddSC_nagrand() { new mob_shattered_rumbler(); new mob_lump(); - new mob_sunspring_villager(); new npc_altruis_the_sufferer(); new npc_greatmother_geyah(); new npc_lantresor_of_the_blade(); diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index c7a174ff3d5..15cee94e909 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -857,6 +857,47 @@ public: }; }; +enum StoppingTheSpread +{ + NPC_KILL_CREDIT = 18240, + SPELL_FLAMES = 39199, +}; + +class spell_q9874_liquid_fire : public SpellScriptLoader +{ + public: + spell_q9874_liquid_fire() : SpellScriptLoader("spell_q9874_liquid_fire") + { + } + + class spell_q9874_liquid_fire_SpellScript : public SpellScript + { + PrepareSpellScript(spell_q9874_liquid_fire_SpellScript); + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + Player* caster = GetCaster()->ToPlayer(); + Creature* target = GetHitUnit()->ToCreature(); + if (!caster || !target || (target && target->HasAura(SPELL_FLAMES))) + return; + + caster->KilledMonsterCredit(NPC_KILL_CREDIT, 0); + target->CastSpell(target, SPELL_FLAMES, true); + target->DespawnOrUnsummon(60000); + } + + void Register() + { + OnEffect += SpellEffectFn(spell_q9874_liquid_fire_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_q9874_liquid_fire_SpellScript(); + }; +}; + void AddSC_quest_spell_scripts() { new spell_q55_sacred_cleansing(); @@ -877,4 +918,5 @@ void AddSC_quest_spell_scripts() new spell_q10041_q10040_who_are_they(); new spell_symbol_of_life_dummy(); new spell_q12659_ahunaes_knife(); + new spell_q9874_liquid_fire(); } |