From 21c399229d356a3400fb5aeba4f512e536ca6c61 Mon Sep 17 00:00:00 2001 From: neifion-00000000 <91289495+neifion-00000000@users.noreply.github.com> Date: Wed, 5 Apr 2023 10:09:55 -0500 Subject: [PATCH 1/8] fix:(DB/Creature): Removes unused creature 290 data (#15826) --- data/sql/updates/pending_db_world/rev_1680678566401144700.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1680678566401144700.sql diff --git a/data/sql/updates/pending_db_world/rev_1680678566401144700.sql b/data/sql/updates/pending_db_world/rev_1680678566401144700.sql new file mode 100644 index 000000000..469bed20f --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1680678566401144700.sql @@ -0,0 +1,3 @@ +-- +-- Removes strange rows from creature_template_spell +DELETE FROM `creature_template_spell` WHERE `CreatureID`=290; From 460ead8a4757bf204b72b6c5ba1b3d84ae5c4dda Mon Sep 17 00:00:00 2001 From: v-mstrs <104088833+v-mstrs@users.noreply.github.com> Date: Wed, 5 Apr 2023 18:10:20 +0300 Subject: [PATCH 2/8] chore(DB/SAI): Remove unused SAI from Yor (#15828) * Remove old/unused SAI * remove whitespace * Update rev_1680686430825385473.sql * Update rev_1680686430825385473.sql --- .../sql/updates/pending_db_world/rev_1680686430825385473.sql | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1680686430825385473.sql diff --git a/data/sql/updates/pending_db_world/rev_1680686430825385473.sql b/data/sql/updates/pending_db_world/rev_1680686430825385473.sql new file mode 100644 index 000000000..ab744a28c --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1680686430825385473.sql @@ -0,0 +1,5 @@ +-- +UPDATE `creature_template` SET `AIName` = '' WHERE `entry` = 22930; + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 22930) AND (`source_type` = 0); + From 12a47a8aa6e8d5e0267d67b365a533baaaf79c3c Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Wed, 5 Apr 2023 15:12:52 +0000 Subject: [PATCH 3/8] chore(DB): import pending files Referenced commit(s): 460ead8a4757bf204b72b6c5ba1b3d84ae5c4dda --- .../rev_1680678566401144700.sql => db_world/2023_04_05_00.sql} | 1 + .../rev_1680686430825385473.sql => db_world/2023_04_05_01.sql} | 1 + 2 files changed, 2 insertions(+) rename data/sql/updates/{pending_db_world/rev_1680678566401144700.sql => db_world/2023_04_05_00.sql} (72%) rename data/sql/updates/{pending_db_world/rev_1680686430825385473.sql => db_world/2023_04_05_01.sql} (78%) diff --git a/data/sql/updates/pending_db_world/rev_1680678566401144700.sql b/data/sql/updates/db_world/2023_04_05_00.sql similarity index 72% rename from data/sql/updates/pending_db_world/rev_1680678566401144700.sql rename to data/sql/updates/db_world/2023_04_05_00.sql index 469bed20f..12661efa2 100644 --- a/data/sql/updates/pending_db_world/rev_1680678566401144700.sql +++ b/data/sql/updates/db_world/2023_04_05_00.sql @@ -1,3 +1,4 @@ +-- DB update 2023_04_04_14 -> 2023_04_05_00 -- -- Removes strange rows from creature_template_spell DELETE FROM `creature_template_spell` WHERE `CreatureID`=290; diff --git a/data/sql/updates/pending_db_world/rev_1680686430825385473.sql b/data/sql/updates/db_world/2023_04_05_01.sql similarity index 78% rename from data/sql/updates/pending_db_world/rev_1680686430825385473.sql rename to data/sql/updates/db_world/2023_04_05_01.sql index ab744a28c..c75373124 100644 --- a/data/sql/updates/pending_db_world/rev_1680686430825385473.sql +++ b/data/sql/updates/db_world/2023_04_05_01.sql @@ -1,3 +1,4 @@ +-- DB update 2023_04_05_00 -> 2023_04_05_01 -- UPDATE `creature_template` SET `AIName` = '' WHERE `entry` = 22930; From 328405e4a7bbf11ea6a905c7719a51c36f4833f5 Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Wed, 5 Apr 2023 13:30:03 -0300 Subject: [PATCH 4/8] =?UTF-8?q?fix(Scripts/Arcatraz):=20Fix=20Harbringer?= =?UTF-8?q?=20Skyriss=20not=20splitting=20if=20castin=E2=80=A6=20(#15811)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(Scripts/Arcatraz): Fix Harbringer Skyriss not splitting if casting abilities * Update boss_harbinger_skyriss.cpp * Update boss_harbinger_skyriss.cpp * scheduler update * Update boss_harbinger_skyriss.cpp --- .../arcatraz/boss_harbinger_skyriss.cpp | 192 +++++++----------- 1 file changed, 74 insertions(+), 118 deletions(-) diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp index e16d23003..f6a634d97 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp @@ -45,142 +45,98 @@ enum Spells enum Misc { - NPC_HARBINGER_SKYRISS_66 = 21466, - - EVENT_SUMMON_IMAGE1 = 1, - EVENT_SUMMON_IMAGE2 = 2, - EVENT_SPELL_MIND_REND = 3, - EVENT_SPELL_FEAR = 4, - EVENT_SPELL_DOMINATION = 5, - EVENT_SPELL_MANA_BURN = 6 + NPC_HARBINGER_SKYRISS_66 = 21466 }; -class boss_harbinger_skyriss : public CreatureScript +struct boss_harbinger_skyriss : public BossAI { -public: - boss_harbinger_skyriss() : CreatureScript("boss_harbinger_skyriss") { } - - struct boss_harbinger_skyrissAI : public ScriptedAI + boss_harbinger_skyriss(Creature* creature) : BossAI(creature, DATA_WARDEN_MELLICHAR) { - boss_harbinger_skyrissAI(Creature* creature) : ScriptedAI(creature), summons(me) + scheduler.SetValidator([this] { - instance = creature->GetInstanceScript(); - } + return !me->HasUnitState(UNIT_STATE_CASTING); + }); + } - InstanceScript* instance; - SummonList summons; - EventMap events; + void Reset() override + { + _Reset(); + me->SetImmuneToAll(false); - void Reset() override + ScheduleHealthCheckEvent(66, [&] { + Talk(SAY_IMAGE); + DoCastSelf(SPELL_66_ILLUSION, true); + }); + + ScheduleHealthCheckEvent(33, [&] { + Talk(SAY_IMAGE); + DoCastSelf(SPELL_33_ILLUSION, true); + }); + } + + void JustEngagedWith(Unit* /*who*/) override + { + Talk(SAY_AGGRO); + me->SetInCombatWithZone(); + + scheduler.Schedule(10s, [this](TaskContext context) { - events.Reset(); - summons.DespawnAll(); - me->SetImmuneToAll(false); - } - - void JustEngagedWith(Unit* /*who*/) override + DoCastRandomTarget(SPELL_MIND_REND, 0, 50.0f); + context.Repeat(10s); + }).Schedule(15s, [this](TaskContext context) { - Talk(SAY_AGGRO); - me->SetInCombatWithZone(); - - events.ScheduleEvent(EVENT_SUMMON_IMAGE1, 1000); - events.ScheduleEvent(EVENT_SUMMON_IMAGE2, 1000); - events.ScheduleEvent(EVENT_SPELL_MIND_REND, 10000); - events.ScheduleEvent(EVENT_SPELL_FEAR, 15000); - events.ScheduleEvent(EVENT_SPELL_DOMINATION, 30000); - if (IsHeroic()) - events.ScheduleEvent(EVENT_SPELL_MANA_BURN, 25000); - } - - void JustDied(Unit* /*killer*/) override - { - Talk(SAY_DEATH); - summons.DespawnAll(); - } - - void JustSummoned(Creature* summon) override - { - summon->SetHealth(summon->CountPctFromMaxHealth(summon->GetEntry() == NPC_HARBINGER_SKYRISS_66 ? 66 : 33)); - summons.Summon(summon); - summon->SetInCombatWithZone(); - me->UpdatePosition(*summon, true); - me->SendMovementFlagUpdate(); - } - - void KilledUnit(Unit* victim) override - { - if (victim->GetTypeId() == TYPEID_PLAYER) - Talk(SAY_KILL); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) + if (DoCastRandomTarget(SPELL_FEAR, 1, 20.0f) == SPELL_CAST_OK) { - case EVENT_SUMMON_IMAGE1: - if (HealthBelowPct(67)) - { - Talk(SAY_IMAGE); - me->CastSpell(me, SPELL_66_ILLUSION, false); - break; - } - events.ScheduleEvent(EVENT_SUMMON_IMAGE1, 1000); - break; - case EVENT_SUMMON_IMAGE2: - if (HealthBelowPct(34)) - { - Talk(SAY_IMAGE); - me->CastSpell(me, SPELL_33_ILLUSION, false); - break; - } - events.ScheduleEvent(EVENT_SUMMON_IMAGE2, 1000); - break; - case EVENT_SPELL_MIND_REND: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f)) - me->CastSpell(target, SPELL_MIND_REND, false); - events.ScheduleEvent(EVENT_SPELL_MIND_REND, 10000); - break; - case EVENT_SPELL_FEAR: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 20.0f)) - { - Talk(SAY_FEAR); - me->CastSpell(target, SPELL_FEAR, false); - } - events.ScheduleEvent(EVENT_SPELL_FEAR, 25000); - break; - case EVENT_SPELL_DOMINATION: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 30.0f)) - { - Talk(SAY_MIND); - me->CastSpell(target, SPELL_DOMINATION, false); - } - events.ScheduleEvent(EVENT_SPELL_DOMINATION, 30000); - break; - case EVENT_SPELL_MANA_BURN: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, PowerUsersSelector(me, POWER_MANA, 40.0f, false))) - me->CastSpell(target, SPELL_MANA_BURN, false); - events.ScheduleEvent(EVENT_SPELL_MANA_BURN, 30000); - break; + Talk(SAY_FEAR); } + context.Repeat(25s); + }).Schedule(30s, [this](TaskContext context) + { + if (DoCastRandomTarget(SPELL_DOMINATION, 1, 30.0f) == SPELL_CAST_OK) + { + Talk(SAY_MIND); + } + context.Repeat(); + }); - DoMeleeAttackIfReady(); + if (IsHeroic()) + { + scheduler.Schedule(25s, [this](TaskContext context) + { + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, PowerUsersSelector(me, POWER_MANA, 40.0f, false))) + { + DoCast(target, SPELL_MANA_BURN); + } + + context.Repeat(30s); + }); } - }; + } - CreatureAI* GetAI(Creature* creature) const override + void JustDied(Unit* /*killer*/) override { - return GetArcatrazAI(creature); + _JustDied(); + Talk(SAY_DEATH); + } + + void JustSummoned(Creature* summon) override + { + summon->SetHealth(summon->CountPctFromMaxHealth(summon->GetEntry() == NPC_HARBINGER_SKYRISS_66 ? 66 : 33)); + me->UpdatePosition(*summon, true); + me->SendMovementFlagUpdate(); + BossAI::JustSummoned(summon); + } + + void KilledUnit(Unit* victim) override + { + if (victim->IsPlayer()) + { + Talk(SAY_KILL); + } } }; void AddSC_boss_harbinger_skyriss() { - new boss_harbinger_skyriss(); + RegisterArcatrazCreatureAI(boss_harbinger_skyriss); } From caf54517bf17d8615f673112802684f76d7f0c7e Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Wed, 5 Apr 2023 13:40:21 -0300 Subject: [PATCH 5/8] =?UTF-8?q?fix(Scripts/IcecrownCitadel):=20Fix=20possi?= =?UTF-8?q?ble=20crash=20if=20bosses=20engage=20off=E2=80=A6=20(#15832)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(Scripts/IcecrownCitadel): Fix possible crash if bosses engage offline players --- .../Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp index 1b07ed48d..546fbb5f3 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp @@ -1447,7 +1447,7 @@ public: bool CheckRequiredBosses(uint32 bossId, Player const* player) const override { - if (player->GetSession()->GetSecurity() >= SEC_MODERATOR) + if (player->GetSession() && player->GetSession()->GetSecurity() >= SEC_MODERATOR) { return true; } From dbc04e33285d15ea72ab5bfd1973d04885c9278a Mon Sep 17 00:00:00 2001 From: neifion-00000000 <91289495+neifion-00000000@users.noreply.github.com> Date: Wed, 5 Apr 2023 12:22:46 -0500 Subject: [PATCH 6/8] fix(DB/Loot): Junk Loot from Water Barrels removed (#15540) * fix(db/gameobject_loot): Junk Loot from Water Barrels removed * Update data/sql/updates/pending_db_world/rev_1679482307407253900.sql --- data/sql/updates/pending_db_world/rev_1679482307407253900.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1679482307407253900.sql diff --git a/data/sql/updates/pending_db_world/rev_1679482307407253900.sql b/data/sql/updates/pending_db_world/rev_1679482307407253900.sql new file mode 100644 index 000000000..35c97f2d5 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1679482307407253900.sql @@ -0,0 +1,3 @@ +-- +-- Remove Pollution from Water Barrels (gameobject 3658) +DELETE FROM `gameobject_loot_template` WHERE `Entry`=2502 AND `Item` IN (851, 852, 853, 854, 858, 1196, 1197, 1198, 2207, 2455, 4765, 4766, 4777, 4778); From 86a45372fd753e8984cae8df11f7fefac76365da Mon Sep 17 00:00:00 2001 From: Dan <83884799+elthehablo@users.noreply.github.com> Date: Wed, 5 Apr 2023 19:23:19 +0200 Subject: [PATCH 7/8] fix(DB/Loot): Ferra add in DM:W not dropping correct loot (#15782) * added sql file * Update rev_1680443009841196300.sql --- .../pending_db_world/rev_1680443009841196300.sql | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1680443009841196300.sql diff --git a/data/sql/updates/pending_db_world/rev_1680443009841196300.sql b/data/sql/updates/pending_db_world/rev_1680443009841196300.sql new file mode 100644 index 000000000..98522c564 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1680443009841196300.sql @@ -0,0 +1,15 @@ +-- Ferra loot update +DELETE FROM `creature_loot_template` WHERE (`Entry` = 14308) AND (`Item` IN (4500, 5759, 7909, 7910, 8146, 11414, 11415, 24016, 24018, 24020, 24033)); + +INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(14308, 4500, 0, 0.125, 0, 1, 0, 1, 1, 'Ferra - Thorium Lockbox'), +(14308, 5759, 0, 1, 0, 1, 0, 1, 1, 'Ferra - Traveler\'s Backpack'), +(14308, 8146, 0, 5, 0, 1, 0, 1, 1, 'Ferra - Wicked Claw'), +(14308, 11414, 0, 65, 0, 1, 0, 1, 1, 'Ferra - Grizzled Mane'), +(14308, 11415, 0, 27, 0, 1, 0, 1, 1, 'Ferra - Mixed Berries'), +(14308, 7909, 0, 1, 0, 1, 2, 1, 1, 'Ferra - Aquamarine'), +(14308, 7910, 0, 0.5, 0, 1, 2, 1, 1, 'Ferra - Star Ruby'), +(14308, 24016, 24016, 2, 0, 1, 1, 1, 1, 'Ferra - (ReferenceTable)'), +(14308, 24018, 24018, 1.5, 0, 1, 1, 1, 1, 'Ferra - (ReferenceTable)'), +(14308, 24020, 24020, 1, 0, 1, 1, 1, 1, 'Ferra - (ReferenceTable)'), +(14308, 24033, 24033, 0.75, 0, 1, 1, 1, 1, 'Ferra - (ReferenceTable)'); From 98e071157aefe81061f954c46f4c38b7d87d052c Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Wed, 5 Apr 2023 17:25:46 +0000 Subject: [PATCH 8/8] chore(DB): import pending files Referenced commit(s): 86a45372fd753e8984cae8df11f7fefac76365da --- .../rev_1679482307407253900.sql => db_world/2023_04_05_02.sql} | 1 + .../rev_1680443009841196300.sql => db_world/2023_04_05_03.sql} | 1 + 2 files changed, 2 insertions(+) rename data/sql/updates/{pending_db_world/rev_1679482307407253900.sql => db_world/2023_04_05_02.sql} (82%) rename data/sql/updates/{pending_db_world/rev_1680443009841196300.sql => db_world/2023_04_05_03.sql} (95%) diff --git a/data/sql/updates/pending_db_world/rev_1679482307407253900.sql b/data/sql/updates/db_world/2023_04_05_02.sql similarity index 82% rename from data/sql/updates/pending_db_world/rev_1679482307407253900.sql rename to data/sql/updates/db_world/2023_04_05_02.sql index 35c97f2d5..61679fbdc 100644 --- a/data/sql/updates/pending_db_world/rev_1679482307407253900.sql +++ b/data/sql/updates/db_world/2023_04_05_02.sql @@ -1,3 +1,4 @@ +-- DB update 2023_04_05_01 -> 2023_04_05_02 -- -- Remove Pollution from Water Barrels (gameobject 3658) DELETE FROM `gameobject_loot_template` WHERE `Entry`=2502 AND `Item` IN (851, 852, 853, 854, 858, 1196, 1197, 1198, 2207, 2455, 4765, 4766, 4777, 4778); diff --git a/data/sql/updates/pending_db_world/rev_1680443009841196300.sql b/data/sql/updates/db_world/2023_04_05_03.sql similarity index 95% rename from data/sql/updates/pending_db_world/rev_1680443009841196300.sql rename to data/sql/updates/db_world/2023_04_05_03.sql index 98522c564..bc2a127a4 100644 --- a/data/sql/updates/pending_db_world/rev_1680443009841196300.sql +++ b/data/sql/updates/db_world/2023_04_05_03.sql @@ -1,3 +1,4 @@ +-- DB update 2023_04_05_02 -> 2023_04_05_03 -- Ferra loot update DELETE FROM `creature_loot_template` WHERE (`Entry` = 14308) AND (`Item` IN (4500, 5759, 7909, 7910, 8146, 11414, 11415, 24016, 24018, 24020, 24033));