From 4165dc4195d0fe82717de444881294e18a9bf81d Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Mon, 8 Aug 2022 20:05:38 +0200 Subject: [PATCH] fix(Scripts/RuinsOfAhnQiraj): Sand Vortexes should move (#12655) Co-authored-by: Gultask --- .../rev_1659876286945722800.sql | 62 +++++++++++++++++++ .../RuinsOfAhnQiraj/boss_ossirian.cpp | 12 +--- .../instance_ruins_of_ahnqiraj.cpp | 30 +++++++++ 3 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1659876286945722800.sql diff --git a/data/sql/updates/pending_db_world/rev_1659876286945722800.sql b/data/sql/updates/pending_db_world/rev_1659876286945722800.sql new file mode 100644 index 000000000..d49ccd290 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1659876286945722800.sql @@ -0,0 +1,62 @@ +-- +-- Pathing for Sand Vortex Entry: 15428 +SET @NPC := 144680; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-9524.06,`position_y`=1881.9224,`position_z`=85.64029 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0,25160); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-9467.716,1801.2075,85.68075,0,0,0,0,100,0), +(@PATH,2,-9433.638,1767.3511,85.68072,0,0,0,0,100,0), +(@PATH,3,-9400.586,1733.8876,85.68073,0,0,0,0,100,0), +(@PATH,4,-9366.376,1733.2712,85.65805,0,0,0,0,100,0), +(@PATH,5,-9333.135,1732.013,85.61758,0,0,0,0,100,0), +(@PATH,6,-9300.71,1733.3823,85.68074,0,0,0,0,100,0), +(@PATH,7,-9266.841,1766.4036,85.68074,0,0,0,0,100,0), +(@PATH,8,-9234.005,1800.0885,85.68074,0,0,0,0,100,0), +(@PATH,9,-9200.683,1833.4056,85.68073,0,0,0,0,100,0), +(@PATH,10,-9168.018,1866.673,86.23005,0,0,0,0,100,0), +(@PATH,11,-9171.645,1901.1793,85.68071,0,0,0,0,100,0), +(@PATH,12,-9173.781,1933.2633,85.68071,0,0,0,0,100,0), +(@PATH,13,-9195.187,1966.727,86.19511,0,0,0,0,100,0), +(@PATH,14,-9220.778,1999.9199,85.68075,0,0,0,0,100,0), +(@PATH,15,-9256.546,2032.9481,86.04485,0,0,0,0,100,0), +(@PATH,16,-9289.013,2066.2517,87.10255,0,0,0,0,100,0), +(@PATH,17,-9333.082,2071.4539,85.99686,0,0,0,0,100,0), +(@PATH,18,-9366.466,2075.198,86.651405,0,0,0,0,100,0), +(@PATH,19,-9399.833,2040.6716,86.5944,0,0,0,0,100,0), +(@PATH,20,-9432.466,2006.033,85.930725,0,0,0,0,100,0), +(@PATH,21,-9466.139,1975.4115,85.92978,0,0,0,0,100,0), +(@PATH,22,-9499.492,1940.9631,85.67978,0,0,0,0,100,0), +(@PATH,23,-9525.446,1900.1099,85.680725,0,0,0,0,100,0), +(@PATH,24,-9519.793,1870.9224,85.68071,0,0,0,0,100,0), +(@PATH,25,-9499.598,1833.6816,85.68074,0,0,0,0,100,0); + +-- Pathing for Sand Vortex Entry: 15428 +SET @NPC := 144679; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-9228.479,`position_y`=1925.3331,`position_z`=85.64147 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0,25160); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-9267.194,1866.0243,85.597404,0,0,0,0,100,0), +(@PATH,2,-9299.206,1833.0114,85.52548,0,0,0,0,100,0), +(@PATH,3,-9333.244,1799.9004,83.67978,0,0,0,0,100,0), +(@PATH,4,-9366.875,1774.673,85.68073,0,0,0,0,100,0), +(@PATH,5,-9393.9375,1800.2031,85.642654,0,0,0,0,100,0), +(@PATH,6,-9399.323,1833.3334,85.68074,0,0,0,0,100,0), +(@PATH,7,-9425.436,1859.5237,85.63606,0,0,0,0,100,0), +(@PATH,8,-9461.292,1861.6554,85.68074,0,0,0,0,100,0), +(@PATH,9,-9466.752,1899.8247,85.68074,0,0,0,0,100,0), +(@PATH,10,-9432.557,1932.738,84.57658,0,0,0,0,100,0), +(@PATH,11,-9400.856,1965.8516,86.60922,0,0,0,0,100,0), +(@PATH,12,-9369.419,2000.3989,85.680725,0,0,0,0,100,0), +(@PATH,13,-9332.606,2018.017,85.68073,0,0,0,0,100,0), +(@PATH,14,-9311.325,1999.8208,85.68074,0,0,0,0,100,0), +(@PATH,15,-9310.085,1969.1917,85.68074,0,0,0,0,100,0), +(@PATH,16,-9285.372,1947.293,85.68074,0,0,0,0,100,0), +(@PATH,17,-9255.054,1952.4874,85.68074,0,0,0,0,100,0), +(@PATH,18,-9225.013,1923.3672,85.68074,0,0,0,0,100,0), +(@PATH,19,-9233.319,1899.1927,85.68073,0,0,0,0,100,0); diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp index 418b5c782..f77bfcabb 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp @@ -77,12 +77,9 @@ Position CrystalCoordinates[NUM_CRYSTALS] = { -9406.73f, 1863.13f, 85.5558f, 0.0f } }; -float roomRadius = 165.0f; -uint8 const NUM_TORNADOS = 2; uint8 const NUM_WEAKNESS = 5; uint32 const spellWeakness[NUM_WEAKNESS] = { SPELL_FIRE_WEAKNESS, SPELL_FROST_WEAKNESS, SPELL_NATURE_WEAKNESS, SPELL_ARCANE_WEAKNESS, SPELL_SHADOW_WEAKNESS }; -Position const RoomCenter = { -9343.041992f, 1923.278198f, 85.555984f, 0.0 }; struct boss_ossirian : public BossAI { @@ -142,14 +139,7 @@ struct boss_ossirian : public BossAI WorldPackets::Misc::Weather weather(WEATHER_STATE_HEAVY_SANDSTORM, 1.0f); map->SendToPlayers(weather.Write()); - for (uint8 i = 0; i < NUM_TORNADOS; ++i) - { - Position Point = me->GetRandomPoint(RoomCenter, roomRadius); - if (Creature* Tornado = me->GetMap()->SummonCreature(NPC_SAND_VORTEX, Point)) - { - Tornado->CastSpell(Tornado, SPELL_SAND_STORM, true); - } - } + SpawnNextCrystal(); } diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp index 535194429..c5ac1d205 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp @@ -97,6 +97,10 @@ public: case NPC_OSSIRIAN: _ossirianGUID = creature->GetGUID(); break; + case NPC_SAND_VORTEX: + _sandVortexes.push_back(creature->GetGUID()); + creature->SetVisible(false); + break; } } @@ -189,6 +193,31 @@ public: _paralyzedGUID = data; } + bool SetBossState(uint32 type, EncounterState state) override + { + if (!InstanceScript::SetBossState(type, state)) + return false; + + switch (type) + { + case DATA_OSSIRIAN: + { + for (ObjectGuid const& guid : _sandVortexes) + { + if (Creature* sandVortex = instance->GetCreature(guid)) + { + sandVortex->SetVisible(state == IN_PROGRESS); + } + } + break; + default: + break; + } + } + + return true; + } + ObjectGuid GetGuidData(uint32 type) const override { switch (type) @@ -304,6 +333,7 @@ public: ObjectGuid _buruGUID; ObjectGuid _ossirianGUID; ObjectGuid _paralyzedGUID; + GuidVector _sandVortexes; uint32 _rajaxWaveCounter; TaskScheduler _scheduler; };