diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/zone_storm_peaks.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index 48aeb678a21..d08c60d373d 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -452,14 +452,14 @@ enum BrannBronzebeard EVENT_SCRIPT_13 = 13 }; -class npc_brann_bronzebeard : public CreatureScript +class npc_brann_bronzebeard_keystone : public CreatureScript { public: - npc_brann_bronzebeard() : CreatureScript("npc_brann_bronzebeard") { } + npc_brann_bronzebeard_keystone() : CreatureScript("npc_brann_bronzebeard_keystone") { } - struct npc_brann_bronzebeardAI : public ScriptedAI + struct npc_brann_bronzebeard_keystoneAI : public ScriptedAI { - npc_brann_bronzebeardAI(Creature* creature) : ScriptedAI(creature) { } + npc_brann_bronzebeard_keystoneAI(Creature* creature) : ScriptedAI(creature) { } void Reset() OVERRIDE { @@ -584,7 +584,7 @@ public: CreatureAI* GetAI(Creature* creature) const OVERRIDE { - return new npc_brann_bronzebeardAI(creature); + return new npc_brann_bronzebeard_keystoneAI(creature); } }; @@ -643,6 +643,10 @@ enum JokkumScriptcast { SPELL_JOKKUM_KILL_CREDIT = 56545, SPELL_JOKKUM_SUMMON = 56541, + SPELL_RIDE_JOKKUM = 56606, + NPC_KINGJOKKUM = 30331, + SAY_HOLD_ON = 0, + PATH_JOKKUM = 2072200 }; class spell_jokkum_scriptcast : public SpellScriptLoader @@ -666,6 +670,17 @@ class spell_jokkum_scriptcast : public SpellScriptLoader { player->CastSpell(player, SPELL_JOKKUM_KILL_CREDIT, true); player->CastSpell(player, SPELL_JOKKUM_SUMMON, true); + + if (Creature* kingjokkum = GetClosestCreatureWithEntry(player, NPC_KINGJOKKUM, 10.0f)) + { + kingjokkum->setFaction(player->getFaction()); + player->CastSpell(kingjokkum, SPELL_RIDE_JOKKUM, true); + player->SetUInt64Value(PLAYER_FARSIGHT, player->GetGUID()); + kingjokkum->AI()->Talk(0, player->GetGUID()); + kingjokkum->ToPlayer()->SetClientControl(kingjokkum, 1); + kingjokkum->GetMotionMaster()->MovePath(PATH_JOKKUM, false); + kingjokkum->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); + } } } @@ -689,7 +704,7 @@ void AddSC_storm_peaks() new npc_freed_protodrake(); new npc_icefang(); new npc_hyldsmeet_protodrake(); - new npc_brann_bronzebeard(); + new npc_brann_bronzebeard_keystone(); new spell_close_rift(); new spell_jokkum_scriptcast(); } |