aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp31
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp268
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp19
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h22
14 files changed, 166 insertions, 212 deletions
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
index 593ee05d951..08b939f136b 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
@@ -36,17 +36,29 @@ enum Says
enum Spells
{
- SPELL_SHADOWWORDPAIN = 23952,
+ SPELL_SHADOW_WORD_PAIN = 23952,
SPELL_GOUGE = 24698,
SPELL_MARK = 24210,
SPELL_CLEAVE = 26350, //Perhaps not right. Not a red aura...
- SPELL_PANTHER_TRANSFORM = 24190,
+ SPELL_PANTHER_TRANSFORM = 24190
+};
+enum Events
+{
+ EVENT_SHADOW_WORD_PAIN = 0,
+ EVENT_GOUGE = 1,
+ EVENT_MARK = 2,
+ EVENT_CLEAVE = 3,
+ EVENT_VANISH = 4,
+ EVENT_VISIBLE = 5,
+ EVENT_SUMMON = 6,
+};
+
+enum ModelIds
+{
MODEL_ID_NORMAL = 15218,
MODEL_ID_PANTHER = 15215,
- MODEL_ID_BLANK = 11686,
-
- NPC_ZULIAN_PROWLER = 15101
+ MODEL_ID_BLANK = 11686
};
class boss_arlokk : public CreatureScript
@@ -75,6 +87,7 @@ class boss_arlokk : public CreatureScript
void Reset()
{
+ _Reset();
m_uiShadowWordPain_Timer = 8000;
m_uiGouge_Timer = 14000;
m_uiMark_Timer = 35000;
@@ -112,7 +125,6 @@ class boss_arlokk : public CreatureScript
{
if (instance)
instance->SetData(DATA_ARLOKK, NOT_STARTED);
-
//we should be summoned, so despawn
me->DespawnOrUnsummon();
}
@@ -143,7 +155,7 @@ class boss_arlokk : public CreatureScript
{
if (m_uiShadowWordPain_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_SHADOWWORDPAIN);
+ DoCast(me->getVictim(), SPELL_SHADOW_WORD_PAIN);
m_uiShadowWordPain_Timer = 15000;
}
else
@@ -253,10 +265,7 @@ class boss_arlokk : public CreatureScript
class go_gong_of_bethekk : public GameObjectScript
{
- public:
- go_gong_of_bethekk() : GameObjectScript("go_gong_of_bethekk")
- {
- }
+ public: go_gong_of_bethekk() : GameObjectScript("go_gong_of_bethekk") {}
bool OnGossipHello(Player* /*player*/, GameObject* go)
{
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
index 7943e51a7cd..70399b6934c 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
@@ -49,6 +49,11 @@ class boss_gahzranka : public CreatureScript // gahzranka
{
boss_gahzrankaAI(Creature* creature) : BossAI(creature, DATA_GAHZRANKA) {}
+ void Reset()
+ {
+ _Reset();
+ }
+
void JustDied(Unit* /*killer*/)
{
_JustDied();
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
index 4b7bee5abf1..f06500694a5 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
@@ -47,6 +47,11 @@ class boss_grilek : public CreatureScript // grilek
{
boss_grilekAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) {}
+ void Reset()
+ {
+ _Reset();
+ }
+
void JustDied(Unit* /*killer*/)
{
_JustDied();
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
index 87a9c02e3ed..7a7296b1cce 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -16,12 +15,12 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Boss_Hakkar
-SD%Complete: 95
-SDComment: Blood siphon spell buggy cause of Core Issue.
-SDCategory: Zul'Gurub
-EndScriptData */
+/*
+Name: Boss_Hakkar
+%Complete: 95
+Comment: Blood siphon spell buggy cause of Core Issue.
+Category: Zul'Gurub
+*/
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
@@ -31,18 +30,18 @@ enum Says
{
SAY_AGGRO = 0,
SAY_FLEEING = 1,
- SAY_MINION_DESTROY = 2, //where does it belong?
- SAY_PROTECT_ALTAR = 3 //where does it belong?
+ SAY_MINION_DESTROY = 2, // Where does it belong?
+ SAY_PROTECT_ALTAR = 3 // Where does it belong?
};
enum Spells
{
- SPELL_BLOODSIPHON = 24322,
- SPELL_CORRUPTEDBLOOD = 24328,
- SPELL_CAUSEINSANITY = 24327, //Not working disabled.
- SPELL_WILLOFHAKKAR = 24178,
+ SPELL_BLOOD_SIPHON = 24322, // Buggy ?
+ SPELL_CORRUPTED_BLOOD = 24328,
+ SPELL_CAUSE_INSANITY = 24327, // Spell needs scripting.
+ SPELL_WILL_OF_HAKKAR = 24178,
SPELL_ENRAGE = 24318,
-// The Aspects of all High Priests
+ // The Aspects of all High Priests spells
SPELL_ASPECT_OF_JEKLIK = 24687,
SPELL_ASPECT_OF_VENOXIS = 24688,
SPELL_ASPECT_OF_MARLI = 24686,
@@ -50,7 +49,22 @@ enum Spells
SPELL_ASPECT_OF_ARLOKK = 24690
};
-class boss_hakkar : public CreatureScript // hakkar
+enum Events
+{
+ EVENT_BLOOD_SIPHON = 0,
+ EVENT_CORRUPTED_BLOOD = 1,
+ EVENT_CAUSE_INSANITY = 2, // Spell needs scripting. Event disabled
+ EVENT_WILL_OF_HAKKAR = 3,
+ EVENT_ENRAGE = 4,
+ // The Aspects of all High Priests events
+ EVENT_ASPECT_OF_JEKLIK = 5,
+ EVENT_ASPECT_OF_VENOXIS = 6,
+ EVENT_ASPECT_OF_MARLI = 7,
+ EVENT_ASPECT_OF_THEKAL = 8,
+ EVENT_ASPECT_OF_ARLOKK = 9
+};
+
+class boss_hakkar : public CreatureScript
{
public: boss_hakkar() : CreatureScript("boss_hakkar") {}
@@ -58,47 +72,11 @@ class boss_hakkar : public CreatureScript // hakkar
{
boss_hakkarAI(Creature* creature) : BossAI(creature, DATA_HAKKAR) {}
- uint32 BloodSiphon_Timer;
- uint32 CorruptedBlood_Timer;
- uint32 CauseInsanity_Timer;
- uint32 WillOfHakkar_Timer;
- uint32 Enrage_Timer;
-
- uint32 CheckJeklik_Timer;
- uint32 CheckVenoxis_Timer;
- uint32 CheckMarli_Timer;
- uint32 CheckThekal_Timer;
- uint32 CheckArlokk_Timer;
-
- uint32 AspectOfJeklik_Timer;
- uint32 AspectOfVenoxis_Timer;
- uint32 AspectOfMarli_Timer;
- uint32 AspectOfThekal_Timer;
- uint32 AspectOfArlokk_Timer;
-
bool Enraged;
void Reset()
{
- BloodSiphon_Timer = 90000;
- CorruptedBlood_Timer = 25000;
- CauseInsanity_Timer = 17000;
- WillOfHakkar_Timer = 17000;
- Enrage_Timer = 600000;
-
- CheckJeklik_Timer = 1000;
- CheckVenoxis_Timer = 2000;
- CheckMarli_Timer = 3000;
- CheckThekal_Timer = 4000;
- CheckArlokk_Timer = 5000;
-
- AspectOfJeklik_Timer = 4000;
- AspectOfVenoxis_Timer = 7000;
- AspectOfMarli_Timer = 12000;
- AspectOfThekal_Timer = 8000;
- AspectOfArlokk_Timer = 18000;
-
- Enraged = false;
+ _Reset();
}
void JustDied(Unit* /*killer*/)
@@ -109,139 +87,83 @@ class boss_hakkar : public CreatureScript // hakkar
void EnterCombat(Unit* /*who*/)
{
_EnterCombat();
+ events.ScheduleEvent(EVENT_BLOOD_SIPHON, 90000);
+ events.ScheduleEvent(EVENT_CORRUPTED_BLOOD, 25000);
+ events.ScheduleEvent(EVENT_CAUSE_INSANITY, 17000);
+ events.ScheduleEvent(EVENT_WILL_OF_HAKKAR, 17000);
+ events.ScheduleEvent(EVENT_ENRAGE, 600000);
+ if (instance->GetData(DATA_JEKLIK) != DONE)
+ events.ScheduleEvent(EVENT_ASPECT_OF_JEKLIK, 4000);
+ if (instance->GetData(DATA_VENOXIS) != DONE)
+ events.ScheduleEvent(EVENT_ASPECT_OF_VENOXIS, 7000);
+ if (instance->GetData(DATA_MARLI) != DONE)
+ events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 12000);
+ if (instance->GetData(DATA_THEKAL) != DONE)
+ events.ScheduleEvent(EVENT_ASPECT_OF_THEKAL, 8000);
+ if (instance->GetData(DATA_ARLOKK) != DONE)
+ events.ScheduleEvent(EVENT_ASPECT_OF_ARLOKK, 18000);
Talk(SAY_AGGRO);
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
if (!UpdateVictim())
return;
- //BloodSiphon_Timer
- if (BloodSiphon_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_BLOODSIPHON);
- BloodSiphon_Timer = 90000;
- } else BloodSiphon_Timer -= diff;
-
- //CorruptedBlood_Timer
- if (CorruptedBlood_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_CORRUPTEDBLOOD);
- CorruptedBlood_Timer = urand(30000, 45000);
- } else CorruptedBlood_Timer -= diff;
-
- //CauseInsanity_Timer
- /*if (CauseInsanity_Timer <= diff)
- {
- if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_CAUSEINSANITY);
+ events.Update(diff);
- CauseInsanity_Timer = urand(35000, 43000);
- } else CauseInsanity_Timer -= diff;*/
-
- //WillOfHakkar_Timer
- if (WillOfHakkar_Timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_WILLOFHAKKAR);
-
- WillOfHakkar_Timer = urand(25000, 35000);
- } else WillOfHakkar_Timer -= diff;
-
- if (!Enraged && Enrage_Timer <= diff)
- {
- DoCast(me, SPELL_ENRAGE);
- Enraged = true;
- } else Enrage_Timer -= diff;
-
- //Checking if Jeklik is dead. If not we cast her Aspect
- if (CheckJeklik_Timer <= diff)
- {
- if (instance)
- {
- if (instance->GetData(DATA_JEKLIK) != DONE)
- {
- if (AspectOfJeklik_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_ASPECT_OF_JEKLIK);
- AspectOfJeklik_Timer = urand(10000, 14000);
- } else AspectOfJeklik_Timer -= diff;
- }
- }
- CheckJeklik_Timer = 1000;
- } else CheckJeklik_Timer -= diff;
-
- //Checking if Venoxis is dead. If not we cast his Aspect
- if (CheckVenoxis_Timer <= diff)
- {
- if (instance)
- {
- if (instance->GetData(DATA_VENOXIS) != DONE)
- {
- if (AspectOfVenoxis_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_ASPECT_OF_VENOXIS);
- AspectOfVenoxis_Timer = 8000;
- } else AspectOfVenoxis_Timer -= diff;
- }
- }
- CheckVenoxis_Timer = 1000;
- } else CheckVenoxis_Timer -= diff;
-
- //Checking if Marli is dead. If not we cast her Aspect
- if (CheckMarli_Timer <= diff)
- {
- if (instance)
- {
- if (instance->GetData(DATA_MARLI) != DONE)
- {
- if (AspectOfMarli_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_ASPECT_OF_MARLI);
- AspectOfMarli_Timer = 10000;
- } else AspectOfMarli_Timer -= diff;
-
- }
- }
- CheckMarli_Timer = 1000;
- } else CheckMarli_Timer -= diff;
-
- //Checking if Thekal is dead. If not we cast his Aspect
- if (CheckThekal_Timer <= diff)
- {
- if (instance)
- {
- if (instance->GetData(DATA_THEKAL) != DONE)
- {
- if (AspectOfThekal_Timer <= diff)
- {
- DoCast(me, SPELL_ASPECT_OF_THEKAL);
- AspectOfThekal_Timer = 15000;
- } else AspectOfThekal_Timer -= diff;
- }
- }
- CheckThekal_Timer = 1000;
- } else CheckThekal_Timer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- //Checking if Arlokk is dead. If yes we cast her Aspect
- if (CheckArlokk_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- if (instance)
+ switch (eventId)
{
- if (instance->GetData(DATA_ARLOKK) != DONE)
- {
- if (AspectOfArlokk_Timer <= diff)
- {
- DoCast(me, SPELL_ASPECT_OF_ARLOKK);
- DoResetThreat();
-
- AspectOfArlokk_Timer = urand(10000, 15000);
- } else AspectOfArlokk_Timer -= diff;
- }
+ case EVENT_BLOOD_SIPHON:
+ DoCastVictim(SPELL_BLOOD_SIPHON, true);
+ events.ScheduleEvent(EVENT_BLOOD_SIPHON, 90000);
+ break;
+ case EVENT_CORRUPTED_BLOOD:
+ DoCastVictim(SPELL_CORRUPTED_BLOOD, true);
+ events.ScheduleEvent(EVENT_CORRUPTED_BLOOD, urand(30000, 45000));
+ break;
+ case EVENT_CAUSE_INSANITY:
+ // DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true), SPELL_CAUSE_INSANITY);
+ // events.ScheduleEvent(EVENT_CAUSE_INSANITY, urand(35000, 45000));
+ break;
+ case EVENT_WILL_OF_HAKKAR:
+ DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true), SPELL_WILL_OF_HAKKAR);
+ events.ScheduleEvent(EVENT_WILL_OF_HAKKAR, urand(25000, 35000));
+ break;
+ case EVENT_ENRAGE:
+ if (!me->HasAura(SPELL_ENRAGE))
+ DoCast(me, SPELL_ENRAGE);
+ events.ScheduleEvent(EVENT_ENRAGE, 90000);
+ break;
+ case EVENT_ASPECT_OF_JEKLIK:
+ DoCastVictim(SPELL_ASPECT_OF_JEKLIK, true);
+ events.ScheduleEvent(EVENT_ASPECT_OF_JEKLIK, urand(10000, 14000));
+ break;
+ case EVENT_ASPECT_OF_VENOXIS:
+ DoCastVictim(SPELL_ASPECT_OF_VENOXIS, true);
+ events.ScheduleEvent(EVENT_ASPECT_OF_VENOXIS, 8000);
+ break;
+ case EVENT_ASPECT_OF_MARLI:
+ DoCastVictim(SPELL_ASPECT_OF_MARLI, true);
+ events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 10000);
+ break;
+ case EVENT_ASPECT_OF_THEKAL:
+ DoCastVictim(SPELL_ASPECT_OF_THEKAL, true);
+ events.ScheduleEvent(EVENT_ASPECT_OF_THEKAL, 15000);
+ break;
+ case EVENT_ASPECT_OF_ARLOKK:
+ DoCastVictim(SPELL_ASPECT_OF_ARLOKK, true);
+ events.ScheduleEvent(EVENT_ASPECT_OF_ARLOKK, urand(10000, 15000);
+ break;
+ default:
+ break;
}
- CheckArlokk_Timer = 1000;
- } else CheckArlokk_Timer -= diff;
+ }
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
index cd55d648196..15228815d69 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
@@ -48,6 +48,11 @@ class boss_hazzarah : public CreatureScript
{
boss_hazzarahAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) {}
+ void Reset()
+ {
+ _Reset();
+ }
+
void JustDied(Unit* /*killer*/)
{
_JustDied();
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
index 4d27fd99769..7f19962e719 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
@@ -70,6 +70,7 @@ class boss_jeklik : public CreatureScript //jeklik
void Reset()
{
+ _Reset();
Charge_Timer = 20000;
SonicBurst_Timer = 8000;
Screech_Timer = 13000;
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
index dd1edcb3529..5f7498880ca 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
@@ -71,6 +71,11 @@ class boss_jindo : public CreatureScript
{
boss_jindoAI(Creature* creature) : BossAI(creature, DATA_JINDO) {}
+ void Reset()
+ {
+ _Reset();
+ }
+
void JustDied(Unit* /*killer*/)
{
_JustDied();
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
index 6b527ba45f3..258dda26c11 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
@@ -51,11 +51,6 @@ enum Spells
SPELL_SUNDERARMOR = 24317
};
-enum CreatureId
-{
- NPC_SPEAKER = 11391
-};
-
class boss_mandokir : public CreatureScript
{
public: boss_mandokir() : CreatureScript("boss_mandokir") {}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
index 4d2a892d305..40850a988e4 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
@@ -77,6 +77,11 @@ class boss_marli : public CreatureScript
{
boss_marliAI(Creature* creature) : BossAI(creature, DATA_MARLI) {}
+ void Reset()
+ {
+ _Reset();
+ }
+
void JustDied(Unit* /*killer*/)
{
_JustDied();
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
index 65730d1baf2..6bf87decf7e 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
@@ -57,6 +57,7 @@ class boss_renataki : public CreatureScript
void Reset()
{
+ _Reset();
Invisible_Timer = urand(8000, 18000);
Ambush_Timer = 3000;
Visible_Timer = 4000;
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
index 6710ca67863..ab45162fc35 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
@@ -89,6 +89,7 @@ class boss_thekal : public CreatureScript
void Reset()
{
+ _Reset();
Enraged = false;
WasDead = false;
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
index f5c10631a9b..11a6e710c3c 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
@@ -54,11 +54,6 @@ enum Spells
SPELL_FRENZY = 8269 // 20% health - frenzy
};
-enum NPCs
-{
- NPC_PARASITIC_SERPENT = 14884
-};
-
enum Events
{
// troll form
@@ -83,6 +78,11 @@ enum Phases
PHASE_TWO = 2 // snake form
};
+enum NPCs
+{
+ NPC_PARASITIC_SERPENT = 14884
+};
+
class boss_venoxis : public CreatureScript
{
public: boss_venoxis() : CreatureScript("boss_venoxis") {}
@@ -93,21 +93,14 @@ class boss_venoxis : public CreatureScript
void Reset()
{
- events.Reset();
- summons.DespawnAll();
-
- // make sure this boss is properly reset
- instance->SetBossState(DATA_VENOXIS, NOT_STARTED);
-
+ _Reset();
// remove all spells and auras from previous attempts
me->RemoveAllAuras();
me->SetReactState(REACT_PASSIVE);
-
// set some internally used variables to their defaults
_inMeleeRange = 0;
_transformed = false;
_frenzied = false;
-
events.SetPhase(PHASE_ONE);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
index 196df2b98b9..d1e7edf0218 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
@@ -47,6 +47,11 @@ class boss_wushoolay : public CreatureScript
{
boss_wushoolayAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) {}
+ void Reset()
+ {
+ _Reset();
+ }
+
void JustDied(Unit* /*killer*/)
{
_JustDied();
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
index 55bf0e50e3c..ec4981f08be 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
@@ -26,15 +26,15 @@ enum DataTypes
DATA_VENOXIS = 1, // Main boss
DATA_MARLI = 2, // Main boss
DATA_ARLOKK = 3, // Main boss
- DATA_HAKKAR = 4, // Main boss
- DATA_MANDOKIR = 5, // Optional boss
- DATA_JINDO = 6, // Optional boss
- DATA_GAHZRANKA = 7, // Optional boss
- DATA_EDGE_OF_MADNESS = 8, // Optional Event Edge of Madness - one of: Gri'lek, Renataki, Hazza'rah, or Wushoolay
- DATA_THEKAL = 9, // ??
- DATA_LORKHAN = 10, // ??
- DATA_ZATH = 11, // ??
- DATA_OHGAN = 12 // ??
+ DATA_THEKAL = 4, // Main boss
+ DATA_HAKKAR = 5, // End boss
+ DATA_MANDOKIR = 6, // Optional boss
+ DATA_JINDO = 7, // Optional boss
+ DATA_GAHZRANKA = 8, // Optional boss
+ 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
};
enum CreatureIds
@@ -43,7 +43,9 @@ enum CreatureIds
NPC_ZEALOT_ZATH = 11348,
NPC_HIGH_PRIEST_THEKAL = 14509,
NPC_JINDO_THE_HEXXER = 11380,
- NPC_NIGHTMARE_ILLUSION = 15163
+ NPC_NIGHTMARE_ILLUSION = 15163,
+ NPC_ZULIAN_PROWLER = 15101,
+ NPC_SPEAKER = 11391
};
#endif