diff options
7 files changed, 42 insertions, 60 deletions
diff --git a/sql/updates/world/3.3.5/2018_09_21_00_world.sql b/sql/updates/world/3.3.5/2018_09_21_00_world.sql new file mode 100644 index 00000000000..27d043a253a --- /dev/null +++ b/sql/updates/world/3.3.5/2018_09_21_00_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `areatrigger_scripts` WHERE `entry` = 4052 AND `ScriptName` = 'at_aq_battleguard_sartura'; +INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES +(4052, 'at_aq_battleguard_sartura'); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp index 0feb6c6d3a5..b4e975b2aaf 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp @@ -316,11 +316,11 @@ public: switch (urand(0, 2)) { case 0: - if (Creature* kri = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KRI))) + if (Creature* kri = instance->GetCreature(DATA_KRI)) DoCast(kri, SPELL_HEAL); break; case 1: - if (Creature* vem = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VEM))) + if (Creature* vem = instance->GetCreature(DATA_VEM)) DoCast(vem, SPELL_HEAL); break; case 2: diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp index 4a087aef737..eb01a99a315 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp @@ -311,8 +311,25 @@ public: }; +// 4052 +class at_aq_battleguard_sartura : public AreaTriggerScript +{ +public: + at_aq_battleguard_sartura() : AreaTriggerScript("at_aq_battleguard_sartura") { } + + bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override + { + if (InstanceScript* instance = player->GetInstanceScript()) + if (Creature* sartura = instance->GetCreature(DATA_SARTURA)) + sartura->AI()->AttackStart(player); + + return true; + } +}; + void AddSC_boss_sartura() { new boss_sartura(); new npc_sartura_royal_guard(); + new at_aq_battleguard_sartura(); } diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp index 64aab1bab0e..b3c77cdc8e1 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp @@ -114,7 +114,7 @@ struct boss_twinemperorsAI : public ScriptedAI Creature* GetOtherBoss() { - return ObjectAccessor::GetCreature(*me, instance->GetGuidData(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR)); + return instance->GetCreature(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR); } void DamageTaken(Unit* /*done_by*/, uint32 &damage) override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp index 9511232b539..9f8dffd9a88 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp @@ -274,9 +274,9 @@ class npc_glob_of_viscidus : public CreatureScript void JustDied(Unit* /*killer*/) override { - InstanceScript* Instance = me->GetInstanceScript(); + InstanceScript* instance = me->GetInstanceScript(); - if (Creature* Viscidus = ObjectAccessor::GetCreature(*me, Instance->GetGuidData(DATA_VISCIDUS))) + if (Creature* Viscidus = instance->GetCreature(DATA_VISCIDUS)) { if (BossAI* ViscidusAI = dynamic_cast<BossAI*>(Viscidus->GetAI())) ViscidusAI->SummonedCreatureDespawn(me); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp index 2d9fd9bc3ce..47cc4a70024 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp @@ -29,6 +29,17 @@ EndScriptData */ #include "Map.h" #include "temple_of_ahnqiraj.h" +ObjectData const creatureData[] = +{ + { NPC_VEM, DATA_VEM }, + { NPC_KRI, DATA_KRI }, + { NPC_VEKLOR, DATA_VEKLOR }, + { NPC_VEKNILASH, DATA_VEKNILASH }, + { NPC_VISCIDUS, DATA_VISCIDUS }, + { NPC_SARTURA, DATA_SARTURA }, + { 0, 0 } // END +}; + class instance_temple_of_ahnqiraj : public InstanceMapScript { public: @@ -44,6 +55,8 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript instance_temple_of_ahnqiraj_InstanceMapScript(Map* map) : InstanceScript(map) { SetHeaders(DataHeader); + LoadObjectData(creatureData, nullptr); + IsBossDied[0] = false; IsBossDied[1] = false; IsBossDied[2] = false; @@ -56,43 +69,10 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript //If Vem is dead... bool IsBossDied[3]; - //Storing Skeram, Vem and Kri. - ObjectGuid SkeramGUID; - ObjectGuid VemGUID; - ObjectGuid KriGUID; - ObjectGuid VeklorGUID; - ObjectGuid VeknilashGUID; - ObjectGuid ViscidusGUID; - uint32 BugTrioDeathCount; uint32 CthunPhase; - void OnCreatureCreate(Creature* creature) override - { - switch (creature->GetEntry()) - { - case NPC_SKERAM: - SkeramGUID = creature->GetGUID(); - break; - case NPC_VEM: - VemGUID = creature->GetGUID(); - break; - case NPC_KRI: - KriGUID = creature->GetGUID(); - break; - case NPC_VEKLOR: - VeklorGUID = creature->GetGUID(); - break; - case NPC_VEKNILASH: - VeknilashGUID = creature->GetGUID(); - break; - case NPC_VISCIDUS: - ViscidusGUID = creature->GetGUID(); - break; - } - } - bool IsEncounterInProgress() const override { //not active in AQ40 @@ -127,26 +107,6 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript return 0; } - ObjectGuid GetGuidData(uint32 identifier) const override - { - switch (identifier) - { - case DATA_SKERAM: - return SkeramGUID; - case DATA_VEM: - return VemGUID; - case DATA_KRI: - return KriGUID; - case DATA_VEKLOR: - return VeklorGUID; - case DATA_VEKNILASH: - return VeknilashGUID; - case DATA_VISCIDUS: - return ViscidusGUID; - } - return ObjectGuid::Empty; - } // end GetGuidData - void SetData(uint32 type, uint32 data) override { switch (type) diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h index 9722218464d..26aabf4a5ee 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h @@ -39,7 +39,8 @@ enum AQTDataTypes DATA_VEKNILASH_DEATH = 11, DATA_BUG_TRIO_DEATH = 14, DATA_CTHUN_PHASE = 20, - DATA_VISCIDUS = 21 + DATA_VISCIDUS = 21, + DATA_SARTURA = 22 }; enum AQTCreatures @@ -62,7 +63,8 @@ enum AQTCreatures NPC_VEM = 15544, NPC_KRI = 15511, NPC_VEKLOR = 15276, - NPC_VEKNILASH = 15275 + NPC_VEKNILASH = 15275, + NPC_SARTURA = 15516 }; template <class AI, class T> |