From ba81fa29192c1f97c986d4dbb08b41c9b0111831 Mon Sep 17 00:00:00 2001 From: acidmanifesto Date: Tue, 21 Jun 2022 18:36:52 -0400 Subject: [PATCH 01/19] update (app) Extractor.bat update (#12139) * update (app) Extractor.bat update Updating Extractor.bat to match new naming convention of extraction toolsets. * Update extractor_es.bat Co-Authored-By: 55Honey <71938210+55Honey@users.noreply.github.com> Co-authored-by: 55Honey <71938210+55Honey@users.noreply.github.com> --- apps/extractor/extractor.bat | 12 ++++++------ apps/extractor/extractor_es.bat | 13 +++++++------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/apps/extractor/extractor.bat b/apps/extractor/extractor.bat index 9cfcbfeef..771bb067d 100644 --- a/apps/extractor/extractor.bat +++ b/apps/extractor/extractor.bat @@ -33,18 +33,18 @@ IF %M%==4 GOTO ALL IF %M%==5 GOTO :EOF :MAPS -start /b /w mapextractor.exe +start /b /w map_extractor.exe GOTO MENU :VMAPS -start /b /w vmap4extractor.exe +start /b /w vmap4_extractor.exe if exist vmaps\ ( echo folder found. ) else ( echo creating folder "vmaps". mkdir "vmaps" ) -start /b /w vmap4assembler.exe Buildings vmaps +start /b /w vmap4_assembler.exe Buildings vmaps rmdir Buildings /s /q GOTO MENU @@ -75,9 +75,9 @@ if exist mmaps\ ( echo creating folder "mmaps". mkdir "mmaps" ) -start /b /w mapextractor.exe -start /b /w vmap4extractor.exe -start /b /w vmap4assembler.exe Buildings vmaps +start /b /w map_extractor.exe +start /b /w vmap4_extractor.exe +start /b /w vmap4_assembler.exe Buildings vmaps rmdir Buildings /s /q start /b /w mmaps_generator.exe GOTO MENU diff --git a/apps/extractor/extractor_es.bat b/apps/extractor/extractor_es.bat index 69e5db1d6..90fe64047 100644 --- a/apps/extractor/extractor_es.bat +++ b/apps/extractor/extractor_es.bat @@ -1,5 +1,6 @@ @ECHO OFF CLS + :MENU ECHO. ECHO ............................................... @@ -32,18 +33,18 @@ IF %M%==4 GOTO ALL IF %M%==5 GOTO :EOF :MAPS -start /b /w mapextractor.exe +start /b /w map_extractor.exe GOTO MENU :VMAPS -start /b /w vmap4extractor.exe +start /b /w vmap4_extractor.exe if exist vmaps\ ( echo folder found. ) else ( echo creating folder "vmaps". mkdir "vmaps" ) -start /b /w vmap4assembler.exe Buildings vmaps +start /b /w vmap4_assembler.exe Buildings vmaps rmdir Buildings /s /q GOTO MENU @@ -74,9 +75,9 @@ if exist mmaps\ ( echo creating folder "mmaps". mkdir "mmaps" ) -start /b /w mapextractor.exe -start /b /w vmap4extractor.exe -start /b /w vmap4assembler.exe Buildings vmaps +start /b /w map_extractor.exe +start /b /w vmap4_extractor.exe +start /b /w vmap4_assembler.exe Buildings vmaps rmdir Buildings /s /q start /b /w mmaps_generator.exe GOTO MENU From 66730674424f413a47d1627468b3faa9474cd44e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefano=20Borz=C3=AC?= Date: Wed, 22 Jun 2022 01:06:34 +0200 Subject: [PATCH 02/19] chore(Dashboard/functions.sh): update data version (#12140) --- apps/installer/includes/functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/installer/includes/functions.sh b/apps/installer/includes/functions.sh index 8b70e4acb..ea901c288 100644 --- a/apps/installer/includes/functions.sh +++ b/apps/installer/includes/functions.sh @@ -223,7 +223,7 @@ function inst_simple_restarter { function inst_download_client_data { # change the following version when needed - local VERSION=v14 + local VERSION=v15 echo "#######################" echo "Client data downloader" From f70f7965b1db967d86d056a8207dc3fae308774d Mon Sep 17 00:00:00 2001 From: Nefertumm Date: Tue, 21 Jun 2022 20:07:08 -0300 Subject: [PATCH 03/19] fix(DB/Events): Midsummer festival cataclysm spawn (#12129) --- .../sql/updates/pending_db_world/rev_1655771457666133100.sql | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1655771457666133100.sql diff --git a/data/sql/updates/pending_db_world/rev_1655771457666133100.sql b/data/sql/updates/pending_db_world/rev_1655771457666133100.sql new file mode 100644 index 000000000..db3b1c88a --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1655771457666133100.sql @@ -0,0 +1,5 @@ +-- +DELETE FROM `creature` WHERE `guid` = 248582; +DELETE FROM `gameobject` WHERE `guid` IN (21003, 21004, 21005, 21006, 21007, 21008, 21010, 21011, 21012, 21013, 21014, 21015, 21017, 21019, 21020, 21021, 21022); +DELETE FROM `game_event_creature` WHERE `guid` = 248582; +DELETE FROM `game_event_gameobject` WHERE `guid` IN (21003, 21004, 21005, 21006, 21007, 21008, 21010, 21011, 21012, 21013, 21014, 21015, 21017, 21019, 21020, 21021, 21022); From c7723a05a9a6ca8fb26b9a5a13017a850c4eb388 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Tue, 21 Jun 2022 23:09:12 +0000 Subject: [PATCH 04/19] chore(DB): import pending files Referenced commit(s): f70f7965b1db967d86d056a8207dc3fae308774d --- .../rev_1655771457666133100.sql => db_world/2022_06_21_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1655771457666133100.sql => db_world/2022_06_21_01.sql} (90%) diff --git a/data/sql/updates/pending_db_world/rev_1655771457666133100.sql b/data/sql/updates/db_world/2022_06_21_01.sql similarity index 90% rename from data/sql/updates/pending_db_world/rev_1655771457666133100.sql rename to data/sql/updates/db_world/2022_06_21_01.sql index db3b1c88a..4508cfa1f 100644 --- a/data/sql/updates/pending_db_world/rev_1655771457666133100.sql +++ b/data/sql/updates/db_world/2022_06_21_01.sql @@ -1,3 +1,4 @@ +-- DB update 2022_06_21_00 -> 2022_06_21_01 -- DELETE FROM `creature` WHERE `guid` = 248582; DELETE FROM `gameobject` WHERE `guid` IN (21003, 21004, 21005, 21006, 21007, 21008, 21010, 21011, 21012, 21013, 21014, 21015, 21017, 21019, 21020, 21021, 21022); From ea22a4f8250f38695501aa557fe2d3f2dcce1462 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Wed, 22 Jun 2022 01:14:55 +0200 Subject: [PATCH 05/19] fix(DB/Spells): Intercept should not bypass Deterrence. (#12113) Fixes #11781 --- data/sql/updates/pending_db_world/rev_1655649959631988500.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1655649959631988500.sql diff --git a/data/sql/updates/pending_db_world/rev_1655649959631988500.sql b/data/sql/updates/pending_db_world/rev_1655649959631988500.sql new file mode 100644 index 000000000..a1d41eab2 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1655649959631988500.sql @@ -0,0 +1,2 @@ +-- +UPDATE `spell_dbc` SET `Attributes`=`Attributes`&~0x00200000, `AttributesEx7`=`AttributesEx7`|0x01800000, `DefenseType`=1 WHERE `ID`=20253; From 6983903a89c556c0ca1239101cffc38098d6b081 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Tue, 21 Jun 2022 23:16:58 +0000 Subject: [PATCH 06/19] chore(DB): import pending files Referenced commit(s): ea22a4f8250f38695501aa557fe2d3f2dcce1462 --- .../rev_1655649959631988500.sql => db_world/2022_06_21_02.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1655649959631988500.sql => db_world/2022_06_21_02.sql} (76%) diff --git a/data/sql/updates/pending_db_world/rev_1655649959631988500.sql b/data/sql/updates/db_world/2022_06_21_02.sql similarity index 76% rename from data/sql/updates/pending_db_world/rev_1655649959631988500.sql rename to data/sql/updates/db_world/2022_06_21_02.sql index a1d41eab2..cac736c17 100644 --- a/data/sql/updates/pending_db_world/rev_1655649959631988500.sql +++ b/data/sql/updates/db_world/2022_06_21_02.sql @@ -1,2 +1,3 @@ +-- DB update 2022_06_21_01 -> 2022_06_21_02 -- UPDATE `spell_dbc` SET `Attributes`=`Attributes`&~0x00200000, `AttributesEx7`=`AttributesEx7`|0x01800000, `DefenseType`=1 WHERE `ID`=20253; From d30716e9e15ae0e28c9cde94d7c15b470abf95ca Mon Sep 17 00:00:00 2001 From: temperrr Date: Wed, 22 Jun 2022 19:41:57 +0200 Subject: [PATCH 07/19] =?UTF-8?q?fix(DB/SmartScript):=20Gurubashi=20Blood?= =?UTF-8?q?=20Drinker=20should=20cast=20Blood=20Leech=20=E2=80=A6=20(#1212?= =?UTF-8?q?1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(DB/SmartScript): Gurubashi Blood Drinker should cast Blood Leech more often * drain life --- data/sql/updates/pending_db_world/blooddrinkerzg.sql | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 data/sql/updates/pending_db_world/blooddrinkerzg.sql diff --git a/data/sql/updates/pending_db_world/blooddrinkerzg.sql b/data/sql/updates/pending_db_world/blooddrinkerzg.sql new file mode 100644 index 000000000..1b96e0aef --- /dev/null +++ b/data/sql/updates/pending_db_world/blooddrinkerzg.sql @@ -0,0 +1,6 @@ +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 11353; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 11353); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(11353, 0, 0, 0, 9, 0, 100, 0, 0, 5, 2000, 4000, 0, 11, 24437, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Gurubashi Blood Drinker - Within 0-5 Range - Cast \'Blood Leech\''), +(11353, 0, 1, 0, 2, 0, 100, 0, 0, 30, 8000, 12000, 0, 11, 24435, 1, 0, 0, 0, 0, 26, 30, 0, 0, 0, 0, 0, 0, 0, 'Gurubashi Blood Drinker - Between 0-30% Health - Cast \'Drain Life\''); From 70c934b33a443574e1bfccff2c74779839e2071d Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Wed, 22 Jun 2022 17:43:59 +0000 Subject: [PATCH 08/19] chore(DB): import pending files Referenced commit(s): d30716e9e15ae0e28c9cde94d7c15b470abf95ca --- .../blooddrinkerzg.sql => db_world/2022_06_22_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/blooddrinkerzg.sql => db_world/2022_06_22_00.sql} (95%) diff --git a/data/sql/updates/pending_db_world/blooddrinkerzg.sql b/data/sql/updates/db_world/2022_06_22_00.sql similarity index 95% rename from data/sql/updates/pending_db_world/blooddrinkerzg.sql rename to data/sql/updates/db_world/2022_06_22_00.sql index 1b96e0aef..1cff6d911 100644 --- a/data/sql/updates/pending_db_world/blooddrinkerzg.sql +++ b/data/sql/updates/db_world/2022_06_22_00.sql @@ -1,3 +1,4 @@ +-- DB update 2022_06_21_02 -> 2022_06_22_00 UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 11353; DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 11353); From f56b0e48f7bc1fba251466c371f875256f032c57 Mon Sep 17 00:00:00 2001 From: Gultask <100873791+Gultask@users.noreply.github.com> Date: Wed, 22 Jun 2022 14:47:01 -0300 Subject: [PATCH 09/19] =?UTF-8?q?fix(DB/gameobject):=20move=20three=20obje?= =?UTF-8?q?cts=20Half-Buried=20Bottle=20(2560)=20abov=E2=80=A6=20(#12103)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(DB/gameobject): move three objects Half-Buried Bottle (2560) above ground Moves objects 11031 11034 11705 above ground as they were previously underground and unreachable. Created by using .go gameobject, flying up, taking the Z-axis from .gps and subtracting 0.1 from the value. Temporary change until a proper sniff can be made. * changed to UPDATE queries Dunno how to make it compact 😛 --- data/sql/updates/pending_db_world/half_buried_bottle.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 data/sql/updates/pending_db_world/half_buried_bottle.sql diff --git a/data/sql/updates/pending_db_world/half_buried_bottle.sql b/data/sql/updates/pending_db_world/half_buried_bottle.sql new file mode 100644 index 000000000..34c6de95d --- /dev/null +++ b/data/sql/updates/pending_db_world/half_buried_bottle.sql @@ -0,0 +1,4 @@ +-- +UPDATE `gameobject` SET `position_z`=0.508326 WHERE `guid`=11031 AND `id`=2560; +UPDATE `gameobject` SET `position_z`=2.541038 WHERE `guid`=11034 AND `id`=2560; +UPDATE `gameobject` SET `position_z`=0.853386 WHERE `guid`=11705 AND `id`=2560; From fe3b3b6132c0aeedae1da1c027c5e7db3ea72465 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Wed, 22 Jun 2022 17:49:28 +0000 Subject: [PATCH 10/19] chore(DB): import pending files Referenced commit(s): f56b0e48f7bc1fba251466c371f875256f032c57 --- .../half_buried_bottle.sql => db_world/2022_06_22_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/half_buried_bottle.sql => db_world/2022_06_22_01.sql} (84%) diff --git a/data/sql/updates/pending_db_world/half_buried_bottle.sql b/data/sql/updates/db_world/2022_06_22_01.sql similarity index 84% rename from data/sql/updates/pending_db_world/half_buried_bottle.sql rename to data/sql/updates/db_world/2022_06_22_01.sql index 34c6de95d..d82d62959 100644 --- a/data/sql/updates/pending_db_world/half_buried_bottle.sql +++ b/data/sql/updates/db_world/2022_06_22_01.sql @@ -1,3 +1,4 @@ +-- DB update 2022_06_22_00 -> 2022_06_22_01 -- UPDATE `gameobject` SET `position_z`=0.508326 WHERE `guid`=11031 AND `id`=2560; UPDATE `gameobject` SET `position_z`=2.541038 WHERE `guid`=11034 AND `id`=2560; From a70762910a4d0fa9c271f9f152e44c96ec4e193b Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Wed, 22 Jun 2022 19:52:29 +0200 Subject: [PATCH 11/19] =?UTF-8?q?fix(Core/Spells):=20Sleep=20aura=20from?= =?UTF-8?q?=20Magic=20Dust=20should=20be=20removed=20if=20tar=E2=80=A6=20(?= =?UTF-8?q?#12020)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(Core/Spells): Sleep aura from Magic Dust should be removed if target is too high level. Fixes #11947 * Update. --- src/server/scripts/Spells/spell_item.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 969e04e7e..3c2984212 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -273,24 +273,28 @@ class spell_item_with_mount_speed : public AuraScript } }; -class spell_item_magic_dust : public AuraScript +class spell_item_magic_dust : public SpellScript { - PrepareAuraScript(spell_item_magic_dust); + PrepareSpellScript(spell_item_magic_dust); - void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + void HandlePreventAura(SpellEffIndex /*effIndex*/) { - Unit* target = GetTarget(); - if (target->getLevel() >= 30) + if (Unit* target = GetHitUnit()) { - uint8 chance = 100 - std::min(100, target->getLevel() - 30 * urand(3, 10)); - if (!roll_chance_i(chance)) - PreventDefaultAction(); + if (target->getLevel() >= 30) + { + uint8 chance = 100 - std::min(100, target->getLevel() - 30 * urand(3, 10)); + if (!roll_chance_i(chance)) + { + PreventHitAura(); + } + } } } void Register() override { - OnEffectApply += AuraEffectApplyFn(spell_item_magic_dust::OnApply, EFFECT_0, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL); + OnEffectHitTarget += SpellEffectFn(spell_item_magic_dust::HandlePreventAura, EFFECT_0, SPELL_EFFECT_APPLY_AURA); } }; From 379f91fe14aab1b0007a23570a87d68e376f9029 Mon Sep 17 00:00:00 2001 From: temperrr Date: Wed, 22 Jun 2022 19:54:04 +0200 Subject: [PATCH 12/19] fix(DB/Creature): Son of Hakkar Improvements (#12119) --- .../pending_db_world/sonofhakkarimprovements.sql | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 data/sql/updates/pending_db_world/sonofhakkarimprovements.sql diff --git a/data/sql/updates/pending_db_world/sonofhakkarimprovements.sql b/data/sql/updates/pending_db_world/sonofhakkarimprovements.sql new file mode 100644 index 000000000..ec9d46112 --- /dev/null +++ b/data/sql/updates/pending_db_world/sonofhakkarimprovements.sql @@ -0,0 +1,13 @@ +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` IN (11357, 14989); + +DELETE FROM `smart_scripts` WHERE ((`source_type` = 0 AND `entryorguid` = 14989)) OR (`source_type` = 0 AND `entryorguid` = 11357); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(14989, 0, 0, 0, 60, 0, 100, 0, 1000, 1000, 1000, 1000, 0, 11, 24320, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Poisonous Cloud - On Update - Cast \'Poisonous Blood\''), +(11357, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 11, 8876, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Son of Hakkar - On Reset - Cast \'Thrash\''), +(11357, 0, 1, 0, 0, 0, 100, 0, 11000, 13000, 19000, 22000, 0, 11, 16790, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Son of Hakkar - In Combat - Cast \'Knockdown\''), +(11357, 0, 2, 0, 6, 0, 100, 1, 0, 0, 0, 0, 0, 11, 24319, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Son of Hakkar - On Just Died - Cast \'Summon Poison Cloud\' (No Repeat)'); + +DELETE FROM `creature` WHERE (`id1` = 11357 AND `guid` IN ( 49033, 49034)); +INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`) VALUES +(49033, 11357, 0, 0, 309, 0, 0, 1, 1, 0, -11746, -1620.6, 36.9961, 1.59794, 60, 5, 0, 15260, 0, 2, 0, 0, 0, '', 0), +(49034, 11357, 0, 0, 309, 0, 0, 1, 1, 0, -11836.5, -1599.98, 40.7501, 1.51519, 60, 5, 0, 15260, 0, 2, 0, 0, 0, '', 0); From c96a4ba223d57c9f49ddcd999c8b7a58e2f7ffd9 Mon Sep 17 00:00:00 2001 From: Maelthyr <100411212+Maelthyrr@users.noreply.github.com> Date: Wed, 22 Jun 2022 19:54:19 +0200 Subject: [PATCH 13/19] fix(Scripts/ZulGurub): Venoxis - Holy wrath and Holy nova event (#12089) * fix(Script/ZulGurub): fix Holy wrath and Holy nova event *adjust timer too * Remove condition for holy wrath. Adjust also timers with new researches. * adjust first cast --- .../EasternKingdoms/ZulGurub/boss_venoxis.cpp | 35 ++++++------------- 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp index f63072138..dd70460c0 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp @@ -145,11 +145,11 @@ public: // Always running events events.ScheduleEvent(EVENT_THRASH, 5000); // Phase one events (regular form) - events.ScheduleEvent(EVENT_HOLY_NOVA, 5000, 0, PHASE_ONE); + events.ScheduleEvent(EVENT_HOLY_NOVA, urand(5000, 15000), 0, PHASE_ONE); events.ScheduleEvent(EVENT_DISPEL_MAGIC, 35000, 0, PHASE_ONE); - events.ScheduleEvent(EVENT_HOLY_FIRE, 10000, 0, PHASE_ONE); + events.ScheduleEvent(EVENT_HOLY_FIRE, urand(10000,20000), 0, PHASE_ONE); events.ScheduleEvent(EVENT_RENEW, 30000, 0, PHASE_ONE); - events.ScheduleEvent(EVENT_HOLY_WRATH, 60000, 0, PHASE_ONE); + events.ScheduleEvent(EVENT_HOLY_WRATH, urand(15000, 25000), 0, PHASE_ONE); events.SetPhase(PHASE_ONE); @@ -205,32 +205,19 @@ public: DoCast(me, SPELL_RENEW); events.ScheduleEvent(EVENT_RENEW, urand(25000, 30000), 0, PHASE_ONE); break; - case EVENT_HOLY_NOVA: - _inMeleeRange = 0; - - for (uint8 i = 0; i < 10; ++i) - { - if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, i)) - // check if target is within melee-distance - if (me->IsWithinMeleeRange(target)) - ++_inMeleeRange; - } - - // trigger spellcast only if we have 3 or more targets to affect - if (_inMeleeRange >= 3) - DoCastVictim(SPELL_HOLY_NOVA); - - events.ScheduleEvent(EVENT_HOLY_NOVA, urand(45000, 75000), 0, PHASE_ONE); + case EVENT_HOLY_WRATH: + if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat)) + DoCast(target, SPELL_HOLY_WRATH); + events.ScheduleEvent(EVENT_HOLY_WRATH, urand(12000, 22000), 0, PHASE_ONE); break; case EVENT_HOLY_FIRE: if (Unit* target = SelectTarget(SelectTargetMethod::Random)) DoCast(target, SPELL_HOLY_FIRE); - events.ScheduleEvent(EVENT_HOLY_FIRE, urand(45000, 60000), 0, PHASE_ONE); + events.ScheduleEvent(EVENT_HOLY_FIRE, urand(10000, 24000), 0, PHASE_ONE); break; - case EVENT_HOLY_WRATH: - if (Unit* target = SelectTarget(SelectTargetMethod::Random)) - DoCast(target, SPELL_HOLY_WRATH); - events.ScheduleEvent(EVENT_HOLY_WRATH, urand(45000, 60000), 0, PHASE_ONE); + case EVENT_HOLY_NOVA: + DoCastSelf(SPELL_HOLY_NOVA); + events.ScheduleEvent(EVENT_HOLY_NOVA, urand(10000, 24000), 0, PHASE_ONE); break; // From 04efb4122c0186b2f61796a25e488d0ad5dafad0 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Wed, 22 Jun 2022 17:56:30 +0000 Subject: [PATCH 14/19] chore(DB): import pending files Referenced commit(s): c96a4ba223d57c9f49ddcd999c8b7a58e2f7ffd9 --- .../sonofhakkarimprovements.sql => db_world/2022_06_22_02.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/sonofhakkarimprovements.sql => db_world/2022_06_22_02.sql} (97%) diff --git a/data/sql/updates/pending_db_world/sonofhakkarimprovements.sql b/data/sql/updates/db_world/2022_06_22_02.sql similarity index 97% rename from data/sql/updates/pending_db_world/sonofhakkarimprovements.sql rename to data/sql/updates/db_world/2022_06_22_02.sql index ec9d46112..953e81642 100644 --- a/data/sql/updates/pending_db_world/sonofhakkarimprovements.sql +++ b/data/sql/updates/db_world/2022_06_22_02.sql @@ -1,3 +1,4 @@ +-- DB update 2022_06_22_01 -> 2022_06_22_02 UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` IN (11357, 14989); DELETE FROM `smart_scripts` WHERE ((`source_type` = 0 AND `entryorguid` = 14989)) OR (`source_type` = 0 AND `entryorguid` = 11357); From 3ef2b09a40ad892be7e2ad0a27655fd0a0b70715 Mon Sep 17 00:00:00 2001 From: Kempec Halk <80704304+Gozzim@users.noreply.github.com> Date: Wed, 22 Jun 2022 22:19:45 +0200 Subject: [PATCH 15/19] feat(Core/Command): Deserter rm all time parameter (#11963) * feat(Core/Command): Deserter rm all time variable * feat(Core/Command): deserter remove all TimeString * chore(Core/Commands): Deserter remove all slight improvements --- .../rev_1654369041234881900.sql | 6 +++ src/server/scripts/Commands/cs_deserter.cpp | 39 +++++++++++++++---- 2 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1654369041234881900.sql diff --git a/data/sql/updates/pending_db_world/rev_1654369041234881900.sql b/data/sql/updates/pending_db_world/rev_1654369041234881900.sql new file mode 100644 index 000000000..ed7ae567f --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1654369041234881900.sql @@ -0,0 +1,6 @@ +-- +DELETE FROM `command` WHERE `name` IN ("deserter instance remove all", "deserter bg remove all"); + +INSERT INTO `command` (`name`, `security`, `help`) VALUES +("deserter instance remove all", 3, "Syntax: .deserter instance remove all <$maxDuration>\r\n Removes the instance deserter debuff from all online and offline players.\nOptional $maxDuration sets the maximum duration to be removed. Use a timestring like \"1h45m\". \"-1\" for any duration. Default: 30m"), +("deserter bg remove all", 3, "Syntax: .deserter bg remove all <$maxDuration>\r\n Removes the bg deserter debuff from all online and offline players.\nOptional $maxDuration sets the maximum duration to be removed. Use a timestring like \"1h45m\". \"-1\" for any duration. Default: 15m"); \ No newline at end of file diff --git a/src/server/scripts/Commands/cs_deserter.cpp b/src/server/scripts/Commands/cs_deserter.cpp index 17761aaf6..6be0b58e3 100644 --- a/src/server/scripts/Commands/cs_deserter.cpp +++ b/src/server/scripts/Commands/cs_deserter.cpp @@ -260,9 +260,34 @@ public: return true; } - static bool HandleDeserterRemoveAll(ChatHandler* handler, bool isInstance) + static bool HandleDeserterRemoveAll(ChatHandler* handler, bool isInstance, Optional maxTime) { - CharacterDatabase.Query("DELETE FROM character_aura WHERE spell = {} AND remainTime <= 1800000", isInstance ? LFG_SPELL_DUNGEON_DESERTER : BG_SPELL_DESERTER); + int32 remainTime = isInstance ? 1800 : 900; + + if (maxTime) + { + remainTime = TimeStringToSecs(*maxTime); + if (remainTime == 0) + { + remainTime = Acore::StringTo(*maxTime).value_or(0); + } + } + + if (remainTime == 0) + { + handler->SendSysMessage(LANG_BAD_VALUE); + handler->SetSentErrorMessage(true); + return false; + } + + if (remainTime < 0) + { + CharacterDatabase.Execute("DELETE FROM character_aura WHERE spell = {}", isInstance ? LFG_SPELL_DUNGEON_DESERTER : BG_SPELL_DESERTER); + } + else + { + CharacterDatabase.Execute("DELETE FROM character_aura WHERE spell = {} AND remainTime <= {}", isInstance ? LFG_SPELL_DUNGEON_DESERTER : BG_SPELL_DESERTER, remainTime * IN_MILLISECONDS); + } std::shared_lock lock(*HashMapHolder::GetLock()); HashMapHolder::MapType const& onlinePlayerList = ObjectAccessor::GetPlayers(); @@ -270,7 +295,7 @@ public: { Player* player = itr->second; Aura* aura = player->GetAura(isInstance ? LFG_SPELL_DUNGEON_DESERTER : BG_SPELL_DESERTER); - if (aura && aura->GetDuration() <= 1800000) + if (aura && (remainTime < 0 || aura->GetDuration() <= remainTime * IN_MILLISECONDS)) { player->RemoveAura(isInstance ? LFG_SPELL_DUNGEON_DESERTER : BG_SPELL_DESERTER); } @@ -304,14 +329,14 @@ public: return HandleDeserterRemove(handler, player, false); } - static bool HandleDeserterInstanceRemoveAll(ChatHandler* handler) + static bool HandleDeserterInstanceRemoveAll(ChatHandler* handler, Optional maxTime) { - return HandleDeserterRemoveAll(handler, true); + return HandleDeserterRemoveAll(handler, true, maxTime); } - static bool HandleDeserterBGRemoveAll(ChatHandler* handler) + static bool HandleDeserterBGRemoveAll(ChatHandler* handler, Optional maxTime) { - return HandleDeserterRemoveAll(handler, false); + return HandleDeserterRemoveAll(handler, false, maxTime); } }; From 92aec9fc3e8fc363db856faab480a8edb32606fd Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Wed, 22 Jun 2022 20:21:52 +0000 Subject: [PATCH 16/19] chore(DB): import pending files Referenced commit(s): 3ef2b09a40ad892be7e2ad0a27655fd0a0b70715 --- .../rev_1654369041234881900.sql => db_world/2022_06_22_03.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1654369041234881900.sql => db_world/2022_06_22_03.sql} (94%) diff --git a/data/sql/updates/pending_db_world/rev_1654369041234881900.sql b/data/sql/updates/db_world/2022_06_22_03.sql similarity index 94% rename from data/sql/updates/pending_db_world/rev_1654369041234881900.sql rename to data/sql/updates/db_world/2022_06_22_03.sql index ed7ae567f..6a0302ab6 100644 --- a/data/sql/updates/pending_db_world/rev_1654369041234881900.sql +++ b/data/sql/updates/db_world/2022_06_22_03.sql @@ -1,3 +1,4 @@ +-- DB update 2022_06_22_02 -> 2022_06_22_03 -- DELETE FROM `command` WHERE `name` IN ("deserter instance remove all", "deserter bg remove all"); From 38889324b2bd4a77b47bf4774753198e280723ec Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Thu, 23 Jun 2022 09:49:08 -0300 Subject: [PATCH 17/19] fix(Scripts/BlackwingLair): Nefarian class calls should not repeat (#12148) --- .../BlackwingLair/boss_nefarian.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp index cfb502d59..ec924ec79 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp @@ -548,6 +548,8 @@ struct boss_nefarian : public BossAI } me->DespawnOrUnsummon(); } + + classesPresent.clear(); } void EnterCombat(Unit* /*who*/) override {} @@ -675,16 +677,21 @@ struct boss_nefarian : public BossAI events.ScheduleEvent(EVENT_TAILLASH, 10000); break; case EVENT_CLASSCALL: - std::set classesPresent; - for (auto& ref : me->GetThreatMgr().getThreatList()) + if (classesPresent.empty()) { - if (ref->getTarget() && ref->getTarget()->GetTypeId() == TYPEID_PLAYER) + for (auto& ref : me->GetThreatMgr().getThreatList()) { - classesPresent.insert(ref->getTarget()->getClass()); + if (ref->getTarget() && ref->getTarget()->GetTypeId() == TYPEID_PLAYER) + { + classesPresent.insert(ref->getTarget()->getClass()); + } } } + uint8 targetClass = Acore::Containers::SelectRandomContainerElement(classesPresent); + classesPresent.erase(targetClass); + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, ClassCallSelector(me, targetClass))) { switch (target->getClass()) @@ -755,6 +762,7 @@ struct boss_nefarian : public BossAI private: bool Phase3; bool _introDone; + std::set classesPresent; }; enum TotemSpells From 07a6c1744997e390946a04ec57e55ccafd6dd6a8 Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Fri, 24 Jun 2022 18:56:10 +0430 Subject: [PATCH 18/19] feat(Core/Scripts): Added Boundary in Forge of Souls (#11798) --- .gitignore | 1 + .../ForgeOfSouls/instance_forge_of_souls.cpp | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 1ff022513..56359e70a 100644 --- a/.gitignore +++ b/.gitignore @@ -65,6 +65,7 @@ nbproject/ .idea cmake-build-debug/* cmake-build-debug-coverage/* +cmake-build-debug-event-trace coverage-report/ # diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp index 73d194f2d..7a65bde9f 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp @@ -20,6 +20,12 @@ #include "ScriptedCreature.h" #include "forge_of_souls.h" +BossBoundaryData const boundaries = +{ + { DATA_BRONJAHM, new CircleBoundary(Position(5297.3f, 2506.45f), 100.96) }, + { DATA_DEVOURER, new ParallelogramBoundary(Position(5663.56f, 2570.53f), Position(5724.39f, 2520.45f), Position(5570.36f, 2461.42f)) } +}; + class instance_forge_of_souls : public InstanceMapScript { public: @@ -32,7 +38,10 @@ public: struct instance_forge_of_souls_InstanceScript : public InstanceScript { - instance_forge_of_souls_InstanceScript(Map* map) : InstanceScript(map) {} + instance_forge_of_souls_InstanceScript(Map* map) : InstanceScript(map) + { + LoadBossBoundaries(boundaries); + } uint32 m_auiEncounter[MAX_ENCOUNTER]; TeamId teamIdInInstance; From 37c1ce5e36c9749bc9a063f0621bb1f02e47a6f1 Mon Sep 17 00:00:00 2001 From: "Julio A. Leyva Osorio" Date: Fri, 24 Jun 2022 11:35:25 -0400 Subject: [PATCH 19/19] fix(core): Npc gossip error logging (#11999) --- src/server/game/Globals/ObjectMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 81161064b..568597c34 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -1195,7 +1195,7 @@ void ObjectMgr::CheckCreatureTemplate(CreatureTemplate const* cInfo) } else if ((!cInfo->GossipMenuId && (cInfo->npcflag & UNIT_NPC_FLAG_GOSSIP)) && !(cInfo->flags_extra & CREATURE_FLAG_EXTRA_MODULE)) { - LOG_ERROR("sql.sql", "Creature (Entry: {}) has npcflag UNIT_NPC_FLAG_GOSSIP (1), but gossip menu is unassigned.", cInfo->Entry); + LOG_INFO("sql.sql", "Creature (Entry: {}) has npcflag UNIT_NPC_FLAG_GOSSIP (1), but gossip menu is unassigned.", cInfo->Entry); } }