diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-01-02 19:23:10 +0100 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2018-01-02 19:23:10 +0100 |
commit | 129dd3306725c7109be676e21cd8c08418be20be (patch) | |
tree | db3ad6ea0c60c3b5a780607b0a47a972e34ba1a1 | |
parent | 7570bf4d4a736b6c6f0c6429f0e07c5dc109ed9e (diff) |
Scripts/ZulGurub: Fix an issue that was causing Bloodlord Mandokir to keep casting Frenzy after a wipe despite Oghan being alive. Closes #21158.
-rw-r--r-- | src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp | 41 | ||||
-rw-r--r-- | src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h | 5 |
2 files changed, 19 insertions, 27 deletions
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp index fd9f79eb9c7..91a06b11732 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp @@ -59,15 +59,14 @@ enum Spells enum Events { - EVENT_CHECK_SPEAKER = 1, - EVENT_CHECK_START = 2, - EVENT_STARTED = 3, - EVENT_OVERPOWER = 4, - EVENT_MORTAL_STRIKE = 5, - EVENT_WHIRLWIND = 6, - EVENT_CHECK_OHGAN = 7, - EVENT_WATCH_PLAYER = 8, - EVENT_CHARGE_PLAYER = 9 + EVENT_CHECK_SPEAKER, + EVENT_CHECK_START, + EVENT_STARTED, + EVENT_OVERPOWER, + EVENT_MORTAL_STRIKE, + EVENT_WHIRLWIND, + EVENT_WATCH_PLAYER, + EVENT_CHARGE_PLAYER }; enum Misc @@ -162,7 +161,6 @@ class boss_mandokir : public CreatureScript events.ScheduleEvent(EVENT_OVERPOWER, urand(7000, 9000)); events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(12000, 18000)); events.ScheduleEvent(EVENT_WHIRLWIND, urand(24000, 30000)); - events.ScheduleEvent(EVENT_CHECK_OHGAN, 1000); events.ScheduleEvent(EVENT_WATCH_PLAYER, urand(13000, 15000)); events.ScheduleEvent(EVENT_CHARGE_PLAYER, urand(33000, 38000)); me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); @@ -195,6 +193,15 @@ class boss_mandokir : public CreatureScript } } + void SummonedCreatureDies(Creature* summon, Unit* /*killer*/) + { + if (summon->GetEntry() == NPC_OHGAN) + { + DoCast(me, SPELL_FRENZY); + Talk(SAY_OHGAN_DEAD); + } + } + void MovementInform(uint32 type, uint32 id) override { if (type == WAYPOINT_MOTION_TYPE) @@ -262,15 +269,6 @@ class boss_mandokir : public CreatureScript DoCast(me, SPELL_WHIRLWIND); events.ScheduleEvent(EVENT_WHIRLWIND, urand(22000, 26000)); break; - case EVENT_CHECK_OHGAN: - if (instance->GetBossState(DATA_OHGAN) == DONE) - { - DoCast(me, SPELL_FRENZY); - Talk(SAY_OHGAN_DEAD); - } - else - events.ScheduleEvent(EVENT_CHECK_OHGAN, 1000); - break; case EVENT_WATCH_PLAYER: if (Unit* player = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) { @@ -336,11 +334,6 @@ class npc_ohgan : public CreatureScript void JustEngagedWith(Unit* /*who*/) override { } - void JustDied(Unit* /*killer*/) override - { - instance->SetBossState(DATA_OHGAN, DONE); - } - void UpdateAI(uint32 diff) override { // Return since we have no target diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h index f1c03745569..27db3ee4448 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h +++ b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h @@ -23,7 +23,7 @@ #define ZGScriptName "instance_zulgurub" #define DataHeader "ZG" -uint32 const EncounterCount = 13; +uint32 const EncounterCount = 12; enum ZGDataTypes { @@ -39,8 +39,7 @@ enum ZGDataTypes DATA_EDGE_OF_MADNESS = 9, // Optional Event Edge of Madness - one of: Gri'lek, Renataki, Hazza'rah, or Wushoolay DATA_LORKHAN = 10, // Zealot Lor'Khan add to High priest Thekal! DATA_ZATH = 11, // Zealot Zath add to High priest Thekal! - DATA_OHGAN = 12, // Bloodlord Mandokir's raptor mount - TYPE_EDGE_OF_MADNESS = 13 // Boss storage + TYPE_EDGE_OF_MADNESS = 12 // Boss storage }; enum ZGCreatureIds |