diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/Northrend/icecrown.cpp | 46 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 40 |
2 files changed, 86 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/icecrown.cpp b/src/server/scripts/Northrend/icecrown.cpp index 86b375fc274..dc55c2f6ad3 100644 --- a/src/server/scripts/Northrend/icecrown.cpp +++ b/src/server/scripts/Northrend/icecrown.cpp @@ -381,6 +381,51 @@ public: } }; +/*###### +## npc_vereth_the_cunning +######*/ + +enum eVerethTheCunning +{ + NPC_GEIST_RETURN_BUNNY_KC = 31049, + NPC_LITHE_STALKER = 30894, + SPELL_SUBDUED_LITHE_STALKER = 58151, +}; + +class npc_vereth_the_cunning : public CreatureScript +{ +public: + npc_vereth_the_cunning() : CreatureScript("npc_vereth_the_cunning") { } + + struct npc_vereth_the_cunningAI : public ScriptedAI + { + npc_vereth_the_cunningAI(Creature* pCreature) : ScriptedAI(pCreature) {} + + void MoveInLineOfSight(Unit* who) + { + ScriptedAI::MoveInLineOfSight(who); + + if (who->GetEntry() == NPC_LITHE_STALKER && me->IsWithinDistInMap(who, 10.0f)) + { + if (Unit* owner = who->GetCharmer()) + { + if (who->HasAura(SPELL_SUBDUED_LITHE_STALKER)) + { + owner->ToPlayer()->KilledMonsterCredit(NPC_GEIST_RETURN_BUNNY_KC, 0); + who->ToCreature()->DisappearAndDie(); + + } + } + } + } + }; + + CreatureAI *GetAI(Creature *creature) const + { + return new npc_vereth_the_cunningAI(creature); + } +}; + void AddSC_icecrown() { new npc_arete; @@ -389,4 +434,5 @@ void AddSC_icecrown() new npc_argent_valiant; new npc_alorah_and_grimmin; new npc_guardian_pavilion; + new npc_vereth_the_cunning; } diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index ae8069747e3..a9ffe2e0f47 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -22,6 +22,7 @@ */ #include "ScriptPCH.h" +#include "Vehicle.h" class spell_generic_quest_update_entry_SpellScript : public SpellScript { @@ -939,6 +940,44 @@ class spell_q12805_lifeblood_dummy : public SpellScriptLoader }; }; +/* + http://www.wowhead.com/quest=13283 King of the Mountain + http://www.wowhead.com/quest=13280 King of the Mountain + 59643 Plant Horde Battle Standard + 4338 Plant Alliance Battle Standard + */ +enum eBattleStandard +{ + NPC_KING_OF_THE_MOUNTAINT_KC = 31766, +}; +class spell_q13280_13283_plant_battle_standard: public SpellScriptLoader +{ +public: + spell_q13280_13283_plant_battle_standard() : SpellScriptLoader("spell_q13280_13283_plant_battle_standard") { } + + class spell_q13280_13283_plant_battle_standard_SpellScript : public SpellScript + { + PrepareSpellScript(spell_q13280_13283_plant_battle_standard_SpellScript) + void HandleDummy(SpellEffIndex /*effIndex*/) + { + Unit* caster = GetCaster(); + if (caster->IsVehicle()) + if (Unit* player = caster->GetVehicleKit()->GetPassenger(0)) + player->ToPlayer()->KilledMonsterCredit(NPC_KING_OF_THE_MOUNTAINT_KC,0); + } + + void Register() + { + OnEffect += SpellEffectFn(spell_q13280_13283_plant_battle_standard_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_q13280_13283_plant_battle_standard_SpellScript(); + } +}; + void AddSC_quest_spell_scripts() { new spell_q55_sacred_cleansing(); @@ -961,4 +1000,5 @@ void AddSC_quest_spell_scripts() new spell_q12659_ahunaes_knife(); new spell_q9874_liquid_fire(); new spell_q12805_lifeblood_dummy(); + new spell_q13280_13283_plant_battle_standard(); } |
