diff --git a/sql/world/base/zone_tanaris.sql b/sql/world/base/zone_tanaris.sql new file mode 100644 index 0000000..02b47b5 --- /dev/null +++ b/sql/world/base/zone_tanaris.sql @@ -0,0 +1,8 @@ +/* Caverns of Time Door */ +DELETE FROM `gameobject` WHERE `guid`=2993000; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`) VALUES +(2993000, 176996, 1, 0, 0, 1, 1, -8173.02, -4747.2, 34.2107, 1.80084, -0, -0, -0.783588, -0.621281, 0, 0, 0, '', 0); + +UPDATE `gameobject_template` SET `ScriptName` = "go_cavernsoftimedoor" WHERE `entry` = 176996; + +UPDATE `creature` SET `position_x` = -8175.67, `position_y` = -4718.28, `position_z` = 26.3489, `orientation` = 1.88496 WHERE `id1` = 15192; diff --git a/src/IndividualProgression_loader.cpp b/src/IndividualProgression_loader.cpp index f25bb9d..13ad837 100644 --- a/src/IndividualProgression_loader.cpp +++ b/src/IndividualProgression_loader.cpp @@ -32,6 +32,7 @@ void AddSC_boss_thaddius_40(); void AddSC_npc_omarion(); void AddSC_Ipp_Wotlk_Modded_Scripts(); void AddSC_aq_scripts(); +void AddSC_cot_scripts(); void Addmod_individual_progressionScripts() @@ -65,5 +66,6 @@ void Addmod_individual_progressionScripts() AddSC_npc_omarion(); AddSC_Ipp_Wotlk_Modded_Scripts(); AddSC_aq_scripts(); + AddSC_cot_scripts(); } diff --git a/src/vanillaScripts/cot_scripts.cpp b/src/vanillaScripts/cot_scripts.cpp new file mode 100644 index 0000000..b671a62 --- /dev/null +++ b/src/vanillaScripts/cot_scripts.cpp @@ -0,0 +1,45 @@ +#include "IndividualProgression.h" +#include "ScriptMgr.h" +#include "Player.h" +#include "GameObjectAI.h" +#include "ScriptedCreature.h" +#include "ScriptedGossip.h" + +class go_cavernsoftimedoor : public GameObjectScript +{ +public: + go_cavernsoftimedoor() : GameObjectScript("go_cavernsoftimedoor") { } + + struct go_cavernsoftimedoorAI : GameObjectAI + { + + explicit go_cavernsoftimedoorAI(GameObject *object) : GameObjectAI(object) + { + object->SetGoState(GO_STATE_READY); + object->SetGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE); + object->EnableCollision(true); + }; + + bool CanBeSeen(Player const* player) override + { + if (player->IsGameMaster()) + { + return true; + } + Player* target = ObjectAccessor::FindConnectedPlayer(player->GetGUID()); + return target->GetPlayerSetting("mod-individual-progression", SETTING_PROGRESSION_STATE).value < PROGRESSION_NAXX40; + } + + }; + + GameObjectAI *GetAI(GameObject *object) const override + { + return new go_cavernsoftimedoorAI(object); + } +}; + +void AddSC_cot_scripts() +{ + new go_cavernsoftimedoor(); +} +