diff --git a/data/sql/updates/pending_db_world/rev_1651431887064573700.sql b/data/sql/updates/pending_db_world/rev_1651431887064573700.sql new file mode 100644 index 000000000..17064a3b6 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1651431887064573700.sql @@ -0,0 +1,4 @@ +-- +DELETE FROM `areatrigger_scripts` WHERE `entry` = 4052 AND `ScriptName` = 'at_battleguard_sartura'; +INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES +(4052, 'at_battleguard_sartura'); 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 c5f811cc2..ebbe586a4 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp @@ -23,9 +23,15 @@ SDCategory: Temple of Ahn'Qiraj EndScriptData */ #include "InstanceScript.h" +#include "Player.h" #include "ScriptMgr.h" #include "temple_of_ahnqiraj.h" +ObjectData const creatureData[] = +{ + { NPC_SARTURA, DATA_SARTURA }, +}; + class instance_temple_of_ahnqiraj : public InstanceMapScript { public: @@ -38,7 +44,10 @@ public: struct instance_temple_of_ahnqiraj_InstanceMapScript : public InstanceScript { - instance_temple_of_ahnqiraj_InstanceMapScript(Map* map) : InstanceScript(map) { } + instance_temple_of_ahnqiraj_InstanceMapScript(Map* map) : InstanceScript(map) + { + LoadObjectData(creatureData, nullptr); + } //If Vem is dead... bool IsBossDied[3]; @@ -89,12 +98,8 @@ public: ViscidusGUID = creature->GetGUID(); break; } - } - bool IsEncounterInProgress() const override - { - //not active in AQ40 - return false; + InstanceScript::OnCreatureCreate(creature); } uint32 GetData(uint32 type) const override @@ -174,7 +179,31 @@ public: }; }; +// 4052, At Battleguard Sartura +class at_battleguard_sartura : public AreaTriggerScript +{ +public: + at_battleguard_sartura() : AreaTriggerScript("at_battleguard_sartura") { } + + bool OnTrigger(Player* player, const AreaTrigger* /*at*/) override + { + if (InstanceScript* instance = player->GetInstanceScript()) + { + if (Creature* sartura = instance->GetCreature(DATA_SARTURA)) + { + if (sartura->IsAlive()) + { + sartura->SetInCombatWith(player); + } + } + } + + return true; + } +}; + void AddSC_instance_temple_of_ahnqiraj() { new instance_temple_of_ahnqiraj(); + new at_battleguard_sartura(); } diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h index e36714e1b..8b0a1d524 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h @@ -37,7 +37,8 @@ enum DataTypes DATA_VEKNILASH_DEATH = 11, DATA_BUG_TRIO_DEATH = 14, DATA_CTHUN_PHASE = 20, - DATA_VISCIDUS = 21 + DATA_VISCIDUS = 21, + DATA_SARTURA = 22 }; enum Creatures @@ -61,7 +62,8 @@ enum Creatures NPC_KRI = 15511, NPC_VEKLOR = 15276, NPC_VEKNILASH = 15275, - NPC_OURO = 15517 + NPC_OURO = 15517, + NPC_SARTURA = 15516 }; template