aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp27
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();
}