diff options
| author | Artamedes <ownedned123@gmail.com> | 2020-08-10 14:50:25 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-10 20:50:25 +0200 |
| commit | e85bd8fd39b6ce1f38d31a364d99e942b746aae8 (patch) | |
| tree | 4602ead88000c7a151201cbb86a1f33dc96c5b70 /src | |
| parent | 7e4fdf052266ceb8859fbcf769d9b70250baec40 (diff) | |
Scripts/Stockades: Cleanup the scripts (#23524)
* Scripts/Stockades: Cleanup the scripts
Scripts looked ugly before, now they are less ugly
Move Mortimer Moloch and Warden Thelwater to use TaskScheduler rather than EventMap
Use new script registers
Cleanup some other code
Co-authored-by: Carbenium <carbenium@outlook.com>
Diffstat (limited to 'src')
5 files changed, 233 insertions, 304 deletions
diff --git a/src/server/scripts/EasternKingdoms/TheStockade/boss_hogger.cpp b/src/server/scripts/EasternKingdoms/TheStockade/boss_hogger.cpp index 0008be44019..e739e50323b 100644 --- a/src/server/scripts/EasternKingdoms/TheStockade/boss_hogger.cpp +++ b/src/server/scripts/EasternKingdoms/TheStockade/boss_hogger.cpp @@ -15,10 +15,10 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ScriptMgr.h" #include "InstanceScript.h" #include "MotionMaster.h" #include "ScriptedCreature.h" +#include "ScriptMgr.h" #include "the_stockade.h" enum Says @@ -29,7 +29,7 @@ enum Says SAY_WARDEN_1 = 0, // Yell - This ends here, Hogger! SAY_WARDEN_2 = 1, // Say - He's...he's dead? - SAY_WARDEN_3 = 2 // Say - It's simply too good to be true. You couldn't have killed him so easily! + SAY_WARDEN_3 = 2 // Say - It's simply too good to be true. You couldn't have killed him so easily! }; enum Spells @@ -51,142 +51,121 @@ enum Events enum Points { - POINT_FINISH = 0 + POINT_FINISH = 1 }; -Position const wardenthelwatermovepos = { 152.019f, 106.198f, -35.1896f, 1.082104f }; -Position const wardenthelwaterpos = { 138.369f, 78.2932f, -33.85627f, 1.082104f }; +Position const wardenThelwaterMovePoint = { 152.019f, 106.198f, -35.1896f, 1.082104f }; +Position const wardenThelwaterSpawnPosition = { 138.369f, 78.2932f, -33.85627f, 1.082104f }; -class boss_hogger : public CreatureScript +// Hogger - 46254 +struct boss_hogger : public BossAI { -public: - boss_hogger() : CreatureScript("boss_hogger") { } + boss_hogger(Creature* creature) : BossAI(creature, DATA_HOGGER), _hasEnraged(false) { } - struct boss_hoggerAI : public BossAI + void Reset() override { - boss_hoggerAI(Creature* creature) : BossAI(creature, DATA_HOGGER), _hasEnraged(false) { } + _hasEnraged = false; + } - void EnterCombat(Unit* /*who*/) override - { - _EnterCombat(); - Talk(SAY_PULL); - events.ScheduleEvent(EVENT_VICIOUS_SLICE, Seconds(3), Seconds(4)); - events.ScheduleEvent(EVENT_MADDENING_CALL, Seconds(1), Seconds(2)); - } + void EnterCombat(Unit* who) override + { + BossAI::EnterCombat(who); - void JustDied(Unit* /*killer*/) override - { - Talk(SAY_DEATH); - _JustDied(); - me->SummonCreature(NPC_WARDEN_THELWATER, wardenthelwaterpos); - } + Talk(SAY_PULL); - void JustSummoned(Creature* summon) override - { - BossAI::JustSummoned(summon); - if (summon->GetEntry() == NPC_WARDEN_THELWATER) - summon->GetMotionMaster()->MovePoint(POINT_FINISH, wardenthelwatermovepos); - } + events.ScheduleEvent(EVENT_VICIOUS_SLICE, 3s, 4s); + events.ScheduleEvent(EVENT_MADDENING_CALL, 1s, 2s); + } - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; + void JustDied(Unit* killer) override + { + BossAI::JustDied(killer); - events.Update(diff); + Talk(SAY_DEATH); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + me->SummonCreature(NPC_WARDEN_THELWATER, wardenThelwaterSpawnPosition); + } - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_VICIOUS_SLICE: - DoCastVictim(SPELL_VICIOUS_SLICE); - events.Repeat(Seconds(10), Seconds(14)); - break; - case EVENT_MADDENING_CALL: - DoCast(SPELL_MADDENING_CALL); - events.Repeat(Seconds(15), Seconds(20)); - break; - } - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - } - - DoMeleeAttackIfReady(); - } + void JustSummoned(Creature* summon) override + { + BossAI::JustSummoned(summon); - void DamageTaken(Unit* /*attacker*/, uint32& damage) override + if (summon->GetEntry() == NPC_WARDEN_THELWATER) + summon->GetMotionMaster()->MovePoint(POINT_FINISH, wardenThelwaterMovePoint); + } + + void ExecuteEvent(uint32 eventId) override + { + switch (eventId) { - if (me->HealthBelowPctDamaged(30, damage) && !_hasEnraged) - { - _hasEnraged = true; - Talk(SAY_ENRAGE); - DoCastSelf(SPELL_ENRAGE); - } + case EVENT_VICIOUS_SLICE: + DoCastVictim(SPELL_VICIOUS_SLICE); + events.Repeat(10s, 14s); + break; + case EVENT_MADDENING_CALL: + DoCast(SPELL_MADDENING_CALL); + events.Repeat(15s, 20s); + break; + default: + break; } + } - private: - bool _hasEnraged; - }; - - CreatureAI* GetAI(Creature* creature) const override + void DamageTaken(Unit* /*attacker*/, uint32& damage) override { - return GetStormwindStockadeAI<boss_hoggerAI>(creature); + if (me->HealthBelowPctDamaged(30, damage) && !_hasEnraged) + { + _hasEnraged = true; + + Talk(SAY_ENRAGE); + DoCastSelf(SPELL_ENRAGE); + } } + +private: + bool _hasEnraged; }; -class npc_warden_thelwater : public CreatureScript +// Warden Thelwater - 46409 +struct npc_warden_thelwater : public ScriptedAI { -public: - npc_warden_thelwater() : CreatureScript("npc_warden_thelwater") {} + npc_warden_thelwater(Creature* creature) : ScriptedAI(creature) { } - struct npc_warden_thelwaterAI : public ScriptedAI + void MovementInform(uint32 type, uint32 id) override { - npc_warden_thelwaterAI(Creature* creature) : ScriptedAI(creature) {} + if (type != POINT_MOTION_TYPE) + return; - void MovementInform(uint32 type, uint32 id) override + if (id == POINT_FINISH) { - if (type == POINT_MOTION_TYPE && id == POINT_FINISH) - _events.ScheduleEvent(EVENT_SAY_WARDEN_1, Seconds(1)); - } + scheduler.Schedule(1s, [this](TaskContext /*context*/) + { + Talk(SAY_WARDEN_1); + }); - void UpdateAI(uint32 diff) override - { - _events.Update(diff); + scheduler.Schedule(5s, [this](TaskContext /*context*/) + { + Talk(SAY_WARDEN_2); + }); - while (uint32 eventId = _events.ExecuteEvent()) + scheduler.Schedule(8s, [this](TaskContext /*context*/) { - switch (eventId) - { - case EVENT_SAY_WARDEN_1: - Talk(SAY_WARDEN_1); - _events.ScheduleEvent(EVENT_SAY_WARDEN_2, Seconds(4)); - break; - case EVENT_SAY_WARDEN_2: - Talk(SAY_WARDEN_2); - _events.ScheduleEvent(EVENT_SAY_WARDEN_3, Seconds(3)); - break; - case EVENT_SAY_WARDEN_3: - Talk(SAY_WARDEN_3); - break; - } - } + Talk(SAY_WARDEN_3); + }); } - private: - EventMap _events; - }; + } - CreatureAI* GetAI(Creature* creature) const override + void UpdateAI(const uint32 diff) override { - return GetStormwindStockadeAI<npc_warden_thelwaterAI>(creature); + scheduler.Update(diff); } + +private: + TaskScheduler scheduler; }; void AddSC_boss_hogger() { - new boss_hogger(); - new npc_warden_thelwater(); + RegisterStormwindStockadesAI(boss_hogger); + RegisterStormwindStockadesAI(npc_warden_thelwater); } diff --git a/src/server/scripts/EasternKingdoms/TheStockade/boss_lord_overheat.cpp b/src/server/scripts/EasternKingdoms/TheStockade/boss_lord_overheat.cpp index ff424179567..19bd7819bb7 100644 --- a/src/server/scripts/EasternKingdoms/TheStockade/boss_lord_overheat.cpp +++ b/src/server/scripts/EasternKingdoms/TheStockade/boss_lord_overheat.cpp @@ -15,15 +15,15 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "ScriptMgr.h" #include "the_stockade.h" enum Spells { - SPELL_FIREBALL = 12466, //starts 1-2 secs from pull - SPELL_OVERHEAT = 86633, //probably cast every 10 secs, need to confirm. - SPELL_RAIN_OF_FIRE = 86636 //probably cast every 10 secs, need to confirm + SPELL_FIREBALL = 12466, // starts 1-2 secs from pull + SPELL_OVERHEAT = 86633, // probably cast every 10 secs, need to confirm. + SPELL_RAIN_OF_FIRE = 86636 // probably cast every 10 secs, need to confirm }; enum Events @@ -35,80 +35,57 @@ enum Events enum Says { - SAY_PULL = 0, //Yell: ALL MUST BURN! - SAY_DEATH = 1 //Yell: FIRE... EXTINGUISHED! + SAY_PULL = 0, // Yell: ALL MUST BURN! + SAY_DEATH = 1 // Yell: FIRE... EXTINGUISHED! }; -class boss_lord_overheat : public CreatureScript +// Lord Overheat - 46264 +struct boss_lord_overheat : public BossAI { -public: - boss_lord_overheat() : CreatureScript("boss_lord_overheat") {} + boss_lord_overheat(Creature* creature) : BossAI(creature, DATA_LORD_OVERHEAT) { } - struct boss_lord_overheatAI : public BossAI + void EnterCombat(Unit* who) override { - boss_lord_overheatAI(Creature* creature) : BossAI(creature, DATA_LORD_OVERHEAT) { } - - void EnterCombat(Unit* /*who*/) override - { - _EnterCombat(); - Talk(SAY_PULL); - events.ScheduleEvent(EVENT_FIREBALL, Seconds(2)); - events.ScheduleEvent(EVENT_OVERHEAT, Seconds(9), Seconds(11)); - events.ScheduleEvent(EVENT_RAIN_OF_FIRE, Seconds(10), Seconds(13)); - } + BossAI::EnterCombat(who); - void JustDied(Unit* /*killer*/) override - { - Talk(SAY_DEATH); - _JustDied(); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; + Talk(SAY_PULL); - events.Update(diff); - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_FIREBALL: - DoCastVictim(SPELL_FIREBALL); - events.Repeat(Seconds(2)); - break; - case EVENT_OVERHEAT: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) - DoCast(target, SPELL_OVERHEAT); - events.Repeat(Seconds(9), Seconds(10)); - break; - case EVENT_RAIN_OF_FIRE: - DoCastAOE(SPELL_RAIN_OF_FIRE); - events.Repeat(Seconds(15), Seconds(20)); - break; - default: - break; - } + events.ScheduleEvent(EVENT_FIREBALL, 2s); + events.ScheduleEvent(EVENT_OVERHEAT, 9s, 11s); + events.ScheduleEvent(EVENT_RAIN_OF_FIRE, 10s, 13s); + } - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - } + void JustDied(Unit* killer) override + { + BossAI::JustDied(killer); - DoMeleeAttackIfReady(); - } - }; + Talk(SAY_DEATH); + } - CreatureAI* GetAI(Creature* creature) const override + void ExecuteEvent(uint32 eventId) override { - return GetStormwindStockadeAI<boss_lord_overheatAI>(creature); + switch (eventId) + { + case EVENT_FIREBALL: + DoCastVictim(SPELL_FIREBALL); + events.Repeat(2s); + break; + case EVENT_OVERHEAT: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) + DoCast(target, SPELL_OVERHEAT); + events.Repeat(9s, 10s); + break; + case EVENT_RAIN_OF_FIRE: + DoCastAOE(SPELL_RAIN_OF_FIRE); + events.Repeat(15s, 20s); + break; + default: + break; + } } }; void AddSC_boss_lord_overheat() { - new boss_lord_overheat(); + RegisterStormwindStockadesAI(boss_lord_overheat); } diff --git a/src/server/scripts/EasternKingdoms/TheStockade/boss_randolph_moloch.cpp b/src/server/scripts/EasternKingdoms/TheStockade/boss_randolph_moloch.cpp index 41aad65ecf3..4083febc219 100644 --- a/src/server/scripts/EasternKingdoms/TheStockade/boss_randolph_moloch.cpp +++ b/src/server/scripts/EasternKingdoms/TheStockade/boss_randolph_moloch.cpp @@ -15,17 +15,17 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ScriptMgr.h" #include "MotionMaster.h" #include "ScriptedCreature.h" +#include "ScriptMgr.h" #include "the_stockade.h" enum Spells { - SPELL_WILDLY_STABBING = 86726, - SPELL_SWEEP = 86729, - SPELL_VANISH = 55964, - SPELL_SHADOWSTEP = 55966 + SPELL_WILDLY_STABBING = 86726, + SPELL_SWEEP = 86729, + SPELL_VANISH = 55964, + SPELL_SHADOWSTEP = 55966 }; enum Events @@ -42,182 +42,153 @@ enum Events enum Says { - SAY_PULL = 0, //Allow me to introduce myself. I am Randolph Moloch and I will be killing you all today. + SAY_PULL = 0, // Allow me to introduce myself. I am Randolph Moloch and I will be killing you all today. SAY_VANISH = 1, // Area Trigger: %s vanishes! - SAY_DEATH = 2, //My epic schemes, my great plans! Gone! + SAY_DEATH = 2, // My epic schemes, my great plans! Gone! MORTIMER_MOLOCH_DEATH = 0, // %s collapses from a heart attack! - MORTIMER_MOLOCH_EMOTE = 1, //Egad! My sophisticated heart! + MORTIMER_MOLOCH_EMOTE = 1, // Egad! My sophisticated heart! }; enum Points { - POINT_FINISH = 0, + POINT_FINISH = 1, }; Position const mortimerMolochPos = { 145.5811f, 0.7059f, -25.606f, 6.2f }; -class boss_randolph_moloch : public CreatureScript +// Randolph Moloch - 46383 +struct boss_randolph_moloch : public BossAI { -public: - boss_randolph_moloch() : CreatureScript("boss_randolph_moloch") {} + boss_randolph_moloch(Creature* creature) : BossAI(creature, DATA_RANDOLPH_MOLOCH), _firstVanish(false), + _secondVanish(false) { } - struct boss_randolph_molochAI : public BossAI + void Reset() override { - boss_randolph_molochAI(Creature* creature) : BossAI(creature, DATA_RANDOLPH_MOLOCH) - { - firstVanish = false; - secondVanish = false; - } + _firstVanish = false; + _secondVanish = false; + } + void EnterCombat(Unit* who) override + { + BossAI::EnterCombat(who); - void EnterCombat(Unit* /*who*/) override - { - _EnterCombat(); - Talk(SAY_PULL); - events.ScheduleEvent(EVENT_WILDLY_STABBING, Seconds(4), Seconds(5)); - events.ScheduleEvent(EVENT_SWEEP, Seconds(2), Seconds(3)); - } + Talk(SAY_PULL); - void JustSummoned(Creature* summon) override - { - BossAI::JustSummoned(summon); - if (summon->GetEntry() == NPC_MORTIMER_MOLOCH) - { - summon->SetWalk(true); - summon->GetMotionMaster()->MovePoint(POINT_FINISH, me->GetPosition()); - } - } + events.ScheduleEvent(EVENT_WILDLY_STABBING, 4s, 5s); + events.ScheduleEvent(EVENT_SWEEP, 2s, 3s); + } + + void JustSummoned(Creature* summon) override + { + BossAI::JustSummoned(summon); - void JustDied(Unit* /*killer*/) override + if (summon->GetEntry() == NPC_MORTIMER_MOLOCH) { - Talk(SAY_DEATH); - _JustDied(); - me->SummonCreature(NPC_MORTIMER_MOLOCH, mortimerMolochPos); + summon->SetWalk(true); + summon->GetMotionMaster()->MovePoint(POINT_FINISH, me->GetPosition()); } + } - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; + void JustDied(Unit* killer) override + { + BossAI::JustDied(killer); - events.Update(diff); + Talk(SAY_DEATH); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + me->SummonCreature(NPC_MORTIMER_MOLOCH, mortimerMolochPos); + } - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_WILDLY_STABBING: - DoCastVictim(SPELL_WILDLY_STABBING); - events.Repeat(Seconds(8), Seconds(12)); - break; - case EVENT_SWEEP: - DoCastVictim(SPELL_SWEEP); - events.ScheduleEvent(EVENT_SWEEP, Seconds(6), Seconds(7)); - break; - case EVENT_VANISH: - Talk(SAY_VANISH); - me->RemoveAllAuras(); - DoCastSelf(SPELL_VANISH); - me->SetReactState(REACT_PASSIVE); - me->SetInCombatState(true); // Prevents the boss from resetting - events.ScheduleEvent(EVENT_JUST_VANISHED, Seconds(2)); - break; - case EVENT_JUST_VANISHED: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) - DoCast(target, SPELL_SHADOWSTEP, true); - me->SetReactState(REACT_AGGRESSIVE); - break; - default: - break; - } - } - - DoMeleeAttackIfReady(); + void ExecuteEvent(uint32 eventId) override + { + switch (eventId) + { + case EVENT_WILDLY_STABBING: + DoCastVictim(SPELL_WILDLY_STABBING); + events.Repeat(8s, 12s); + break; + case EVENT_SWEEP: + DoCastVictim(SPELL_SWEEP); + events.ScheduleEvent(EVENT_SWEEP, 6s, 7s); + break; + case EVENT_VANISH: + Talk(SAY_VANISH); + me->RemoveAllAuras(); + DoCastSelf(SPELL_VANISH); + me->SetReactState(REACT_PASSIVE); + me->SetInCombatState(true); // Prevents the boss from resetting + events.ScheduleEvent(EVENT_JUST_VANISHED, 2s); + break; + case EVENT_JUST_VANISHED: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) + DoCast(target, SPELL_SHADOWSTEP, true); + me->SetReactState(REACT_AGGRESSIVE); + break; + default: + break; } + } - void DamageTaken(Unit* /*attacker*/, uint32& damage) override + void DamageTaken(Unit* /*attacker*/, uint32& damage) override + { + if (me->HealthBelowPctDamaged(71, damage) && me->HealthAbovePct(59) && !_firstVanish) { - if (me->HealthBelowPctDamaged(71, damage) && me->HealthAbovePct(59) && !firstVanish) - { - firstVanish = true; - events.ScheduleEvent(EVENT_VANISH, Seconds(1)); - } - - if (me->HealthBelowPctDamaged(41, damage) && me->HealthAbovePct(29) && !secondVanish) - { - secondVanish = true; - events.ScheduleEvent(EVENT_VANISH, Seconds(1)); - } + _firstVanish = true; + events.ScheduleEvent(EVENT_VANISH, 1s); } - private: - bool firstVanish, secondVanish; - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return GetStormwindStockadeAI<boss_randolph_molochAI>(creature); + if (me->HealthBelowPctDamaged(41, damage) && me->HealthAbovePct(29) && !_secondVanish) + { + _secondVanish = true; + events.ScheduleEvent(EVENT_VANISH, 1s); + } } + +private: + bool _firstVanish; + bool _secondVanish; }; -class npc_mortimer_moloch : public CreatureScript +// Mortimer Moloch - 46482 +struct npc_mortimer_moloch : public ScriptedAI { -public: - npc_mortimer_moloch() : CreatureScript("npc_mortimer_moloch") {} + npc_mortimer_moloch(Creature* creature) : ScriptedAI(creature) { } - struct npc_mortimer_molochAI : public ScriptedAI + void Reset() override { - npc_mortimer_molochAI(Creature* creature) : ScriptedAI(creature) {} - - void Reset() override - { - me->SetReactState(REACT_PASSIVE); - } + me->SetReactState(REACT_PASSIVE); + } - void MovementInform(uint32 type, uint32 id) override - { - if (type == POINT_MOTION_TYPE) - if(id == POINT_FINISH) - _events.ScheduleEvent(EVENT_MORTIMER_MOLOCH_EMOTE, Seconds(4)); - } + void MovementInform(uint32 type, uint32 id) override + { + if (type != POINT_MOTION_TYPE) + return; - void UpdateAI(uint32 diff) override + if (id == POINT_FINISH) { - _events.Update(diff); + scheduler.Schedule(4s, [this](TaskContext /*context*/) + { + Talk(MORTIMER_MOLOCH_EMOTE); + }); - while (uint32 eventId = _events.ExecuteEvent()) + scheduler.Schedule(7s, [this](TaskContext /*context*/) { - switch (eventId) - { - case EVENT_MORTIMER_MOLOCH_EMOTE: - Talk(MORTIMER_MOLOCH_EMOTE); - _events.ScheduleEvent(EVENT_MORTIMER_MOLOCH_DEATH, Seconds(3)); - break; - case EVENT_MORTIMER_MOLOCH_DEATH: - Talk(MORTIMER_MOLOCH_DEATH); - me->KillSelf(); - break; - default: - break; - } - } + Talk(MORTIMER_MOLOCH_DEATH); + me->KillSelf(); + }); } + } - private: - EventMap _events; - }; - - CreatureAI* GetAI(Creature* creature) const override + void UpdateAI(uint32 diff) override { - return GetStormwindStockadeAI<npc_mortimer_molochAI>(creature); + scheduler.Update(diff); } + +private: + TaskScheduler scheduler; }; void AddSC_boss_randolph_moloch() { - new boss_randolph_moloch(); - new npc_mortimer_moloch(); + RegisterStormwindStockadesAI(boss_randolph_moloch); + RegisterStormwindStockadesAI(npc_mortimer_moloch); } diff --git a/src/server/scripts/EasternKingdoms/TheStockade/instance_the_stockade.cpp b/src/server/scripts/EasternKingdoms/TheStockade/instance_the_stockade.cpp index fed0997e255..38c3846fa75 100644 --- a/src/server/scripts/EasternKingdoms/TheStockade/instance_the_stockade.cpp +++ b/src/server/scripts/EasternKingdoms/TheStockade/instance_the_stockade.cpp @@ -15,8 +15,8 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ScriptMgr.h" #include "InstanceScript.h" +#include "ScriptMgr.h" #include "the_stockade.h" class instance_the_stockade : public InstanceMapScript diff --git a/src/server/scripts/EasternKingdoms/TheStockade/the_stockade.h b/src/server/scripts/EasternKingdoms/TheStockade/the_stockade.h index ead9875524f..ede0b8fdc56 100644 --- a/src/server/scripts/EasternKingdoms/TheStockade/the_stockade.h +++ b/src/server/scripts/EasternKingdoms/TheStockade/the_stockade.h @@ -47,4 +47,6 @@ inline AI* GetStormwindStockadeAI(Creature* creature) return GetInstanceAI<AI>(creature, StormwindStockadeScriptName); } +#define RegisterStormwindStockadesAI(AI) RegisterCreatureAIWithFactory(AI, GetStormwindStockadeAI) + #endif |
