From 6a387fe6377d9d82f2b8b832ab79e72b51cc7169 Mon Sep 17 00:00:00 2001 From: Ryan Turner Date: Sat, 10 May 2025 01:10:09 +0100 Subject: [PATCH 01/26] fix(DB/Loot) - Lorgalis Manuscript no longer drops from creatures. (#22092) --- data/sql/updates/pending_db_world/rev_1746808964702490700.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1746808964702490700.sql diff --git a/data/sql/updates/pending_db_world/rev_1746808964702490700.sql b/data/sql/updates/pending_db_world/rev_1746808964702490700.sql new file mode 100644 index 000000000..b86112fa1 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1746808964702490700.sql @@ -0,0 +1,2 @@ +-- Deletes `Lorgalis Manuscript` (5359) from `Aku'mai Fisher` (4824), `Blackfathom Myrmidon` (4807), `Blackfathom Sea Witch` (4805) and `Snapping Crustacean` (4822) +DELETE FROM `creature_loot_template` WHERE `Item` = 5359; From e165105503252042954355ad263653939dc8f7e4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 May 2025 00:11:07 +0000 Subject: [PATCH 02/26] chore(DB): import pending files Referenced commit(s): 6a387fe6377d9d82f2b8b832ab79e72b51cc7169 --- .../rev_1746808964702490700.sql => db_world/2025_05_10_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1746808964702490700.sql => db_world/2025_05_10_00.sql} (83%) diff --git a/data/sql/updates/pending_db_world/rev_1746808964702490700.sql b/data/sql/updates/db_world/2025_05_10_00.sql similarity index 83% rename from data/sql/updates/pending_db_world/rev_1746808964702490700.sql rename to data/sql/updates/db_world/2025_05_10_00.sql index b86112fa1..61aff7f78 100644 --- a/data/sql/updates/pending_db_world/rev_1746808964702490700.sql +++ b/data/sql/updates/db_world/2025_05_10_00.sql @@ -1,2 +1,3 @@ +-- DB update 2025_05_09_01 -> 2025_05_10_00 -- Deletes `Lorgalis Manuscript` (5359) from `Aku'mai Fisher` (4824), `Blackfathom Myrmidon` (4807), `Blackfathom Sea Witch` (4805) and `Snapping Crustacean` (4822) DELETE FROM `creature_loot_template` WHERE `Item` = 5359; From 8591e9f825d9c9eb0b38fcf7e82aed387a24525e Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Sat, 10 May 2025 17:51:02 +0200 Subject: [PATCH 03/26] fix (Script/SunwellPlateau): Edit some Kil'jaeden dialogue and spells' timers. (#22093) --- .../SunwellPlateau/boss_kiljaeden.cpp | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index a0d2871bb..732b890ed 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -259,12 +259,12 @@ struct boss_kiljaeden : public BossAI ScheduleHealthCheckEvent(85, [&]{ _phase = PHASE_DARKNESS; if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ)) - kalec->AI()->Talk(SAY_KALECGOS_AWAKEN, 16s); + kalec->AI()->Talk(SAY_KALECGOS_AWAKEN, 21s); if (Creature* anveena = instance->GetCreature(DATA_ANVEENA)) - anveena->AI()->Talk(SAY_ANVEENA_IMPRISONED, 22s); + anveena->AI()->Talk(SAY_ANVEENA_IMPRISONED, 26s); - Talk(SAY_KJ_PHASE3, 28s); + Talk(SAY_KJ_PHASE3, 32s); scheduler.CancelAll(); @@ -274,7 +274,7 @@ struct boss_kiljaeden : public BossAI if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ)) kalec->AI()->Talk(SAY_KALECGOS_READY1); EmpowerOrb(false); - }, 35s); + }, 38s); me->m_Events.AddEventAtOffset([&] { Talk(SAY_KJ_REFLECTION); @@ -290,7 +290,7 @@ struct boss_kiljaeden : public BossAI DoCastSelf(SPELL_FLAME_DART); }, 10s); - ScheduleTimedEvent(16s, [&] { + ScheduleTimedEvent(50s, [&] { Talk(EMOTE_KJ_DARKNESS); DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS); }, 45s); @@ -299,12 +299,12 @@ struct boss_kiljaeden : public BossAI ScheduleHealthCheckEvent(55, [&] { _phase = PHASE_ARMAGEDDON; if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ)) - kalec->AI()->Talk(SAY_KALECGOS_LETGO, 16s); + kalec->AI()->Talk(SAY_KALECGOS_LETGO, 18s); if (Creature* anveena = instance->GetCreature(DATA_ANVEENA)) - anveena->AI()->Talk(SAY_ANVEENA_LOST, 22s); + anveena->AI()->Talk(SAY_ANVEENA_LOST, 25s); - Talk(SAY_KJ_PHASE4, 28s); + Talk(SAY_KJ_PHASE4, 32s); scheduler.CancelAll(); @@ -312,7 +312,7 @@ struct boss_kiljaeden : public BossAI if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ)) kalec->AI()->Talk(SAY_KALECGOS_READY2); EmpowerOrb(false); - }, 35s); + }, 38s); scheduler.Schedule(1s, [this](TaskContext) { @@ -326,7 +326,7 @@ struct boss_kiljaeden : public BossAI ScheduleBasicAbilities(); }); - ScheduleTimedEvent(15s, [&] { + ScheduleTimedEvent(50s, [&] { me->RemoveAurasDueToSpell(SPELL_ARMAGEDDON_PERIODIC); Talk(EMOTE_KJ_DARKNESS); DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS); @@ -362,14 +362,14 @@ struct boss_kiljaeden : public BossAI if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ)) { - kalec->AI()->Talk(SAY_KALECGOS_FOCUS, 8s); - kalec->AI()->Talk(SAY_KALECGOS_FATE, 20s + 200ms); + kalec->AI()->Talk(SAY_KALECGOS_FOCUS, 9s); + kalec->AI()->Talk(SAY_KALECGOS_FATE, 22s + 200ms); } if (Creature* anveena = instance->GetCreature(DATA_ANVEENA)) { - anveena->AI()->Talk(SAY_ANVEENA_KALEC, 18s); - anveena->AI()->Talk(SAY_ANVEENA_GOODBYE, 25s); + anveena->AI()->Talk(SAY_ANVEENA_KALEC, 20s); + anveena->AI()->Talk(SAY_ANVEENA_GOODBYE, 29s); } me->m_Events.AddEventAtOffset([&] { @@ -378,7 +378,7 @@ struct boss_kiljaeden : public BossAI anveena->RemoveAllAuras(); anveena->DespawnOrUnsummon(3500); } - }, 28s); + }, 34s); me->m_Events.AddEventAtOffset([&] { if (Creature* anveena = instance->GetCreature(DATA_ANVEENA)) @@ -394,7 +394,7 @@ struct boss_kiljaeden : public BossAI ScheduleBasicAbilities(); - ScheduleTimedEvent(25s, [&] { + ScheduleTimedEvent(30s, [&] { me->RemoveAurasDueToSpell(SPELL_ARMAGEDDON_PERIODIC); Talk(EMOTE_KJ_DARKNESS); DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS); @@ -411,13 +411,13 @@ struct boss_kiljaeden : public BossAI }, 7s); } Talk(SAY_KJ_PHASE5); - }, 30s); + }, 36s); me->m_Events.AddEventAtOffset([&] { if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ)) kalec->AI()->Talk(SAY_KALECGOS_READY_ALL); EmpowerOrb(true); - }, 61s); + }, 48s); }); }); } From f40954ab422eeafcf2e9a28cb71dc12040e66cd3 Mon Sep 17 00:00:00 2001 From: avarishd <46330494+avarishd@users.noreply.github.com> Date: Sat, 10 May 2025 20:30:32 +0300 Subject: [PATCH 04/26] fix(Scripts/Desolace): Kodo Roundup (#22052) Quest: Kodo Roundup now can be completed. --- src/server/scripts/Kalimdor/zone_desolace.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/scripts/Kalimdor/zone_desolace.cpp b/src/server/scripts/Kalimdor/zone_desolace.cpp index 3abed38b9..8f1af105d 100644 --- a/src/server/scripts/Kalimdor/zone_desolace.cpp +++ b/src/server/scripts/Kalimdor/zone_desolace.cpp @@ -473,7 +473,7 @@ public: { if (spell->Id == SPELL_KODO_KOMBO_ITEM) { - if (!caster->HasAnyAuras(SPELL_KODO_KOMBO_PLAYER_BUFF, SPELL_KODO_KOMBO_DESPAWN_BUFF) + if (!(caster->HasAura(SPELL_KODO_KOMBO_PLAYER_BUFF) || me->HasAura(SPELL_KODO_KOMBO_DESPAWN_BUFF)) && (me->GetEntry() == NPC_AGED_KODO || me->GetEntry() == NPC_DYING_KODO || me->GetEntry() == NPC_ANCIENT_KODO)) { me->UpdateEntry(NPC_TAMED_KODO, nullptr, false); @@ -494,7 +494,7 @@ public: bool OnGossipHello(Player* player, Creature* creature) override { - if (player->HasAllAuras(SPELL_KODO_KOMBO_PLAYER_BUFF, SPELL_KODO_KOMBO_DESPAWN_BUFF)) + if (player->HasAura(SPELL_KODO_KOMBO_PLAYER_BUFF) && creature->HasAura(SPELL_KODO_KOMBO_DESPAWN_BUFF)) { player->TalkedToCreature(creature->GetEntry(), ObjectGuid::Empty); player->RemoveAurasDueToSpell(SPELL_KODO_KOMBO_PLAYER_BUFF); From 43a308897b49c936da36d885e384c35ba2be0e8b Mon Sep 17 00:00:00 2001 From: avarishd <46330494+avarishd@users.noreply.github.com> Date: Sat, 10 May 2025 20:32:44 +0300 Subject: [PATCH 05/26] fix(DB/Conditions): 'Opening the Backdoor' pre-quests (#22097) --- .../sql/updates/pending_db_world/rev_1746846052760295300.sql | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1746846052760295300.sql diff --git a/data/sql/updates/pending_db_world/rev_1746846052760295300.sql b/data/sql/updates/pending_db_world/rev_1746846052760295300.sql new file mode 100644 index 000000000..8c34a3a4e --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1746846052760295300.sql @@ -0,0 +1,5 @@ +-- +DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 19) AND (`SourceGroup` = 0) AND (`SourceEntry` = 12821) AND (`ConditionValue1` IN (12820,12832)); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(19, 0, 12821, 0, 0, 8, 0, 12820, 0, 0, 0, 0, 0, '', 'Allow picking quest \'Opening the Backdoor\' only if \'A Delicate Touch\' has been completed.'), +(19, 0, 12821, 0, 0, 8, 0, 12832, 0, 0, 0, 0, 0, '', 'Allow picking quest \'Opening the Backdoor\' only if \'Bitter Departure\' has been completed.'); From 201c1fc4910d6ea8a095b00713259bbe9cb0f54d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 May 2025 17:33:49 +0000 Subject: [PATCH 06/26] chore(DB): import pending files Referenced commit(s): 43a308897b49c936da36d885e384c35ba2be0e8b --- .../rev_1746846052760295300.sql => db_world/2025_05_10_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1746846052760295300.sql => db_world/2025_05_10_01.sql} (94%) diff --git a/data/sql/updates/pending_db_world/rev_1746846052760295300.sql b/data/sql/updates/db_world/2025_05_10_01.sql similarity index 94% rename from data/sql/updates/pending_db_world/rev_1746846052760295300.sql rename to data/sql/updates/db_world/2025_05_10_01.sql index 8c34a3a4e..41941e408 100644 --- a/data/sql/updates/pending_db_world/rev_1746846052760295300.sql +++ b/data/sql/updates/db_world/2025_05_10_01.sql @@ -1,3 +1,4 @@ +-- DB update 2025_05_10_00 -> 2025_05_10_01 -- DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 19) AND (`SourceGroup` = 0) AND (`SourceEntry` = 12821) AND (`ConditionValue1` IN (12820,12832)); INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES From 60296dd934e740a86ba139f250defe3ea9c5ec0b Mon Sep 17 00:00:00 2001 From: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> Date: Sat, 10 May 2025 13:38:46 -0400 Subject: [PATCH 07/26] fix(Scripts/Paladin): Add cast check to Hand of Protection for casting spell on non-self targets. (#22077) Hand of Protection no longer can be used if the caster it's stunned or confused. --- .../sql/updates/pending_db_world/bop-ally.sql | 3 ++ src/server/scripts/Spells/spell_paladin.cpp | 31 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 data/sql/updates/pending_db_world/bop-ally.sql diff --git a/data/sql/updates/pending_db_world/bop-ally.sql b/data/sql/updates/pending_db_world/bop-ally.sql new file mode 100644 index 000000000..55ef4c95a --- /dev/null +++ b/data/sql/updates/pending_db_world/bop-ally.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `spell_id` = -1022; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(-1022, 'spell_pal_hand_of_protection'); diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index e2350a2c8..941af7f4f 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -1150,6 +1150,36 @@ class spell_pal_seal_of_vengeance : public SpellScript } }; +// 1022 - Hand of Protection +class spell_pal_hand_of_protection : public SpellScript +{ + PrepareSpellScript(spell_pal_hand_of_protection); + + SpellCastResult CheckCast() + { + Unit* caster = GetCaster(); + + if (!caster->GetTarget() || caster->GetTarget() == caster->GetGUID()) + return SPELL_CAST_OK; + + if (caster->HasStunAura()) + return SPELL_FAILED_STUNNED; + + if (caster->HasConfuseAura()) + return SPELL_FAILED_CONFUSED; + + if (caster->GetUnitFlags() & UNIT_FLAG_FLEEING) + return SPELL_FAILED_FLEEING; + + return SPELL_CAST_OK; + } + + void Register() override + { + OnCheckCast += SpellCheckCastFn(spell_pal_hand_of_protection::CheckCast); + } +}; + void AddSC_paladin_spell_scripts() { RegisterSpellAndAuraScriptPair(spell_pal_seal_of_command, spell_pal_seal_of_command_aura); @@ -1178,4 +1208,5 @@ void AddSC_paladin_spell_scripts() RegisterSpellScript(spell_pal_righteous_defense); RegisterSpellScript(spell_pal_seal_of_righteousness); RegisterSpellScript(spell_pal_seal_of_vengeance); + RegisterSpellScript(spell_pal_hand_of_protection); } From 3f527c54e35d48aa962c3ef3054687c754be1050 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 May 2025 17:39:49 +0000 Subject: [PATCH 08/26] chore(DB): import pending files Referenced commit(s): 60296dd934e740a86ba139f250defe3ea9c5ec0b --- .../bop-ally.sql => db_world/2025_05_10_02.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/bop-ally.sql => db_world/2025_05_10_02.sql} (79%) diff --git a/data/sql/updates/pending_db_world/bop-ally.sql b/data/sql/updates/db_world/2025_05_10_02.sql similarity index 79% rename from data/sql/updates/pending_db_world/bop-ally.sql rename to data/sql/updates/db_world/2025_05_10_02.sql index 55ef4c95a..cd3393e55 100644 --- a/data/sql/updates/pending_db_world/bop-ally.sql +++ b/data/sql/updates/db_world/2025_05_10_02.sql @@ -1,3 +1,4 @@ +-- DB update 2025_05_10_01 -> 2025_05_10_02 DELETE FROM `spell_script_names` WHERE `spell_id` = -1022; INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (-1022, 'spell_pal_hand_of_protection'); From 83adff44e41ae57fb2f86d2b913f359a7da3e2b8 Mon Sep 17 00:00:00 2001 From: Tereneckla Date: Sat, 10 May 2025 19:51:30 +0200 Subject: [PATCH 09/26] fix(Spells/Paladin) remove custom cooldown and procFlags from Judgement of Wisdom/Light (#22018) --- .../updates/pending_db_world/rev_1745955461043147883.sql | 2 ++ src/server/game/Entities/Unit/Unit.cpp | 6 ++---- 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1745955461043147883.sql diff --git a/data/sql/updates/pending_db_world/rev_1745955461043147883.sql b/data/sql/updates/pending_db_world/rev_1745955461043147883.sql new file mode 100644 index 000000000..342aa32ed --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1745955461043147883.sql @@ -0,0 +1,2 @@ +-- +UPDATE `spell_proc_event` SET `procFlags` = 0 WHERE `entry` IN (20186, 20185); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index bd4c9252a..c0bb9e8db 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -7826,7 +7826,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere // Judgement of Light case 20185: { - if (!victim || !victim->IsAlive() || victim->HasSpellCooldown(20267)) + if (!victim || !victim->IsAlive()) return false; auto* caster = triggeredByAura->GetBase()->GetCaster(); @@ -7836,13 +7836,12 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere // 2% of base health basepoints0 = int32(victim->CountPctFromMaxHealth(2)); victim->CastCustomSpell(victim, 20267, &basepoints0, 0, 0, true, 0, triggeredByAura); - victim->AddSpellCooldown(20267, 0, 4 * IN_MILLISECONDS); return true; } // Judgement of Wisdom case 20186: { - if (!victim || !victim->IsAlive() || !victim->HasActivePowerType(POWER_MANA) || victim->HasSpellCooldown(20268)) + if (!victim || !victim->IsAlive() || !victim->HasActivePowerType(POWER_MANA)) return false; auto* caster = triggeredByAura->GetBase()->GetCaster(); @@ -7852,7 +7851,6 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere // 2% of base mana basepoints0 = int32(CalculatePct(victim->GetCreateMana(), 2)); victim->CastCustomSpell(victim, 20268, &basepoints0, nullptr, nullptr, true, 0, triggeredByAura); - victim->AddSpellCooldown(20268, 0, 4 * IN_MILLISECONDS); return true; } // Holy Power (Redemption Armor set) From 7df7f2610ec86da20637ff58dc7eb013291547bf Mon Sep 17 00:00:00 2001 From: Tereneckla Date: Sat, 10 May 2025 19:52:06 +0200 Subject: [PATCH 10/26] fix(Core/Spells) reimplement SPELL_ATTR3_CAN_PROC_FROM_PROCS (#22072) --- src/server/game/Entities/Unit/Unit.cpp | 14 +++++--------- src/server/game/Spells/SpellInfoCorrections.cpp | 6 ------ 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index c0bb9e8db..7085f0b5b 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -16232,10 +16232,6 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u continue; } - // Triggered spells not triggering additional spells - //bool triggered = !spellProto->HasAttribute(SPELL_ATTR3_CAN_PROC_FROM_PROCS) ? - // (procExtra & PROC_EX_INTERNAL_TRIGGERED && !(procFlag & PROC_FLAG_DONE_TRAP_ACTIVATION)) : false; - bool hasTriggeredProc = false; for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) { @@ -17480,11 +17476,11 @@ bool Unit::IsTriggeredAtSpellProcEvent(Unit* victim, Aura* aura, WeaponAttackTyp return false; // Additional checks for triggered spells (ignore trap casts) - //if (procExtra & PROC_EX_INTERNAL_TRIGGERED && !(procFlag & PROC_FLAG_DONE_TRAP_ACTIVATION)) - //{ - // if (!spellProto->HasAttribute(SPELL_ATTR3_CAN_PROC_TRIGGERED)) - // return false; - //} + if (eventInfo.GetHitMask() & PROC_EX_INTERNAL_TRIGGERED && !(EventProcFlag & PROC_FLAG_DONE_TRAP_ACTIVATION)) + { + if (!spellProto->HasAttribute(SPELL_ATTR3_CAN_PROC_FROM_PROCS)) + return false; + } // Xinef: additional check for player auras - only player spells can trigger player proc auras // Xinef: skip victim auras diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index b59d4e942..3c3c89609 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4903,12 +4903,6 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->AttributesEx7 |= SPELL_ATTR7_TREAT_AS_NPC_AOE; }); - // Heal (Crystal Spire of Karabor) - ApplySpellFix({ 40972 }, [](SpellInfo* spellInfo) - { - spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS; - }); - // Torch (Death Knights near the Chapel) ApplySpellFix({ 52953 }, [](SpellInfo* spellInfo) { From ed69f9b2ea8702d5161178227c75ab6405dc2828 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 May 2025 17:52:33 +0000 Subject: [PATCH 11/26] chore(DB): import pending files Referenced commit(s): 83adff44e41ae57fb2f86d2b913f359a7da3e2b8 --- .../rev_1745955461043147883.sql => db_world/2025_05_10_03.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1745955461043147883.sql => db_world/2025_05_10_03.sql} (65%) diff --git a/data/sql/updates/pending_db_world/rev_1745955461043147883.sql b/data/sql/updates/db_world/2025_05_10_03.sql similarity index 65% rename from data/sql/updates/pending_db_world/rev_1745955461043147883.sql rename to data/sql/updates/db_world/2025_05_10_03.sql index 342aa32ed..1a1c9ec8b 100644 --- a/data/sql/updates/pending_db_world/rev_1745955461043147883.sql +++ b/data/sql/updates/db_world/2025_05_10_03.sql @@ -1,2 +1,3 @@ +-- DB update 2025_05_10_02 -> 2025_05_10_03 -- UPDATE `spell_proc_event` SET `procFlags` = 0 WHERE `entry` IN (20186, 20185); From f721682d7e0766c2df6cc443559e2a18357434a5 Mon Sep 17 00:00:00 2001 From: Brian Date: Sat, 10 May 2025 20:10:04 +0200 Subject: [PATCH 12/26] fix(DB/Commands) Corrected syntax for "help server exit" and "help reload config". (#22100) Trinitycore references changes to azerothcore for command "help reload config" and help server exit --- data/sql/updates/pending_db_world/rev_1746892458024076300.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1746892458024076300.sql diff --git a/data/sql/updates/pending_db_world/rev_1746892458024076300.sql b/data/sql/updates/pending_db_world/rev_1746892458024076300.sql new file mode 100644 index 000000000..cad05c1eb --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1746892458024076300.sql @@ -0,0 +1,2 @@ +UPDATE `command` SET `help` = 'Syntax: .reload config\r\n\r\nReload config settings (by default stored in worldserver.conf). Not all settings can be change at reload: some new setting values will be ignored until restart, some values will applied with delay or only to new objects/maps, some values will explicitly rejected to change at reload.' WHERE `name` = 'reload config'; +UPDATE `command` SET `help` = 'Syntax: .server exit\r\n\r\nTerminate AzerothCore NOW. Exit code 0.' WHERE `name` = 'server exit'; From bd3f4d022858a5d9248b375bc4ea354962559afd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 May 2025 18:11:04 +0000 Subject: [PATCH 13/26] chore(DB): import pending files Referenced commit(s): f721682d7e0766c2df6cc443559e2a18357434a5 --- .../rev_1746892458024076300.sql => db_world/2025_05_10_04.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1746892458024076300.sql => db_world/2025_05_10_04.sql} (92%) diff --git a/data/sql/updates/pending_db_world/rev_1746892458024076300.sql b/data/sql/updates/db_world/2025_05_10_04.sql similarity index 92% rename from data/sql/updates/pending_db_world/rev_1746892458024076300.sql rename to data/sql/updates/db_world/2025_05_10_04.sql index cad05c1eb..15f3a7afc 100644 --- a/data/sql/updates/pending_db_world/rev_1746892458024076300.sql +++ b/data/sql/updates/db_world/2025_05_10_04.sql @@ -1,2 +1,3 @@ +-- DB update 2025_05_10_03 -> 2025_05_10_04 UPDATE `command` SET `help` = 'Syntax: .reload config\r\n\r\nReload config settings (by default stored in worldserver.conf). Not all settings can be change at reload: some new setting values will be ignored until restart, some values will applied with delay or only to new objects/maps, some values will explicitly rejected to change at reload.' WHERE `name` = 'reload config'; UPDATE `command` SET `help` = 'Syntax: .server exit\r\n\r\nTerminate AzerothCore NOW. Exit code 0.' WHERE `name` = 'server exit'; From 4dfc44a69bfc3cbecb9226a3e8b737a699d2e73e Mon Sep 17 00:00:00 2001 From: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> Date: Sat, 10 May 2025 15:33:48 -0400 Subject: [PATCH 14/26] fix(Scripts): Use distinct sound entry for BRD L70ETC Music Doodad. (#22029) --- src/server/scripts/World/go_scripts.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp index bc6e9acb4..c487f7d85 100644 --- a/src/server/scripts/World/go_scripts.cpp +++ b/src/server/scripts/World/go_scripts.cpp @@ -458,7 +458,8 @@ public: ####*/ enum L70ETCMusic { - MUSIC_L70_ETC_MUSIC = 11803 + MUSIC_L70_ETC_MUSIC = 11803, + MUSIC_L70_ETC_MUSIC_LOUD = 12868 }; enum L70ETCMusicEvents @@ -486,7 +487,10 @@ public: switch (eventId) { case EVENT_ETC_START_MUSIC: - me->PlayDirectMusic(MUSIC_L70_ETC_MUSIC); + if (me->GetMapId() == MAP_BLACKROCK_DEPTHS) + me->PlayDirectMusic(MUSIC_L70_ETC_MUSIC_LOUD); + else + me->PlayDirectMusic(MUSIC_L70_ETC_MUSIC); _events.ScheduleEvent(EVENT_ETC_START_MUSIC, 1600); // Every 1.6 seconds SMSG_PLAY_MUSIC packet (PlayDirectMusic) is pushed to the client (sniffed value) break; default: From 78a5a5c4294004cf427e23733ff77ef07658e094 Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Mon, 12 May 2025 02:26:18 +0200 Subject: [PATCH 15/26] fix(DB/Creature): Add Taunt Immunity to Kil'Jaeden. (#22114) --- data/sql/updates/pending_db_world/Kil'Jaeden_taunt_imm.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 data/sql/updates/pending_db_world/Kil'Jaeden_taunt_imm.sql diff --git a/data/sql/updates/pending_db_world/Kil'Jaeden_taunt_imm.sql b/data/sql/updates/pending_db_world/Kil'Jaeden_taunt_imm.sql new file mode 100644 index 000000000..2977f3fc3 --- /dev/null +++ b/data/sql/updates/pending_db_world/Kil'Jaeden_taunt_imm.sql @@ -0,0 +1,3 @@ + +-- Add No_Taunt flag +UPDATE `creature_template` SET `flags_extra` = `flags_extra` |256 WHERE (`entry` = 25315); From 8b4b37fdbbb0a8a7d2c93e1189936a67eeb13c54 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 12 May 2025 00:27:24 +0000 Subject: [PATCH 16/26] chore(DB): import pending files Referenced commit(s): 78a5a5c4294004cf427e23733ff77ef07658e094 --- .../Kil'Jaeden_taunt_imm.sql => db_world/2025_05_12_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/Kil'Jaeden_taunt_imm.sql => db_world/2025_05_12_00.sql} (71%) diff --git a/data/sql/updates/pending_db_world/Kil'Jaeden_taunt_imm.sql b/data/sql/updates/db_world/2025_05_12_00.sql similarity index 71% rename from data/sql/updates/pending_db_world/Kil'Jaeden_taunt_imm.sql rename to data/sql/updates/db_world/2025_05_12_00.sql index 2977f3fc3..a3a3327c6 100644 --- a/data/sql/updates/pending_db_world/Kil'Jaeden_taunt_imm.sql +++ b/data/sql/updates/db_world/2025_05_12_00.sql @@ -1,3 +1,4 @@ +-- DB update 2025_05_10_04 -> 2025_05_12_00 -- Add No_Taunt flag UPDATE `creature_template` SET `flags_extra` = `flags_extra` |256 WHERE (`entry` = 25315); From 4e2d6be2245332e823f010bfc4d09723e3e694d0 Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Mon, 12 May 2025 16:05:13 +0200 Subject: [PATCH 17/26] fix (Script/Sunwell Plateau) Edit Kil'Jaeden Darkness Timers. (#22115) --- .../EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index 732b890ed..3ce2f6025 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -290,7 +290,7 @@ struct boss_kiljaeden : public BossAI DoCastSelf(SPELL_FLAME_DART); }, 10s); - ScheduleTimedEvent(50s, [&] { + ScheduleTimedEvent(55s, [&] { Talk(EMOTE_KJ_DARKNESS); DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS); }, 45s); @@ -326,7 +326,7 @@ struct boss_kiljaeden : public BossAI ScheduleBasicAbilities(); }); - ScheduleTimedEvent(50s, [&] { + ScheduleTimedEvent(64s, [&] { me->RemoveAurasDueToSpell(SPELL_ARMAGEDDON_PERIODIC); Talk(EMOTE_KJ_DARKNESS); DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS); @@ -394,7 +394,7 @@ struct boss_kiljaeden : public BossAI ScheduleBasicAbilities(); - ScheduleTimedEvent(30s, [&] { + ScheduleTimedEvent(15s, [&] { me->RemoveAurasDueToSpell(SPELL_ARMAGEDDON_PERIODIC); Talk(EMOTE_KJ_DARKNESS); DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS); From 396fd687fa312c737f22d717fd16a0f3c595b372 Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Mon, 12 May 2025 18:02:58 +0200 Subject: [PATCH 18/26] fix(DB/Creature) Scarlet Crusaders don't hook invisible Eye of Acherus anymore (phase 2). (#22106) --- data/sql/updates/pending_db_world/CrusadersAI.sql | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 data/sql/updates/pending_db_world/CrusadersAI.sql diff --git a/data/sql/updates/pending_db_world/CrusadersAI.sql b/data/sql/updates/pending_db_world/CrusadersAI.sql new file mode 100644 index 000000000..23553f2d6 --- /dev/null +++ b/data/sql/updates/pending_db_world/CrusadersAI.sql @@ -0,0 +1,9 @@ + +-- Update comments and edit row 2. +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28529; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28529); +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`, `event_param6`, `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 +(28529, 0, 0, 0, 0, 0, 100, 0, 0, 0, 2000, 3000, 0, 0, 11, 6660, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Crusader - In Combat - Cast \'Shoot\''), +(28529, 0, 1, 0, 4, 0, 50, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Crusader - On Aggro - Say Line 0'), +(28529, 0, 2, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 205, 23, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Crusader - On Reset - Set combat distance to 23'); From 4c162ca40530f52863db81ae403b77e1746c5715 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 12 May 2025 16:04:02 +0000 Subject: [PATCH 19/26] chore(DB): import pending files Referenced commit(s): 396fd687fa312c737f22d717fd16a0f3c595b372 --- .../CrusadersAI.sql => db_world/2025_05_12_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/CrusadersAI.sql => db_world/2025_05_12_01.sql} (96%) diff --git a/data/sql/updates/pending_db_world/CrusadersAI.sql b/data/sql/updates/db_world/2025_05_12_01.sql similarity index 96% rename from data/sql/updates/pending_db_world/CrusadersAI.sql rename to data/sql/updates/db_world/2025_05_12_01.sql index 23553f2d6..961069481 100644 --- a/data/sql/updates/pending_db_world/CrusadersAI.sql +++ b/data/sql/updates/db_world/2025_05_12_01.sql @@ -1,3 +1,4 @@ +-- DB update 2025_05_12_00 -> 2025_05_12_01 -- Update comments and edit row 2. UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28529; From bf5a62ec2be489a35c10f9d3561fbcdfe2fc2d45 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Tue, 13 May 2025 03:58:03 -0300 Subject: [PATCH 20/26] =?UTF-8?q?fix(Scripts/SunwellPlateau):=20Fix=20flam?= =?UTF-8?q?e=20dart=20timers=20and=20cast=20in=20all=20ph=E2=80=A6=20(#221?= =?UTF-8?q?13)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SunwellPlateau/boss_kiljaeden.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index 3ce2f6025..ab5bf805f 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -286,9 +286,9 @@ struct boss_kiljaeden : public BossAI DoCastSelf(SPELL_SHADOW_SPIKE); }); - ScheduleTimedEvent(3s, [&] { + ScheduleTimedEvent(31s, [&] { DoCastSelf(SPELL_FLAME_DART); - }, 10s); + }, 20s); ScheduleTimedEvent(55s, [&] { Talk(EMOTE_KJ_DARKNESS); @@ -326,6 +326,10 @@ struct boss_kiljaeden : public BossAI ScheduleBasicAbilities(); }); + ScheduleTimedEvent(28s, [&] { + DoCastSelf(SPELL_FLAME_DART); + }, 20s); + ScheduleTimedEvent(64s, [&] { me->RemoveAurasDueToSpell(SPELL_ARMAGEDDON_PERIODIC); Talk(EMOTE_KJ_DARKNESS); @@ -394,6 +398,10 @@ struct boss_kiljaeden : public BossAI ScheduleBasicAbilities(); + ScheduleTimedEvent(16s, [&] { + DoCastSelf(SPELL_FLAME_DART); + }, 20s); + ScheduleTimedEvent(15s, [&] { me->RemoveAurasDueToSpell(SPELL_ARMAGEDDON_PERIODIC); Talk(EMOTE_KJ_DARKNESS); From 2883160086e3e3ff92d04d6d20d0c27d218878fe Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Tue, 13 May 2025 21:03:42 +0200 Subject: [PATCH 21/26] =?UTF-8?q?fixup!=20refactor(Core/World):=20Move=20v?= =?UTF-8?q?arious=20worldstate=20related=20function=E2=80=A6=20(#22119)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/World/World.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 5a3871846..edccd7b66 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1755,7 +1755,6 @@ void World::SetInitialWorldSettings() LOG_INFO("server.loading", "Loading WorldStates..."); // must be loaded before battleground, outdoor PvP and conditions sWorldState->LoadWorldStates(); - sWorldState->Load(); LOG_INFO("server.loading", "Loading Conditions..."); sConditionMgr->LoadConditions(); @@ -1880,6 +1879,9 @@ void World::SetInitialWorldSettings() uint32 nextGameEvent = sGameEventMgr->StartSystem(); _timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); //depend on next event + LOG_INFO("server.loading", "Loading WorldState..."); + sWorldState->Load(); // must be called after loading game events + // Delete all characters which have been deleted X days before Player::DeleteOldCharacters(); From 7ae3f763582ee50954e00803c82ecf94d1df13a1 Mon Sep 17 00:00:00 2001 From: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> Date: Tue, 13 May 2025 17:30:32 -0400 Subject: [PATCH 22/26] fix(DB/Creature): Correct Kil'jaeden's model info. (#22120) --- data/sql/updates/pending_db_world/kj-model-inf.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 data/sql/updates/pending_db_world/kj-model-inf.sql diff --git a/data/sql/updates/pending_db_world/kj-model-inf.sql b/data/sql/updates/pending_db_world/kj-model-inf.sql new file mode 100644 index 000000000..88ceb2640 --- /dev/null +++ b/data/sql/updates/pending_db_world/kj-model-inf.sql @@ -0,0 +1 @@ +UPDATE `creature_model_info` SET `BoundingRadius` = 6, `CombatReach` = 15 WHERE `DisplayID` = 23200; From 6de87af4d25c90679971153f8c6bff201dadffe9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 13 May 2025 21:31:32 +0000 Subject: [PATCH 23/26] chore(DB): import pending files Referenced commit(s): 7ae3f763582ee50954e00803c82ecf94d1df13a1 --- .../kj-model-inf.sql => db_world/2025_05_13_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/kj-model-inf.sql => db_world/2025_05_13_00.sql} (69%) diff --git a/data/sql/updates/pending_db_world/kj-model-inf.sql b/data/sql/updates/db_world/2025_05_13_00.sql similarity index 69% rename from data/sql/updates/pending_db_world/kj-model-inf.sql rename to data/sql/updates/db_world/2025_05_13_00.sql index 88ceb2640..7014e4045 100644 --- a/data/sql/updates/pending_db_world/kj-model-inf.sql +++ b/data/sql/updates/db_world/2025_05_13_00.sql @@ -1 +1,2 @@ +-- DB update 2025_05_12_01 -> 2025_05_13_00 UPDATE `creature_model_info` SET `BoundingRadius` = 6, `CombatReach` = 15 WHERE `DisplayID` = 23200; From 3e20d6edf8b15c64e70c78cafd0e403fb18a53ab Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Thu, 15 May 2025 00:29:43 +0200 Subject: [PATCH 24/26] feat(apps/extractor): add extractor for non windows (#22123) --- apps/extractor/extractor.sh | 85 ++++++++++++++++++++++++++++++++++ apps/extractor/extractor_es.sh | 85 ++++++++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100755 apps/extractor/extractor.sh create mode 100755 apps/extractor/extractor_es.sh diff --git a/apps/extractor/extractor.sh b/apps/extractor/extractor.sh new file mode 100755 index 000000000..553a3d5d1 --- /dev/null +++ b/apps/extractor/extractor.sh @@ -0,0 +1,85 @@ +#!/bin/bash +function Base { + echo "Extract Base" + rm -rf dbc maps Cameras + ./map_extractor + Menu +} + +function VMaps { + echo "Extract VMaps" + mkdir -p Buildings vmaps + rm -rf Buildings/* vmaps/* + ./vmap4_extractor + ./vmap4_assembler Buildings vmaps + rmdir -rf Buildings + Menu +} + +function MMaps { + echo "This may take a few hours to complete. Please be patient." + mkdir -p mmaps + rm -rf mmaps/* + ./mmaps_generator + Menu +} + +function All { + echo "This may take a few hours to complete. Please be patient." + rm -rf dbc maps Cameras + mkdir -p Buildings vmaps mmaps + rm -rf Buildings/* vmaps/* mmaps/* + ./map_extractor + ./vmap4_extractor + ./vmap4_assembler Buildings vmaps + rmdir -rf Buildings + ./mmaps_generator + Menu +} + +function Menu { +echo "" +echo "..............................................." +echo "AzerothCore dbc, maps, vmaps, mmaps extractor" +echo "..............................................." +echo "PRESS 1, 2, 3 OR 4 to select your task, or 5 to EXIT." +echo "..............................................." +echo "" +echo "WARNING! when extracting the vmaps extractor will" +echo "output the text below, it's intended and not an error:" +echo ".........................................." +echo "Extracting World\Wmo\Band\Final_Stage.wmo" +echo "No such file." +echo "Couldn't open RootWmo!!!" +echo "Done!" +echo " .........................................." +echo "" +echo "Press 1, 2, 3 or 4 to start extracting or 5 to exit." +echo "1 - Extract base files (NEEDED) and cameras." +echo "2 - Extract vmaps (needs maps to be extracted before you run this) (OPTIONAL, highly recommended)" +echo "3 - Extract mmaps (needs vmaps to be extracted before you run this, may take hours) (OPTIONAL, highly recommended)" +echo "4 - Extract all (may take hours)" +echo "5 - EXIT" +echo "" + +read -rp "Type 1, 2, 3, 4 or 5 then press ENTER: " choice + +case $choice in + 1) Base ;; + 2) VMaps ;; + 3) MMaps ;; + 4) All ;; + 5) exit 0;; + *) echo "Invalid choice."; read -rp "Type 1, 2, 3, 4 or 5 then press ENTER: " choice ;; +esac +} + +if [ -d "./Data" ] && [ -f "map_extractor" ] && [ -f "vmap4_extractor" ] && [ -f "vmap4_assembler" ] && [ -f "mmaps_generator" ]; then + echo "The required files and folder exist in the current directory." + chmod +x map_extractor vmap4_extractor vmap4_assembler mmaps_generator + Menu +else + echo "One or more of the required files or folder is missing from the current directory." + echo "Place map_extractor vmap4_extractor vmap4_assembler mmaps_generator" + echo "In your WoW folder with WoW.exe" +fi diff --git a/apps/extractor/extractor_es.sh b/apps/extractor/extractor_es.sh new file mode 100755 index 000000000..c352cd2e5 --- /dev/null +++ b/apps/extractor/extractor_es.sh @@ -0,0 +1,85 @@ +#!/bin/bash +function Base { + echo "Extrayendo archivos base" + rm -rf dbc maps Cameras + ./map_extractor + Menu +} + +function VMaps { + echo "Extrayendo VMaps" + mkdir -p Buildings vmaps + rm -rf Buildings/* vmaps/* + ./vmap4_extractor + ./vmap4_assembler Buildings vmaps + rmdir -rf Buildings + Menu +} + +function MMaps { + echo "Esto puede tardar unas horas en completarse. Por favor, tenga paciencia." + mkdir -p mmaps + rm -rf mmaps/* + ./mmaps_generator + Menu +} + +function All { + echo "Esto puede tardar varias horas en completarse. Por favor, tenga paciencia." + rm -rf dbc maps Cameras + mkdir -p Buildings vmaps mmaps + rm -rf Buildings/* vmaps/* mmaps/* + ./map_extractor + ./vmap4_extractor + ./vmap4_assembler Buildings vmaps + rmdir -rf Buildings + ./mmaps_generator + Menu +} + +function Menu { +echo "" +echo "..............................................." +echo "Extractor de dbc, maps, vmaps, mmaps de AzerothCore" +echo "..............................................." +echo "PRESIONE 1, 2, 3 O 4 para seleccionar su tarea, o 5 para SALIR." +echo "..............................................." +echo "" +echo "ADVERTENCIA: al extraer los vmaps del extractor" +echo "la salida del texto de abajo, es intencional y no un error:" +echo ".........................................." +echo "Extracting World\Wmo\Band\Final_Stage.wmo" +echo "No such file." +echo "Couldn't open RootWmo!!!" +echo "Done!" +echo ".........................................." +echo "" +echo "Presione 1, 2, 3 o 4 para iniciar la extracción o 5 para salir." +echo "1 - Extraer los archivos base (NECESARIOS) y las cámaras." +echo "2 - Extraer vmaps (necesita que los mapas se extraigan antes de ejecutar esto) (OPCIONAL, muy recomendable)" +echo "3 - Extraer mmaps (necesita que los vmaps se extraigan antes de ejecutar esto, puede llevar horas) (OPCIONAL, muy recomendable)" +echo "4 - Extraer todo (puede llevar varias horas)" +echo "5 - SALIR" +echo "" + +read -rp "Escriba 1, 2, 3, 4 o 5 y pulse ENTER: " choice + +case $choice in + 1) Base ;; + 2) VMaps ;; + 3) MMaps ;; + 4) All ;; + 5) exit 0;; + *) echo "Opción inválida."; read -rp "Escriba 1, 2, 3, 4 o 5 y presione ENTER: " choice ;; +esac +} + +if [ -d "./Data" ] && [ -f "map_extractor" ] && [ -f "vmap4_extractor" ] && [ -f "vmap4_assembler" ] && [ -f "mmaps_generator" ]; then + echo "Los archivos y carpetas requeridos existen en el directorio actual." + chmod +x map_extractor vmap4_extractor vmap4_assembler mmaps_generator + Menu +else + echo "Uno o más archivos o carpetas requeridos no se encuentran en el directorio actual." + echo "Coloque map_extractor vmap4_extractor vmap4_assembler mmaps_generator" + echo "en su directorio de WoW junto con WoW.exe" +fi From f1269a6fffd3c3da5299e0e86ae3a2403ee82886 Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Thu, 15 May 2025 12:10:11 +0200 Subject: [PATCH 25/26] fix(Scripts/SunwellPlateau): Spell Fury spellsteal resets stacks and is no longer consumes on dot ticks (#22125) --- .../rev_1747255986267456043.sql | 10 ++++++++++ .../SunwellPlateau/instance_sunwell_plateau.cpp | 17 +++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1747255986267456043.sql diff --git a/data/sql/updates/pending_db_world/rev_1747255986267456043.sql b/data/sql/updates/pending_db_world/rev_1747255986267456043.sql new file mode 100644 index 000000000..035eb5962 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1747255986267456043.sql @@ -0,0 +1,10 @@ +-- +DELETE FROM `spell_script_names` WHERE `spell_id` = 46102; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(46102, 'spell_spell_fury_aura'); + +-- Remove 'Deal periodic damage' +SET @procFlags = (0x4000 | 0x10000); +DELETE FROM `spell_proc_event` WHERE `entry` = 46102; +INSERT INTO `spell_proc_event` (`entry`, `procFlags`) VALUES +(46102, @procFlags); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp index 9b6d4d19c..f43f8e79a 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp @@ -336,6 +336,22 @@ private: TaskScheduler scheduler; }; +class spell_spell_fury_aura : public AuraScript +{ + PrepareAuraScript(spell_spell_fury_aura); + + void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + if (GetUnitOwner()->ToPlayer()) + ModStackAmount(5); + } + + void Register() override + { + OnEffectApply += AuraEffectApplyFn(spell_spell_fury_aura::OnApply, EFFECT_0, SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK, AURA_EFFECT_HANDLE_REAL); + } +}; + void AddSC_instance_sunwell_plateau() { new instance_sunwell_plateau(); @@ -345,4 +361,5 @@ void AddSC_instance_sunwell_plateau() RegisterSpellScriptWithArgs(spell_sunwell_teleport, "spell_teleport_to_apex_point", SPELL_TELEPORT_TO_APEX_POINT); RegisterSpellScriptWithArgs(spell_sunwell_teleport, "spell_teleport_to_witchs_sanctum", SPELL_TELEPORT_TO_WITCHS_SANCTUM); RegisterSpellScriptWithArgs(spell_sunwell_teleport, "spell_teleport_to_sunwell_plateau", SPELL_TELEPORT_TO_SUNWELL_PLATEAU); + RegisterSpellScript(spell_spell_fury_aura); } From 06e78fa8f2555cc2f2c8cbc6b65ee45bbb08bd69 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 15 May 2025 10:11:13 +0000 Subject: [PATCH 26/26] chore(DB): import pending files Referenced commit(s): f1269a6fffd3c3da5299e0e86ae3a2403ee82886 --- .../rev_1747255986267456043.sql => db_world/2025_05_15_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1747255986267456043.sql => db_world/2025_05_15_00.sql} (89%) diff --git a/data/sql/updates/pending_db_world/rev_1747255986267456043.sql b/data/sql/updates/db_world/2025_05_15_00.sql similarity index 89% rename from data/sql/updates/pending_db_world/rev_1747255986267456043.sql rename to data/sql/updates/db_world/2025_05_15_00.sql index 035eb5962..8900fc590 100644 --- a/data/sql/updates/pending_db_world/rev_1747255986267456043.sql +++ b/data/sql/updates/db_world/2025_05_15_00.sql @@ -1,3 +1,4 @@ +-- DB update 2025_05_13_00 -> 2025_05_15_00 -- DELETE FROM `spell_script_names` WHERE `spell_id` = 46102; INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES