aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index bb4645615ce..c8c9254d404 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -537,6 +537,10 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
{
if (action == ACTION_START_EVENT)
{
+ // Prevent crashes
+ if (events.GetPhaseMask() & PHASE_INTRO_MASK)
+ return;
+
GetCreatureListWithEntryInGrid(guardList, me, NPC_SE_KOR_KRON_REAVER, 20.0f);
guardList.sort(Trinity::ObjectDistanceOrderPred(me));
uint32 x = 1;
@@ -695,8 +699,10 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* /*pPlayer*/, Creature* pCreature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* pCreature, uint32 /*sender*/, uint32 action)
{
+ player->PlayerTalkClass->ClearMenus();
+ player->CLOSE_GOSSIP_MENU();
if (action == -ACTION_START_EVENT)
pCreature->AI()->DoAction(ACTION_START_EVENT);
@@ -730,6 +736,11 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
{
if (action == ACTION_START_EVENT)
{
+ // Prevent crashes
+ if (events.GetPhaseMask() & PHASE_INTRO_MASK)
+ return;
+
+ events.SetPhase(PHASE_INTRO_A);
GetCreatureListWithEntryInGrid(guardList, me, NPC_SE_SKYBREAKER_MARINE, 20.0f);
guardList.sort(Trinity::ObjectDistanceOrderPred(me));
uint32 x = 1;
@@ -739,7 +750,6 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
DoScriptText(SAY_INTRO_ALLIANCE_1, me);
events.ScheduleEvent(EVENT_INTRO_ALLIANCE_4, 2500+17500+9500, 0, PHASE_INTRO_A);
- events.SetPhase(PHASE_INTRO_A);
if (pInstance)
{
uiDeathbringerSaurfangGUID = pInstance->GetData64(DATA_DEATHBRINGER_SAURFANG);
@@ -825,8 +835,10 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* /*pPlayer*/, Creature* pCreature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* pCreature, uint32 /*sender*/, uint32 action)
{
+ player->PlayerTalkClass->ClearMenus();
+ player->CLOSE_GOSSIP_MENU();
if (action == -ACTION_START_EVENT+1)
pCreature->AI()->DoAction(ACTION_START_EVENT);