From 78fbc77be2d428e3e47cb65c240fec2dab6cefbf Mon Sep 17 00:00:00 2001 From: Ryan Turner Date: Thu, 10 Apr 2025 09:08:50 +0100 Subject: [PATCH 01/46] fix (db/Conditions) - Kael'thas Sunstrider's Heroic loot ref will drop the correct recipes to their respective proffesion. (#21884) --- data/sql/updates/pending_db_world/rev_1744203507462519600.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1744203507462519600.sql diff --git a/data/sql/updates/pending_db_world/rev_1744203507462519600.sql b/data/sql/updates/pending_db_world/rev_1744203507462519600.sql new file mode 100644 index 000000000..5b1ed2b65 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1744203507462519600.sql @@ -0,0 +1,2 @@ +-- Changes the required skill from Blacksmithing (164) to Alchemy (171) to drop for the Items Recipe: Elixir of Empowerment (35294) and Recipe: Haste Potion (35295) for the LootReference (35008) +UPDATE `conditions` SET `ConditionValue1` = 171 WHERE `SourceTypeOrReferenceId` = 10 AND `SourceGroup` = 35008 AND `ConditionTypeOrReference` = 7 AND `ConditionValue1` = 164 AND `SourceEntry` = 35294 OR `SourceEntry` = 35295; From 7cc26e44c1d703589f24ef46dbb3c06faf180e74 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 10 Apr 2025 08:09:51 +0000 Subject: [PATCH 02/46] chore(DB): import pending files Referenced commit(s): 78fbc77be2d428e3e47cb65c240fec2dab6cefbf --- .../rev_1744203507462519600.sql => db_world/2025_04_10_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1744203507462519600.sql => db_world/2025_04_10_00.sql} (90%) diff --git a/data/sql/updates/pending_db_world/rev_1744203507462519600.sql b/data/sql/updates/db_world/2025_04_10_00.sql similarity index 90% rename from data/sql/updates/pending_db_world/rev_1744203507462519600.sql rename to data/sql/updates/db_world/2025_04_10_00.sql index 5b1ed2b65..94f39b322 100644 --- a/data/sql/updates/pending_db_world/rev_1744203507462519600.sql +++ b/data/sql/updates/db_world/2025_04_10_00.sql @@ -1,2 +1,3 @@ +-- DB update 2025_04_09_00 -> 2025_04_10_00 -- Changes the required skill from Blacksmithing (164) to Alchemy (171) to drop for the Items Recipe: Elixir of Empowerment (35294) and Recipe: Haste Potion (35295) for the LootReference (35008) UPDATE `conditions` SET `ConditionValue1` = 171 WHERE `SourceTypeOrReferenceId` = 10 AND `SourceGroup` = 35008 AND `ConditionTypeOrReference` = 7 AND `ConditionValue1` = 164 AND `SourceEntry` = 35294 OR `SourceEntry` = 35295; From 52aa16d3cf92d9fc5b29da29579addc1b7531412 Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Thu, 10 Apr 2025 23:51:16 +0200 Subject: [PATCH 03/46] fix(DB/Creature): Hand of the Deceiver is no longer immune to silence and stun. (#21890) --- data/sql/updates/pending_db_world/Hand_of_Deceiver_IM.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 data/sql/updates/pending_db_world/Hand_of_Deceiver_IM.sql diff --git a/data/sql/updates/pending_db_world/Hand_of_Deceiver_IM.sql b/data/sql/updates/pending_db_world/Hand_of_Deceiver_IM.sql new file mode 100644 index 000000000..731b80b68 --- /dev/null +++ b/data/sql/updates/pending_db_world/Hand_of_Deceiver_IM.sql @@ -0,0 +1,3 @@ + +-- Remove Stun and Silence immunities +UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask`& ~ (256|2048) WHERE (`entry` = 25588); From 3f08610f84cfd7a20d38bc34f11816449684bc89 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 10 Apr 2025 21:52:18 +0000 Subject: [PATCH 04/46] chore(DB): import pending files Referenced commit(s): 52aa16d3cf92d9fc5b29da29579addc1b7531412 --- .../Hand_of_Deceiver_IM.sql => db_world/2025_04_10_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/Hand_of_Deceiver_IM.sql => db_world/2025_04_10_01.sql} (78%) diff --git a/data/sql/updates/pending_db_world/Hand_of_Deceiver_IM.sql b/data/sql/updates/db_world/2025_04_10_01.sql similarity index 78% rename from data/sql/updates/pending_db_world/Hand_of_Deceiver_IM.sql rename to data/sql/updates/db_world/2025_04_10_01.sql index 731b80b68..aeaacfbd6 100644 --- a/data/sql/updates/pending_db_world/Hand_of_Deceiver_IM.sql +++ b/data/sql/updates/db_world/2025_04_10_01.sql @@ -1,3 +1,4 @@ +-- DB update 2025_04_10_00 -> 2025_04_10_01 -- Remove Stun and Silence immunities UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask`& ~ (256|2048) WHERE (`entry` = 25588); From 12693ff3f225f1cf593481676a313985c8a55a5b Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Fri, 11 Apr 2025 13:45:28 -0500 Subject: [PATCH 05/46] fix(Scripts/SunwellPlateau): Correct Singularity behavior in Entropius encounter (#21892) --- .../SunwellPlateau/boss_muru.cpp | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 662eae2ee..11e9aefb8 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -48,7 +48,7 @@ enum Spells //Black Hole Spells SPELL_BLACK_HOLE_SUMMON_VISUAL = 46242, - SPELL_BLACK_HOLE_SUMMON_VISUAL2 = 46248, + SPELL_BLACK_HOLE_SUMMON_VISUAL2 = 46247, SPELL_BLACK_HOLE_VISUAL2 = 46235, SPELL_BLACK_HOLE_PASSIVE = 46228, SPELL_BLACK_HOLE_EFFECT = 46230 @@ -169,6 +169,7 @@ struct boss_entropius : public ScriptedAI if (!UpdateVictim()) return; + DoMeleeAttackIfReady(); scheduler.Update(diff); } }; @@ -180,26 +181,35 @@ struct npc_singularity : public NullCreatureAI void Reset() override { me->DespawnOrUnsummon(18000); - DoCastSelf(SPELL_BLACK_HOLE_SUMMON_VISUAL, true); - DoCastSelf(SPELL_BLACK_HOLE_SUMMON_VISUAL2, true); + + me->m_Events.AddEventAtOffset([&] { + DoCastSelf(SPELL_BLACK_HOLE_SUMMON_VISUAL, true); + }, 2s); + + me->m_Events.AddEventAtOffset([&] { + DoCastSelf(SPELL_BLACK_HOLE_SUMMON_VISUAL2, true); + }, 4s); + + me->m_Events.AddEventAtOffset([&] { + DoCastSelf(SPELL_BLACK_HOLE_SUMMON_VISUAL, true); + }, 6s); + + me->m_Events.AddEventAtOffset([&] { + DoCastSelf(SPELL_BLACK_HOLE_VISUAL2, true); + DoCastSelf(SPELL_BLACK_HOLE_PASSIVE, true); + }, 8s); me->m_Events.AddEventAtOffset([&] { me->KillSelf(); }, 17s); - me->m_Events.AddEventAtOffset([&] { - me->RemoveAurasDueToSpell(SPELL_BLACK_HOLE_SUMMON_VISUAL2); - DoCastSelf(SPELL_BLACK_HOLE_VISUAL2, true); - DoCastSelf(SPELL_BLACK_HOLE_PASSIVE, true); - }, 3500ms); - - scheduler.Schedule(5s, [this](TaskContext context) + scheduler.Schedule(8s, [this](TaskContext context) { auto const& playerList = me->GetMap()->GetPlayers(); for (auto const& playerRef : playerList) { if (Player* player = playerRef.GetSource()) - if (me->GetDistance2d(player) < 15.0f && player->GetPositionZ() < 72.0f && player->IsAlive() && !player->HasAura(SPELL_BLACK_HOLE_EFFECT)) + if (me->IsWithinLOSInMap(player) && player->IsAlive() && !player->HasAura(SPELL_BLACK_HOLE_EFFECT)) { me->GetMotionMaster()->MovePoint(0, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), false, true); context.Repeat(); From 530bc7349c93387649ac09f32ee2b08c65af8f46 Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Fri, 11 Apr 2025 20:45:59 +0200 Subject: [PATCH 06/46] fix(DB/SpellCustomAttr): make Spell Fury spellstealable (#21897) --- data/sql/updates/pending_db_world/rev_1744392732263733650.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1744392732263733650.sql diff --git a/data/sql/updates/pending_db_world/rev_1744392732263733650.sql b/data/sql/updates/pending_db_world/rev_1744392732263733650.sql new file mode 100644 index 000000000..073919fab --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1744392732263733650.sql @@ -0,0 +1,4 @@ +-- +-- set Spell Fury Effect 2 (SPELL_AURA_MOD_ROOT) as Positive (SPELL_ATTR0_CU_POSITIVE_EFF2) +DELETE FROM `spell_custom_attr` WHERE `spell_id` = 46102; +INSERT INTO `spell_custom_attr` (`spell_id`, `attributes`) VALUES(46102, 134217728); From d67daf8e534cdc354e2cdd07fef9b4e16f1f6b19 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 11 Apr 2025 18:46:31 +0000 Subject: [PATCH 07/46] chore(DB): import pending files Referenced commit(s): 12693ff3f225f1cf593481676a313985c8a55a5b --- .../rev_1744392732263733650.sql => db_world/2025_04_11_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1744392732263733650.sql => db_world/2025_04_11_00.sql} (84%) diff --git a/data/sql/updates/pending_db_world/rev_1744392732263733650.sql b/data/sql/updates/db_world/2025_04_11_00.sql similarity index 84% rename from data/sql/updates/pending_db_world/rev_1744392732263733650.sql rename to data/sql/updates/db_world/2025_04_11_00.sql index 073919fab..a84974ca6 100644 --- a/data/sql/updates/pending_db_world/rev_1744392732263733650.sql +++ b/data/sql/updates/db_world/2025_04_11_00.sql @@ -1,3 +1,4 @@ +-- DB update 2025_04_10_01 -> 2025_04_11_00 -- -- set Spell Fury Effect 2 (SPELL_AURA_MOD_ROOT) as Positive (SPELL_ATTR0_CU_POSITIVE_EFF2) DELETE FROM `spell_custom_attr` WHERE `spell_id` = 46102; From bd83226d52b6cb6299d8974ccfcb033b4a928f1e Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Fri, 11 Apr 2025 21:03:49 +0200 Subject: [PATCH 08/46] fix(DB/Creature): Add Shadow Bolt Volley to Void Spawn's spells (#21898) --- .../updates/pending_db_world/rev_1744393940295043689.sql | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1744393940295043689.sql diff --git a/data/sql/updates/pending_db_world/rev_1744393940295043689.sql b/data/sql/updates/pending_db_world/rev_1744393940295043689.sql new file mode 100644 index 000000000..229eca119 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1744393940295043689.sql @@ -0,0 +1,6 @@ +-- +DELETE FROM `creature_template_spell` WHERE `CreatureID` = 25824; +INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES(25824, 3, 46082, 0); + +DELETE FROM `spell_cooldown_overrides` WHERE `Id` = 46082; +INSERT INTO `spell_cooldown_overrides` (`Id`, `RecoveryTime`, `CategoryRecoveryTime`, `StartRecoveryTime`, `StartRecoveryCategory`, `Comment`) VALUES(46082, 5000, 5000, 0, 0, 'Void Spawn - Shadow Bolt Volley'); From f2577cabf28f16605c9254a16ee3730a3b3ca71f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 11 Apr 2025 19:04:54 +0000 Subject: [PATCH 09/46] chore(DB): import pending files Referenced commit(s): bd83226d52b6cb6299d8974ccfcb033b4a928f1e --- .../rev_1744393940295043689.sql => db_world/2025_04_11_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1744393940295043689.sql => db_world/2025_04_11_01.sql} (91%) diff --git a/data/sql/updates/pending_db_world/rev_1744393940295043689.sql b/data/sql/updates/db_world/2025_04_11_01.sql similarity index 91% rename from data/sql/updates/pending_db_world/rev_1744393940295043689.sql rename to data/sql/updates/db_world/2025_04_11_01.sql index 229eca119..d5067ac42 100644 --- a/data/sql/updates/pending_db_world/rev_1744393940295043689.sql +++ b/data/sql/updates/db_world/2025_04_11_01.sql @@ -1,3 +1,4 @@ +-- DB update 2025_04_11_00 -> 2025_04_11_01 -- DELETE FROM `creature_template_spell` WHERE `CreatureID` = 25824; INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES(25824, 3, 46082, 0); From f903a73051a6f20d98af74c76bf79e77c01b617f Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Sat, 12 Apr 2025 14:22:04 +0200 Subject: [PATCH 10/46] fix(Script/SunwellPlateau): Kil'jaeden now has a more offy-like last phase. (#21907) --- .../SunwellPlateau/boss_kiljaeden.cpp | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index 0fbfb4b8c..66324b0cf 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -335,6 +335,19 @@ struct boss_kiljaeden : public BossAI ScheduleHealthCheckEvent(25, [&] { _phase = PHASE_SACRIFICE; + + me->m_Events.AddEventAtOffset([&] { + Talk(SAY_KJ_REFLECTION); + me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE); + me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE); + me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE); + me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE); + }, 1s); + + me->m_Events.AddEventAtOffset([&] { + DoCastSelf(SPELL_SHADOW_SPIKE); + }, 2s); + if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ)) { kalec->AI()->Talk(SAY_KALECGOS_FOCUS, 8s); @@ -371,15 +384,7 @@ struct boss_kiljaeden : public BossAI ScheduleBasicAbilities(); - me->m_Events.AddEventAtOffset([&] { - Talk(SAY_KJ_REFLECTION); - me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE); - me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE); - me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE); - me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE); - }, 1s); - - ScheduleTimedEvent(15s, [&] { + ScheduleTimedEvent(25s, [&] { Talk(EMOTE_KJ_DARKNESS); DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS); }, 25s); From 7a9a466f1be8e3b9c2b7c12525658ba2796ff713 Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Sat, 12 Apr 2025 07:49:13 -0500 Subject: [PATCH 11/46] fix(Scripts/SunwellPlateau): Set Brutallus corpse despawn timer to 3 minutes (#21896) --- .../EasternKingdoms/SunwellPlateau/boss_brutallus.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index 76e7804ef..a51a33f10 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -65,7 +65,10 @@ enum Misc struct boss_brutallus : public BossAI { - boss_brutallus(Creature* creature) : BossAI(creature, DATA_BRUTALLUS) { } + boss_brutallus(Creature* creature) : BossAI(creature, DATA_BRUTALLUS) + { + me->SetCorpseDelay(360); + } void Reset() override { From 329ba16e8af00efe35333027109cb16ddd1883dc Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Sat, 12 Apr 2025 16:03:48 +0200 Subject: [PATCH 12/46] Fix(Script) Remove a Trailing whitespace from brutallus script. (#21909) --- .../scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index a51a33f10..f04d21333 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -65,7 +65,7 @@ enum Misc struct boss_brutallus : public BossAI { - boss_brutallus(Creature* creature) : BossAI(creature, DATA_BRUTALLUS) + boss_brutallus(Creature* creature) : BossAI(creature, DATA_BRUTALLUS) { me->SetCorpseDelay(360); } From fef1cc141757321caf8ab099f38bafaa63a0cfbd Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Sat, 12 Apr 2025 10:30:29 -0500 Subject: [PATCH 13/46] fix(Scripts/SunwellPlateau): Add Blink with Nove Arch Mage (#21904) --- .../rev_1744421404317179000.sql | 11 ++++ .../instance_sunwell_plateau.cpp | 55 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1744421404317179000.sql diff --git a/data/sql/updates/pending_db_world/rev_1744421404317179000.sql b/data/sql/updates/pending_db_world/rev_1744421404317179000.sql new file mode 100644 index 000000000..18f266fbe --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1744421404317179000.sql @@ -0,0 +1,11 @@ +-- +UPDATE `creature_template` SET +`ScriptName` = 'npc_sunblade_arch_mage', +`AIName` = '' +WHERE `entry` = 25367; + +DELETE FROM `creature_template_spell` WHERE `CreatureID` = 25367 AND `Index` IN (0, 1, 2); +INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES +(25367, 0, 46553, 0), -- Arcane Explosion +(25367, 1, 28401, 0), -- Blink +(25367, 2, 46555, 0); -- Frost Nova diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp index cf8910dee..4d2154fab 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp @@ -282,10 +282,65 @@ private: uint32 _triggeredSpellId; }; +enum SunbladeArchMageSpells +{ + SPELL_ARCANE_EXPLOSION = 46553, + SPELL_BLINK = 28401, + SPELL_FROST_NOVA = 46555 +}; + +struct npc_sunblade_arch_mage : public ScriptedAI +{ + npc_sunblade_arch_mage(Creature* creature) : ScriptedAI(creature) + { + scheduler.SetValidator([this] + { + return !me->HasUnitState(UNIT_STATE_CASTING); + }); + } + + void Reset() override + { + scheduler.CancelAll(); + } + + void JustEngagedWith(Unit* /*who*/) override + { + scheduler.Schedule(6s, 12s, [this](TaskContext context) + { + DoCastAOE(SPELL_ARCANE_EXPLOSION); + context.Repeat(12s, 18s); + }); + + scheduler.Schedule(8s, 15s, [this](TaskContext context) + { + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true)) + { + DoCast(target, SPELL_BLINK, true); + DoCastAOE(SPELL_FROST_NOVA, true); + } + context.Repeat(20s, 25s); + }); + } + + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; + + scheduler.Update(diff); + DoMeleeAttackIfReady(); + } + +private: + TaskScheduler scheduler; +}; + void AddSC_instance_sunwell_plateau() { new instance_sunwell_plateau(); RegisterSpellScript(spell_cataclysm_breath); + RegisterSunwellPlateauCreatureAI(npc_sunblade_arch_mage); RegisterSunwellPlateauCreatureAI(npc_sunblade_scout); 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); From df17717b980ff0ac7e960ed8d19ab0b0bfe96969 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 12 Apr 2025 15:31:29 +0000 Subject: [PATCH 14/46] chore(DB): import pending files Referenced commit(s): fef1cc141757321caf8ab099f38bafaa63a0cfbd --- .../rev_1744421404317179000.sql => db_world/2025_04_12_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1744421404317179000.sql => db_world/2025_04_12_00.sql} (90%) diff --git a/data/sql/updates/pending_db_world/rev_1744421404317179000.sql b/data/sql/updates/db_world/2025_04_12_00.sql similarity index 90% rename from data/sql/updates/pending_db_world/rev_1744421404317179000.sql rename to data/sql/updates/db_world/2025_04_12_00.sql index 18f266fbe..495b083d6 100644 --- a/data/sql/updates/pending_db_world/rev_1744421404317179000.sql +++ b/data/sql/updates/db_world/2025_04_12_00.sql @@ -1,3 +1,4 @@ +-- DB update 2025_04_11_01 -> 2025_04_12_00 -- UPDATE `creature_template` SET `ScriptName` = 'npc_sunblade_arch_mage', From 613f09199cb04d8d58e6de7d20fc36c87052332b Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Sat, 12 Apr 2025 11:12:04 -0500 Subject: [PATCH 15/46] fix(Scripts/SunwellPlateau): Correct timing for Eredar Twins (#21894) --- .../SunwellPlateau/boss_eredar_twins.cpp | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index fcd5fdcb3..b76ed95a0 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -69,10 +69,12 @@ enum Spells SPELL_BLAZE_SUMMON = 45236 }; -enum Misc +enum TwinPhases { ACTION_SISTER_DIED = 1, - GROUP_SPECIAL_ABILITY = 1 + GROUP_SPECIAL_ABILITY = 1, + GROUP_PYROGENICS = 2, + GROUP_FLAME_SEAR = 3 }; struct boss_sacrolash : public BossAI @@ -226,16 +228,24 @@ struct boss_alythess : public BossAI Talk(YELL_SISTER_SACROLASH_DEAD); me->CastSpell(me, SPELL_EMPOWER, true); - scheduler.CancelGroup(GROUP_SPECIAL_ABILITY); + scheduler.CancelAll(); + // PYROGENICS Phase 2 + scheduler.Schedule(16s, GROUP_PYROGENICS, [this](TaskContext context) { + DoCastSelf(SPELL_PYROGENICS); + context.Repeat(16s, 28s); + }); + // FLAME_SEAR phase 2 + ScheduleTimedEvent(8s, 10s, [&] { + me->CastCustomSpell(SPELL_FLAME_SEAR, SPELLVALUE_MAX_TARGETS, urand(4, 5), me, TRIGGERED_NONE); + }, 8s, 10s, GROUP_FLAME_SEAR); ScheduleTimedEvent(20s, 26s, [&] { Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f); if (!target) target = me->GetVictim(); DoCast(target, SPELL_SHADOW_NOVA); - if (Creature * sacrolash = instance->GetCreature(DATA_SACROLASH)) + if (Creature* sacrolash = instance->GetCreature(DATA_SACROLASH)) sacrolash->AI()->Talk(EMOTE_SHADOW_NOVA, target); - }, 20s, 26s); } } @@ -253,13 +263,16 @@ struct boss_alythess : public BossAI DoCastVictim(SPELL_BLAZE); }, 3800ms); - ScheduleTimedEvent(21s, 34s, [&] { + // PYROGENICS Phase 1 + scheduler.Schedule(21s, GROUP_PYROGENICS, [this](TaskContext context) { DoCastSelf(SPELL_PYROGENICS); - }, 21s, 34s); + context.Repeat(21s, 34s); + }); + // FLAME_SEAR Phase 1 ScheduleTimedEvent(10s, 15s, [&] { me->CastCustomSpell(SPELL_FLAME_SEAR, SPELLVALUE_MAX_TARGETS, urand(4, 5), me, TRIGGERED_NONE); - }, 10s, 15s); + }, 10s, 15s, GROUP_FLAME_SEAR); scheduler.Schedule(20s, GROUP_SPECIAL_ABILITY, [this](TaskContext context) { Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f); From d75073a941b5a72532fb32e1583ceb221e52ec04 Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Sat, 12 Apr 2025 18:38:08 +0200 Subject: [PATCH 16/46] fix(DB/Creature): Implement Crusader assaults during the dk chain quest (phase 64). (#21881) --- .../pending_db_world/Crusaders_Assault.sql | 500 ++++++++++++++++++ 1 file changed, 500 insertions(+) create mode 100644 data/sql/updates/pending_db_world/Crusaders_Assault.sql diff --git a/data/sql/updates/pending_db_world/Crusaders_Assault.sql b/data/sql/updates/pending_db_world/Crusaders_Assault.sql new file mode 100644 index 000000000..b1b3c09db --- /dev/null +++ b/data/sql/updates/pending_db_world/Crusaders_Assault.sql @@ -0,0 +1,500 @@ + +-- Add Waypoints (sniffed) +DELETE FROM `waypoint_data` WHERE `id` IN (13080000, 13080001, 13080002, 13080003, 13080004, 13080005, 13080006); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(13080000, 1, 1864.9297, -5857.2354, 102.99237, NULL, 0, 1, 0, 100, 0), +(13080000, 2, 1906.6752, -5848.1743, 100.6364, NULL, 0, 1, 0, 100, 0), +(13080000, 3, 1933.436, -5845.687, 101.20216, NULL, 0, 1, 0, 100, 0), +(13080000, 4, 1949.9349, -5832.7275, 100.720726, NULL, 0, 1, 0, 100, 0), +(13080000, 5, 1974.7526, -5804.1865, 101.02607, NULL, 0, 1, 0, 100, 0), +(13080000, 6, 2011.2974, -5778.8735, 100.628235, NULL, 0, 1, 0, 100, 0), +(13080000, 7, 2026.7706, -5761.914, 100.721436, NULL, 0, 1, 0, 100, 0), +(13080000, 8, 2061.8108, -5747.4653, 98.46883, NULL, 0, 1, 0, 100, 0), +(13080000, 9, 2101.5781, -5729.481, 100.358315, NULL, 0, 1, 0, 100, 0), +(13080000, 10, 2122.6128, -5721.6187, 100.34849, NULL, 0, 1, 0, 100, 0), +(13080001, 1, 1856.2045, -5818.014, 99.92236, NULL, 0, 1, 0, 100, 0), +(13080001, 2, 1879.6819, -5817.4077, 101.65721, NULL, 0, 1, 0, 100, 0), +(13080001, 3, 1907.9219, -5807.378, 100.80271, NULL, 0, 1, 0, 100, 0), +(13080001, 4, 1924.9833, -5783.341, 100.566536, NULL, 0, 1, 0, 100, 0), +(13080001, 5, 1954.5836, -5759.629, 103.93236, NULL, 0, 1, 0, 100, 0), +(13080001, 6, 1994.358, -5752.295, 101.22889, NULL, 0, 1, 0, 100, 0), +(13080001, 7, 2032.7502, -5750.829, 98.778496, NULL, 0, 1, 0, 100, 0), +(13080001, 8, 2054.5498, -5741.3867, 99.06946, NULL, 0, 1, 0, 100, 0), +(13080001, 9, 2078.8108, -5730.8784, 101.11383, NULL, 0, 1, 0, 100, 0), +(13080001, 10, 2104.4143, -5719.7886, 100.25827, NULL, 0, 1, 0, 100, 0), +(13080002, 1, 1875.6686, -5918.884, 104.12996, NULL, 0, 1, 0, 100, 0), +(13080002, 2, 1912.082, -5929.236, 102.65186, NULL, 0, 1, 0, 100, 0), +(13080002, 3, 1959.4966, -5942.156, 101.7048, NULL, 0, 1, 0, 100, 0), +(13080002, 4, 1993.7834, -5935.1016, 103.13417, NULL, 0, 1, 0, 100, 0), +(13080002, 5, 2027.2216, -5927.475, 104.419815, NULL, 0, 1, 0, 100, 0), +(13080002, 6, 2064.3567, -5915.4697, 106.92521, NULL, 0, 1, 0, 100, 0), +(13080002, 7, 2095.3904, -5910.9243, 105.78743, NULL, 0, 1, 0, 100, 0), +(13080002, 8, 2126.7786, -5908.6016, 103.01595, NULL, 0, 1, 0, 100, 0), +(13080002, 9, 2160.23, -5926.2856, 98.975784, NULL, 0, 1, 0, 100, 0), +(13080002, 10, 2195.5735, -5922.926, 100.97396, NULL, 0, 1, 0, 100, 0), +(13080002, 11, 2228.3472, -5902.7646, 101.38566, NULL, 0, 1, 0, 100, 0), +(13080002, 12, 2244.7395, -5896.6377, 100.93018, NULL, 0, 1, 0, 100, 0), +(13080002, 13, 2267.1038, -5886.6367, 101.28235, NULL, 0, 1, 0, 100, 0), +(13080003, 1, 1856.4067, -5817.142, 99.960815, NULL, 0, 1, 0, 100, 0), +(13080003, 2, 1872.7567, -5814.7085, 101.11037, NULL, 0, 1, 0, 100, 0), +(13080003, 3, 1898.1747, -5813.416, 101.01499, NULL, 0, 1, 0, 100, 0), +(13080003, 4, 1928.7461, -5808.941, 100.22529, NULL, 0, 1, 0, 100, 0), +(13080003, 5, 1954.9766, -5803.5137, 100.91178, NULL, 0, 1, 0, 100, 0), +(13080003, 6, 1978.3507, -5802.173, 101.00185, NULL, 0, 1, 0, 100, 0), +(13080003, 7, 2011.0837, -5802.652, 100.44209, NULL, 0, 1, 0, 100, 0), +(13080003, 8, 2039.9874, -5804.1406, 101.01785, NULL, 0, 1, 0, 100, 0), +(13080003, 9, 2063.9934, -5810.252, 103.40105, NULL, 0, 1, 0, 100, 0), +(13080003, 10, 2104.923, -5819.827, 100.42264, NULL, 0, 1, 0, 100, 0), +(13080003, 11, 2136.4358, -5815.2544, 100.414505, NULL, 0, 1, 0, 100, 0), +(13080003, 12, 2153.0247, -5813.928, 101.720245, NULL, 0, 1, 0, 100, 0), +(13080003, 13, 2179.141, -5817.3813, 101.34819, NULL, 0, 1, 0, 100, 0), +(13080003, 14, 2193.1658, -5811.2437, 101.35096, NULL, 0, 1, 0, 100, 0), +(13080004, 1, 1876.9478, -5912.3003, 104.0133, NULL, 0, 1, 0, 100, 0), +(13080004, 2, 1904.5569, -5910.547, 101.748405, NULL, 0, 1, 0, 100, 0), +(13080004, 3, 1936.5052, -5906.7617, 101.05771, NULL, 0, 1, 0, 100, 0), +(13080004, 4, 1969.2869, -5902.0605, 102.64162, NULL, 0, 1, 0, 100, 0), +(13080004, 5, 2001.767, -5907.9365, 104.066376, NULL, 0, 1, 0, 100, 0), +(13080004, 6, 2028.1163, -5907.239, 104.981964, NULL, 0, 1, 0, 100, 0), +(13080004, 7, 2072.1294, -5889.8423, 104.30913, NULL, 0, 1, 0, 100, 0), +(13080004, 8, 2108.8818, -5865.1997, 102.572586, NULL, 0, 1, 0, 100, 0), +(13080004, 9, 2140.5781, -5853.992, 101.359, NULL, 0, 1, 0, 100, 0), +(13080004, 10, 2179.512, -5843.2065, 101.34962, NULL, 0, 1, 0, 100, 0), +(13080004, 11, 2215.4292, -5843.4375, 101.49031, NULL, 0, 1, 0, 100, 0), +(13080004, 12, 2251.271, -5836.908, 101.26235, NULL, 0, 1, 0, 100, 0), +(13080005, 1, 1874.2899, -5913.7334, 104.08086, NULL, 0, 1, 0, 100, 0), +(13080005, 2, 1903.5807, -5909.3813, 101.73864, NULL, 0, 1, 0, 100, 0), +(13080005, 3, 1943.1951, -5901.772, 100.78975, NULL, 0, 1, 0, 100, 0), +(13080005, 4, 1969.0759, -5871.9277, 100.59579, NULL, 0, 1, 0, 100, 0), +(13080005, 5, 1992.327, -5854.478, 100.86686, NULL, 0, 1, 0, 100, 0), +(13080005, 6, 2022.3156, -5820.032, 100.93917, NULL, 0, 1, 0, 100, 0), +(13080005, 7, 2040.4738, -5802.4673, 101.35475, NULL, 0, 1, 0, 100, 0), +(13080005, 8, 2069.8887, -5809.5625, 103.06567, NULL, 0, 1, 0, 100, 0), +(13080005, 9, 2107.1997, -5782.647, 99.069336, NULL, 0, 1, 0, 100, 0), +(13080005, 10, 2139.4172, -5748.401, 99.390945, NULL, 0, 1, 0, 100, 0), +(13080006, 1, 1895.276, -5853.271, 101.70323, NULL, 0, 1, 0, 100, 0), +(13080006, 2, 1920.5486, -5847.92, 100.34584, NULL, 0, 1, 0, 100, 0), +(13080006, 3, 1950.8499, -5843.2944, 100.502686, NULL, 0, 1, 0, 100, 0), +(13080006, 4, 1990.0474, -5844.912, 100.70443, NULL, 0, 1, 0, 100, 0), +(13080006, 5, 2020.3094, -5845.4956, 100.52637, NULL, 0, 1, 0, 100, 0), +(13080006, 6, 2041.9095, -5847.082, 100.50074, NULL, 0, 1, 0, 100, 0), +(13080006, 7, 2071.4407, -5846.436, 102.63594, NULL, 0, 1, 0, 100, 0), +(13080006, 8, 2114.9805, -5848.212, 103.596146, NULL, 0, 1, 0, 100, 0), +(13080006, 9, 2142.089, -5848.011, 101.34154, NULL, 0, 1, 0, 100, 0), +(13080006, 10, 2171.9124, -5843.449, 101.350174, NULL, 0, 1, 0, 100, 0), +(13080006, 11, 2220.5051, -5841.178, 101.311676, NULL, 0, 1, 0, 100, 0); + +-- Add new Crusaders +DELETE FROM `creature` WHERE(`id1` IN (29102, 29103)) AND (`guid` IN (130558, 130559, 130565, 130566, 130569, 130577, 130587, 130599, 130603, 130609, 130613, 130615, 130616, 130617, 130618, 130619, 130620, 130637, 130641, 130642, 130653, 130654, 130655, 130656, 130657, 130659, 130662, 130663, 130664, 130665, 130666, 130667, 130716, 130717, 130718, 130719, 130720, 130734, 130739, 130741, 130745, 130746, 130749, 130750, 130751, 130752, 130753, 130754, 130755, 130766, 130779, 130782, 130788, 130789, 130790, 130791, 130799, 130800, 130801, 130802, 130803, 130804, 130805, 130806)); +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`, `CreateObject`, `Comment`) VALUES +(130558, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1806.468, -5812.1665, 107.8367, 5.27559, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130559, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1763.8867, -5913.4697, 116.26733, 6.20881, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130565, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1851.351, -5926.497, 105.84499, 2.04404, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130566, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1769.886, -5789.5654, 116.31611, 5.80429, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130569, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1751.2246, -5817.559, 116.20389, 6.27339, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130577, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1754.0013, -5939.3203, 116.263054, 1.21147, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130587, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1740.2603, -5938.3047, 117.042694, 0.46583, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130599, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1846.8883, -5899.613, 104.54979, 4.49695, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130603, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1829.1501, -5919.07, 109.765625, 4.91395, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130609, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1780.5438, -5852.756, 116.310135, 5.17603, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130613, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1829.2098, -5882.067, 117.222374, 1.63610, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130615, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1779.983, -5788.9155, 116.332375, 4.28987, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130616, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1814.7518, -5926.276, 114.089226, 1.37405, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130617, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1786.2859, -5797.9897, 115.35753, 5.80862, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130618, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1750.5985, -5903.4043, 116.39576, 0.20849, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130619, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1776.9706, -5797.2314, 115.94301, 4.63913, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130620, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1801.1423, -5879.706, 116.217, 4.96634, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130637, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1756.2601, -5829.235, 116.217476, 5.90796, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130641, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1838.7823, -5912.5347, 107.027954, 1.50926, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130642, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1814.7018, -5926.527, 114.11274, 0.18402, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130653, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1834.27, -5930.526, 110.58765, 1.63866, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130654, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1796.6903, -5806.1284, 111.00535, 5.88776, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130655, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1760.5009, -5829.811, 116.21261, 5.76410, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130656, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1747.3335, -5833.0054, 116.64094, 0.18844, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130657, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1834.0282, -5843.9473, 101.08788, 5.60785, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130659, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1847.0829, -5898.7236, 104.4969, 1.74654, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130662, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1769.9412, -5900.979, 117.32546, 6.00629, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130663, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1751.1364, -5817.558, 116.20518, 5.83633, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130664, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1763.0034, -5849.215, 116.42481, 6.07206, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130665, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1714.31, -5846.843, 117.12946, 1.14355, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130666, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1806.4135, -5812.08, 107.85978, 5.48936, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130667, 29102, 0, 0, 609, 0, 0, 1, 64, 1, 1753.5538, -5940.5117, 116.27698, 1.21147, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130716, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1752.4235, -5852.892, 116.55626, 6.07086, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130717, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1733.0786, -5915.801, 116.797516, 4.76314, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130718, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1860.886, -5971.9937, 113.303246, 1.95590, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130719, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1829.2738, -5916.234, 109.40457, 1.32629, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130720, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1829.2382, -5882.153, 117.18597, 5.02977, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130734, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1819.2709, -5863.529, 114.77644, 1.43262, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130739, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1853.931, -5905.5376, 104.39724, 4.30449, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130741, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1799.8529, -5820.3906, 109.40369, 5.03273, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130745, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1789.906, -5833.9766, 115.32977, 5.17625, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130746, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1786.7073, -5886.1943, 116.476555, 1.47695, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130749, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1829.1589, -5881.1675, 117.38245, 1.62733, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130750, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1788.0859, -5799.226, 114.96737, 5.80600, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130751, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1786.3668, -5846.4966, 116.302086, 5.02522, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130752, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1861.3646, -5973.1743, 113.04503, 1.95590, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130753, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1750.3397, -5903.459, 116.38496, 5.99388, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130754, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1819.1548, -5864.3677, 115.534294, 5.74213, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130755, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1829.0012, -5917.9087, 109.67767, 1.43889, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130766, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1827.0104, -5809.47, 102.63116, 4.54895, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130779, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1739.4569, -5938.851, 116.9893, 0.16883, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130782, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1769.6073, -5839.361, 116.7603, 0.33208, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130788, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1827.1459, -5808.6484, 102.64576, 0.16883, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130789, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1786.0831, -5845.6196, 116.34157, 5.02522, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130790, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1820.4735, -5826.2026, 103.36522, 1.00544, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130791, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1759.0134, -5818.3057, 116.20113, 0.43958, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130799, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1878.5912, -5949.741, 102.18262, 1.98898, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130800, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1827.1437, -5946.054, 116.422745, 1.29596, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130801, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1769.7793, -5789.5103, 116.31888, 5.80865, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130802, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1786.5162, -5888.2197, 116.859474, 5.76821, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130803, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1789.7054, -5925.15, 116.17963, 6.25774, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130804, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1739.1875, -5938.897, 116.979614, 0.51302, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130805, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1837.7048, -5862.193, 101.79353, 4.60189, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'), +(130806, 29103, 0, 0, 609, 0, 0, 1, 64, 1, 1771.5642, -5805.9375, 116.2819, 5.55658, 30, 0, 0, 13920, 0, 0, 0, 0, 0, '', 59185, 0, 'has guid specific SAI'); + +-- Set Spawn Timer for Rampaging Abominations and Volatile Ghoulds +UPDATE `creature` SET `spawntimesecs` = 30 WHERE (`id1` IN (29115, 29136)); + +-- Set Specific SmartAI +DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (-130558, -130559, -130565, -130566, -130569, -130577, -130587, -130599, -130603, -130609, -130613, -130615, -130616, -130617, -130618, -130619, -130620, -130637, -130641, -130642, -130653, -130654, -130655, -130656, -130657, -130659, -130662, -130663, -130664, -130665, -130666, -130667, -130716, -130717, -130718, -130719, -130720, -130734, -130739, -130741, -130745, -130746, -130749, -130750, -130751, -130752, -130753, -130754, -130755, -130766, -130779, -130782, -130788 , -130789, -130790, -130791, -130799, -130800, -130801, -130802, -130803, -130804, -130805, -130806)) AND (`source_type` = 0); +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 +(-130558, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130558, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130558, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130559, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130559, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130559, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130565, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130565, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130565, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130566, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130566, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130566, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130569, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130569, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130569, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130577, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130577, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130577, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130587, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130587, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130587, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130599, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130599, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130599, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130603, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130603, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130603, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130609, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130609, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130609, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130613, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130613, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130613, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130615, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130615, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130615, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130616, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130616, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130616, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130617, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130617, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130617, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130618, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130618, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130618, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130619, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130619, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130619, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130620, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130620, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130620, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130637, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130637, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130637, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130641, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130641, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130641, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130642, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130642, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130642, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130653, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130653, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130653, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130654, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130654, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130654, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130655, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130655, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130655, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130656, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130656, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130656, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130657, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130657, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130657, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130659, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130659, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130659, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130662, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130662, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130662, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130663, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130663, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130663, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130664, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130664, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130664, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130665, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130665, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130665, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130666, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130666, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130666, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130667, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130667, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130667, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Just Died - Despawn In 2000 ms'), +(-130716, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130716, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130716, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130717, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130717, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130717, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130718, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130718, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130718, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130719, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130719, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130719, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130720, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130720, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130720, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130734, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130734, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130734, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130739, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130739, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130739, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130741, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130741, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130741, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130745, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130745, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130745, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130746, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130746, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130746, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130749, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130749, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130749, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130750, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130750, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130750, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130751, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130751, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130751, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130752, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130752, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130752, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130753, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130753, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130753, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130754, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130754, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130754, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130755, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130755, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130755, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130766, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130766, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130766, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130779, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130779, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130779, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130782, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130782, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130782, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130788, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130788, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130788, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130789, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130789, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130789, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130790, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130790, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130790, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130791, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130791, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130791, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130799, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130799, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130799, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130800, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130800, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130800, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130801, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130801, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130801, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130802, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130802, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130802, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130803, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130803, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130803, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130804, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130804, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130804, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130805, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130805, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130805, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'), +(-130806, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 13080000, 13080006, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Respawn - Start Random Path 13080000-13080006'), +(-130806, 0, 6, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Path 0 Finished - Despawn In 2000 ms'), +(-130806, 0, 7, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Just Died - Despawn In 2000 ms'); + +-- Add Comment for Crusaders near Ballistas +UPDATE `creature` SET `Comment` = "Rooted by Specific Guid SAI" WHERE (`id1` IN (29102, 29103)) AND (`guid` IN (-130555, -130556, -130557, -130560, -130561, -130562, -130563, -130564, -130571, -130572, -130573, -130575, -130576, -130578, -130579, -130580, -130581, -130582, -130583, -130584, -130585, -130586, -130588, -130589, -130590, -130591, -130592, -130593, -130594, -130595, -130596, -130597, -130598, -130600, -130601, -130604, -130605, -130606, -130607, -130610, -130611, -130612, -130614, -130621, -130622, -130623, -130624, -130625, -130626, -130627, -130628, -130629, -130630, -130631, -130632, -130633, -130634, -130635, -130636, -130638, -130639, -130640, -130643, -130644, -130645, -130646, -130647, -130648, -130649, -130650, -130651, -130652, -130688, -130693, -130699, -130700, -130706, -130707)); + +-- Set Rooted for Crusaders near the Ballistas +DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (-130555, -130556, -130557, -130560, -130561, -130562, -130563, -130564, -130571, -130572, -130573, -130575, -130576, -130578, -130579, -130580, -130581, -130582, -130583, -130584, -130585, -130586, -130588, -130589, -130590, -130591, -130592, -130593, -130594, -130595, -130596, -130597, -130598, -130600, -130601, -130604, -130605, -130606, -130607, -130610, -130611, -130612, -130614, -130621, -130622, -130623, -130624, -130625, -130626, -130627, -130628, -130629, -130630, -130631, -130632, -130633, -130634, -130635, -130636, -130638, -130639, -130640, -130643, -130644, -130645, -130646, -130647, -130648, -130649, -130650, -130651, -130652, -130688, -130693, -130699, -130700, -130706, -130707, -130711, -130712, -130713, -130714, -130715, -130723, -130724, -130725, -130726, -130727, -130728, -130729, -130730, -130731, -130732, -130735, -130736, -130737, -130738, -130740, -130742, -130744, -130747, -130748, -130756, -130757, -130758, -130759, -130760, -130761, -130762, -130763, -130764, -130765, -130767, -130768, -130769, -130770, -130771, -130772, -130773, -130774, -130775, -130776, -130777, -130778, -130780, -130781, -130783, -130784, -130785, -130786, -130787, -130831, -130833, -130837, -130839, -130840, -130841, -130843, -130844, -130846, -130851, -130854)) AND (`source_type` = 0); +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 +(-130555, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130556, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130557, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130560, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130561, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130562, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130563, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130564, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130571, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130572, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130573, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130575, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130576, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130578, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130579, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130580, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130581, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130582, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130583, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130584, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130585, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130586, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130588, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130589, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130590, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130591, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130592, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130593, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130594, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130595, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130596, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130597, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130598, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130600, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130601, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130604, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130605, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130606, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130607, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130610, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130611, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130612, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130614, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130621, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130622, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130623, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130624, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130625, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130626, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130627, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130628, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130629, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130630, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130631, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130632, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130633, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130634, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130635, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130636, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130638, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130639, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130640, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130643, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130644, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130645, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130646, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130647, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130648, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130649, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130650, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130651, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130652, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130688, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130693, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130699, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130700, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130706, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130707, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearthglen Crusader - On Reset - Set Rooted On'), +(-130711, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130712, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130713, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130714, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130715, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130723, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130724, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130725, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130726, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130727, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130728, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130729, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130730, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130731, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130732, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130735, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130736, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130737, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130738, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130740, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130742, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130744, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130747, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130748, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130756, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130757, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130758, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130759, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130760, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130761, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130762, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130763, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130764, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130765, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130767, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130768, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130769, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130770, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130771, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130772, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130773, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130774, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130775, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130776, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130777, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130778, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130780, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130781, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130783, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130784, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130785, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130786, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130787, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130831, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130833, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130837, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130839, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130840, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130841, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130843, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130844, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130846, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130851, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'), +(-130854, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tirisfal Crusader - On Reset - Set Rooted On'); From 4b64c4ed2513e77cfca53b326a46489b385125df Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Sat, 12 Apr 2025 18:38:32 +0200 Subject: [PATCH 17/46] fix(Core/Player): Force UpdateZone on resurrect to apply Zone auras (#21888) --- src/server/game/Entities/Player/Player.cpp | 2 +- src/server/game/Entities/Player/Player.h | 2 +- src/server/game/Entities/Player/PlayerUpdates.cpp | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index cd6c45128..701715ad3 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -4535,7 +4535,7 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness) // trigger update zone for alive state zone updates uint32 newzone, newarea; GetZoneAndAreaId(newzone, newarea); - UpdateZone(newzone, newarea); + UpdateZone(newzone, newarea, true); sOutdoorPvPMgr->HandlePlayerResurrects(this, newzone); if (Battleground* bg = GetBattleground()) diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 22e694143..2545c89e4 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1862,7 +1862,7 @@ public: itr->SetPvP(state); } void UpdatePvP(bool state, bool _override = false); - void UpdateZone(uint32 newZone, uint32 newArea); + void UpdateZone(uint32 newZone, uint32 newArea, bool force = false); void UpdateArea(uint32 newArea); void SetNeedZoneUpdate(bool needUpdate) { m_needZoneUpdate = needUpdate; } diff --git a/src/server/game/Entities/Player/PlayerUpdates.cpp b/src/server/game/Entities/Player/PlayerUpdates.cpp index e2862ace6..1196b4bc9 100644 --- a/src/server/game/Entities/Player/PlayerUpdates.cpp +++ b/src/server/game/Entities/Player/PlayerUpdates.cpp @@ -1249,17 +1249,20 @@ void Player::UpdateArea(uint32 newArea) RemoveRestFlag(REST_FLAG_IN_FACTION_AREA); } -void Player::UpdateZone(uint32 newZone, uint32 newArea) +void Player::UpdateZone(uint32 newZone, uint32 newArea, bool force) { if (!newZone) return; - if (m_zoneUpdateId != newZone) + if (m_zoneUpdateId != newZone || force) { sOutdoorPvPMgr->HandlePlayerLeaveZone(this, m_zoneUpdateId); sOutdoorPvPMgr->HandlePlayerEnterZone(this, newZone); sWorldState->HandlePlayerLeaveZone(this, static_cast(m_zoneUpdateId)); sWorldState->HandlePlayerEnterZone(this, static_cast(newZone)); + } + if (m_zoneUpdateId != newZone) + { sBattlefieldMgr->HandlePlayerLeaveZone(this, m_zoneUpdateId); sBattlefieldMgr->HandlePlayerEnterZone(this, newZone); SendInitWorldStates(newZone, From 651ac9336dfb6bebfd316864843e9878b16dce2a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 12 Apr 2025 16:39:11 +0000 Subject: [PATCH 18/46] chore(DB): import pending files Referenced commit(s): d75073a941b5a72532fb32e1583ceb221e52ec04 --- .../Crusaders_Assault.sql => db_world/2025_04_12_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/Crusaders_Assault.sql => db_world/2025_04_12_01.sql} (99%) diff --git a/data/sql/updates/pending_db_world/Crusaders_Assault.sql b/data/sql/updates/db_world/2025_04_12_01.sql similarity index 99% rename from data/sql/updates/pending_db_world/Crusaders_Assault.sql rename to data/sql/updates/db_world/2025_04_12_01.sql index b1b3c09db..c7171c79f 100644 --- a/data/sql/updates/pending_db_world/Crusaders_Assault.sql +++ b/data/sql/updates/db_world/2025_04_12_01.sql @@ -1,3 +1,4 @@ +-- DB update 2025_04_12_00 -> 2025_04_12_01 -- Add Waypoints (sniffed) DELETE FROM `waypoint_data` WHERE `id` IN (13080000, 13080001, 13080002, 13080003, 13080004, 13080005, 13080006); From a2ccdba158636a90d545141f2b222bee37470304 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sat, 12 Apr 2025 14:43:19 -0300 Subject: [PATCH 19/46] fix(Scripts/SunwellPlateau): Prevent spell casting if nearing air phase (#21873) --- .../SunwellPlateau/boss_felmyst.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp index 2a8f3443d..3b7c4fdc2 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp @@ -85,6 +85,7 @@ enum Misc GROUP_START_INTRO = 0, GROUP_BREATH = 1, + GROUP_TAKEOFF = 2, NPC_FOG_TRIGGER = 23472, NPC_KALECGOS_FELMYST = 24844, // Same as Magister's Terrace @@ -214,19 +215,25 @@ struct boss_felmyst : public BossAI }, 7500ms); ScheduleTimedEvent(13s, 30s, [&] { - Talk(YELL_BREATH); - DoCastVictim(SPELL_CORROSION); + if (scheduler.GetNextGroupOccurrence(GROUP_TAKEOFF) > 2s) + { + Talk(YELL_BREATH); + DoCastVictim(SPELL_CORROSION); + } }, 30s, 39s); ScheduleTimedEvent(18s, 43s, [&] { - DoCastSelf(SPELL_GAS_NOVA); + if (scheduler.GetNextGroupOccurrence(GROUP_TAKEOFF) > 2s) + DoCastSelf(SPELL_GAS_NOVA); }, 18s, 43s); ScheduleTimedEvent(26s, 53s, [&] { - DoCastRandomTarget(SPELL_ENCAPSULATE_CHANNEL, 0, 50.0f); + if (scheduler.GetNextGroupOccurrence(GROUP_TAKEOFF) > 9s) + DoCastRandomTarget(SPELL_ENCAPSULATE_CHANNEL, 0, 50.0f); }, 26s, 53s); - me->m_Events.AddEventAtOffset([&] { + scheduler.Schedule(1min, GROUP_TAKEOFF, [&](TaskContext) + { Talk(YELL_TAKEOFF); scheduler.CancelAll(); me->SetReactState(REACT_PASSIVE); @@ -241,7 +248,7 @@ struct boss_felmyst : public BossAI SetInvincibility(true); me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); me->GetMotionMaster()->MovePoint(POINT_TAKEOFF, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 20.0f); - }, 1min); + }); } void MovementInform(uint32 type, uint32 point) override From 8470711e725e7ded8d0ece39ed5209e1859c61b8 Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Sun, 13 Apr 2025 13:56:18 +0200 Subject: [PATCH 20/46] fix(DB/Creature) Locate more Death Knight Initiates on their sniffed spawn points. (#21912) --- data/sql/updates/pending_db_world/DK_Init_SP.sql | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 data/sql/updates/pending_db_world/DK_Init_SP.sql diff --git a/data/sql/updates/pending_db_world/DK_Init_SP.sql b/data/sql/updates/pending_db_world/DK_Init_SP.sql new file mode 100644 index 000000000..1e149dfb9 --- /dev/null +++ b/data/sql/updates/pending_db_world/DK_Init_SP.sql @@ -0,0 +1,8 @@ + +-- Add more sniffed SP +DELETE FROM `creature` WHERE (`id1` = 28406) AND (`guid` IN (129500, 129501, 129502, 129503)); +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`, `CreateObject`, `Comment`) VALUES +(129500, 28406, 0, 0, 609, 0, 0, 1, 1, 1, 2400.0117, -5571.186, 377.0274, 4.69506, 360, 0, 0, 2614, 2117, 0, 0, 0, 0, '', 0, 0, NULL), +(129501, 28406, 0, 0, 609, 0, 0, 1, 1, 1, 2396.4502, -5595.242, 376.9796, 4.26250, 360, 0, 0, 2614, 2117, 0, 0, 0, 0, '', 0, 0, NULL), +(129502, 28406, 0, 0, 609, 0, 0, 1, 1, 1, 2450.6477, -5662.944, 376.9888, 0.33161, 360, 0, 0, 2614, 2117, 0, 0, 0, 0, '', 0, 0, NULL), +(129503, 28406, 0, 0, 609, 0, 0, 1, 1, 1, 2446.806, -5660.285, 376.98868, 3.31612, 360, 0, 0, 2614, 2117, 0, 0, 0, 0, '', 0, 0, NULL); From 00f69bdcb70861e85e06150f71f31715378b821d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 13 Apr 2025 11:57:18 +0000 Subject: [PATCH 21/46] chore(DB): import pending files Referenced commit(s): 8470711e725e7ded8d0ece39ed5209e1859c61b8 --- .../DK_Init_SP.sql => db_world/2025_04_13_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/DK_Init_SP.sql => db_world/2025_04_13_00.sql} (95%) diff --git a/data/sql/updates/pending_db_world/DK_Init_SP.sql b/data/sql/updates/db_world/2025_04_13_00.sql similarity index 95% rename from data/sql/updates/pending_db_world/DK_Init_SP.sql rename to data/sql/updates/db_world/2025_04_13_00.sql index 1e149dfb9..07b993a1d 100644 --- a/data/sql/updates/pending_db_world/DK_Init_SP.sql +++ b/data/sql/updates/db_world/2025_04_13_00.sql @@ -1,3 +1,4 @@ +-- DB update 2025_04_12_01 -> 2025_04_13_00 -- Add more sniffed SP DELETE FROM `creature` WHERE (`id1` = 28406) AND (`guid` IN (129500, 129501, 129502, 129503)); From 3f418ca3ee2f4c570ee573950eaa5deeacec4473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A9=E9=B9=BF?= <18535853+PkllonG@users.noreply.github.com> Date: Sun, 13 Apr 2025 20:28:25 +0800 Subject: [PATCH 22/46] fix(Scripts/SunwellPlateau): Entropius' darkness spawn height (#21914) --- src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 11e9aefb8..b3d1949e1 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -372,7 +372,7 @@ class spell_muru_blackhole : public SpellScript return; WorldLocation summonPos = *GetExplTargetDest(); - float destZ = summonPos.GetPositionZ() - GetCaster()->GetMapWaterOrGroundLevel(GetCaster()->GetPosition()); + float destZ = summonPos.GetPositionZ() - GetCaster()->GetMapWaterOrGroundLevel(summonPos); Position offset = { 0.0f, 0.0f, -destZ, 0.0f}; summonPos.RelocateOffset(offset); SetExplTargetDest(summonPos); From ab8c09215c434b01ca0430d42adacaba02b738fa Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Sun, 13 Apr 2025 16:59:07 +0200 Subject: [PATCH 23/46] fix(DB/Creature) Add Verified Build. (#21915) --- data/sql/updates/pending_db_world/Verified_Build.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 data/sql/updates/pending_db_world/Verified_Build.sql diff --git a/data/sql/updates/pending_db_world/Verified_Build.sql b/data/sql/updates/pending_db_world/Verified_Build.sql new file mode 100644 index 000000000..e679ef549 --- /dev/null +++ b/data/sql/updates/pending_db_world/Verified_Build.sql @@ -0,0 +1,3 @@ + +-- Add Verified Build +UPDATE `creature` SET `VerifiedBuild` = 59185 WHERE (`id1` = 28406) AND (`guid` IN (129500, 129501, 129502, 129503, 129520, 129529, 129530, 129531, 129532, 129546, 129547, 129556)); From 3c2ccc50315e546348ab89b6285d15e6b80e12c1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 13 Apr 2025 15:00:09 +0000 Subject: [PATCH 24/46] chore(DB): import pending files Referenced commit(s): ab8c09215c434b01ca0430d42adacaba02b738fa --- .../Verified_Build.sql => db_world/2025_04_13_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/Verified_Build.sql => db_world/2025_04_13_01.sql} (82%) diff --git a/data/sql/updates/pending_db_world/Verified_Build.sql b/data/sql/updates/db_world/2025_04_13_01.sql similarity index 82% rename from data/sql/updates/pending_db_world/Verified_Build.sql rename to data/sql/updates/db_world/2025_04_13_01.sql index e679ef549..e9e69565a 100644 --- a/data/sql/updates/pending_db_world/Verified_Build.sql +++ b/data/sql/updates/db_world/2025_04_13_01.sql @@ -1,3 +1,4 @@ +-- DB update 2025_04_13_00 -> 2025_04_13_01 -- Add Verified Build UPDATE `creature` SET `VerifiedBuild` = 59185 WHERE (`id1` = 28406) AND (`guid` IN (129500, 129501, 129502, 129503, 129520, 129529, 129530, 129531, 129532, 129546, 129547, 129556)); From d4dda607b4b1a2b0874c8352c01997348a66ee7c Mon Sep 17 00:00:00 2001 From: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> Date: Sun, 13 Apr 2025 13:25:10 -0400 Subject: [PATCH 25/46] fix(DB/Creature): Add model data for Entropius display. (#21920) --- data/sql/updates/pending_db_world/entropius-model-data.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 data/sql/updates/pending_db_world/entropius-model-data.sql diff --git a/data/sql/updates/pending_db_world/entropius-model-data.sql b/data/sql/updates/pending_db_world/entropius-model-data.sql new file mode 100644 index 000000000..6bbbfa0cb --- /dev/null +++ b/data/sql/updates/pending_db_world/entropius-model-data.sql @@ -0,0 +1 @@ +UPDATE `creature_model_info` SET `BoundingRadius` = 6, `CombatReach` = 6 WHERE `DisplayID` = 23428; From 98ea3b331e72b3c605c085d14fe78165726e93d4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 13 Apr 2025 17:26:11 +0000 Subject: [PATCH 26/46] chore(DB): import pending files Referenced commit(s): d4dda607b4b1a2b0874c8352c01997348a66ee7c --- .../entropius-model-data.sql => db_world/2025_04_13_02.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/entropius-model-data.sql => db_world/2025_04_13_02.sql} (69%) diff --git a/data/sql/updates/pending_db_world/entropius-model-data.sql b/data/sql/updates/db_world/2025_04_13_02.sql similarity index 69% rename from data/sql/updates/pending_db_world/entropius-model-data.sql rename to data/sql/updates/db_world/2025_04_13_02.sql index 6bbbfa0cb..ad16c575b 100644 --- a/data/sql/updates/pending_db_world/entropius-model-data.sql +++ b/data/sql/updates/db_world/2025_04_13_02.sql @@ -1 +1,2 @@ +-- DB update 2025_04_13_01 -> 2025_04_13_02 UPDATE `creature_model_info` SET `BoundingRadius` = 6, `CombatReach` = 6 WHERE `DisplayID` = 23428; From d68bf367625a56989c3be9e7a2c5410f123a56ee Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Sun, 13 Apr 2025 13:43:28 -0500 Subject: [PATCH 27/46] fix(Scripts/SunwellPlateau): Add taunt immunity to Entropius (#21918) --- data/sql/updates/pending_db_world/rev_1744566662130496377.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1744566662130496377.sql diff --git a/data/sql/updates/pending_db_world/rev_1744566662130496377.sql b/data/sql/updates/pending_db_world/rev_1744566662130496377.sql new file mode 100644 index 000000000..cdce852b8 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1744566662130496377.sql @@ -0,0 +1,2 @@ +-- Set immune to taunt +UPDATE `creature_template` SET `flags_extra` = `flags_extra` |256 WHERE (`entry` = 25840); From e43550a12cdd4c4544341013698afc56a5403e79 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 13 Apr 2025 18:44:27 +0000 Subject: [PATCH 28/46] chore(DB): import pending files Referenced commit(s): d68bf367625a56989c3be9e7a2c5410f123a56ee --- .../rev_1744566662130496377.sql => db_world/2025_04_13_03.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1744566662130496377.sql => db_world/2025_04_13_03.sql} (72%) diff --git a/data/sql/updates/pending_db_world/rev_1744566662130496377.sql b/data/sql/updates/db_world/2025_04_13_03.sql similarity index 72% rename from data/sql/updates/pending_db_world/rev_1744566662130496377.sql rename to data/sql/updates/db_world/2025_04_13_03.sql index cdce852b8..2e8a94662 100644 --- a/data/sql/updates/pending_db_world/rev_1744566662130496377.sql +++ b/data/sql/updates/db_world/2025_04_13_03.sql @@ -1,2 +1,3 @@ +-- DB update 2025_04_13_02 -> 2025_04_13_03 -- Set immune to taunt UPDATE `creature_template` SET `flags_extra` = `flags_extra` |256 WHERE (`entry` = 25840); From 7eb5f20617f0cb5fc8e2abc2f0a0f04c2ebb17ee Mon Sep 17 00:00:00 2001 From: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> Date: Sun, 13 Apr 2025 14:51:50 -0400 Subject: [PATCH 29/46] fix(DB/Creature): Remove unnecessary Netherwing targetting dummy creatures. (#21867) --- data/sql/updates/pending_db_world/netherwing-bunnies.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 data/sql/updates/pending_db_world/netherwing-bunnies.sql diff --git a/data/sql/updates/pending_db_world/netherwing-bunnies.sql b/data/sql/updates/pending_db_world/netherwing-bunnies.sql new file mode 100644 index 000000000..cf6f7396b --- /dev/null +++ b/data/sql/updates/pending_db_world/netherwing-bunnies.sql @@ -0,0 +1 @@ +DELETE FROM `creature` WHERE `id1` = 22317 AND `guid` IN (78506, 78507); From e673e095a60bdec61bab8a77f6eae93505d6a80d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 13 Apr 2025 18:53:19 +0000 Subject: [PATCH 30/46] chore(DB): import pending files Referenced commit(s): 7eb5f20617f0cb5fc8e2abc2f0a0f04c2ebb17ee --- .../netherwing-bunnies.sql => db_world/2025_04_13_04.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/netherwing-bunnies.sql => db_world/2025_04_13_04.sql} (62%) diff --git a/data/sql/updates/pending_db_world/netherwing-bunnies.sql b/data/sql/updates/db_world/2025_04_13_04.sql similarity index 62% rename from data/sql/updates/pending_db_world/netherwing-bunnies.sql rename to data/sql/updates/db_world/2025_04_13_04.sql index cf6f7396b..73ad5e2ce 100644 --- a/data/sql/updates/pending_db_world/netherwing-bunnies.sql +++ b/data/sql/updates/db_world/2025_04_13_04.sql @@ -1 +1,2 @@ +-- DB update 2025_04_13_03 -> 2025_04_13_04 DELETE FROM `creature` WHERE `id1` = 22317 AND `guid` IN (78506, 78507); From 20584bc0a610fdc493d36b3260068b6d694871c9 Mon Sep 17 00:00:00 2001 From: Localhost <40755539+r0m1ntik@users.noreply.github.com> Date: Mon, 14 Apr 2025 11:53:12 +0200 Subject: [PATCH 31/46] =?UTF-8?q?fix(Scripts/Creature):=20Crash=20for=20np?= =?UTF-8?q?c=5Fcaptured=5Fberyl=5Fsorcerer=20by=20secur=E2=80=A6=20(#21889?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: localhost --- .../scripts/Northrend/zone_borean_tundra.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp index 4885663ff..f647e8279 100644 --- a/src/server/scripts/Northrend/zone_borean_tundra.cpp +++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp @@ -710,16 +710,23 @@ public: switch (eventId) { case EVENT_ADD_ARCANE_CHAINS: - if (Player* summoner = me->ToTempSummon()->GetSummonerUnit()->ToPlayer()) + if (TempSummon* tempSummon = me->ToTempSummon()) { - summoner->CastSpell(summoner, SPELL_ARCANE_CHAINS_CHANNEL_II, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_AURA_INTERRUPT_FLAGS & ~TRIGGERED_IGNORE_CAST_ITEM & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST & ~TRIGGERED_IGNORE_GCD)); - _events.ScheduleEvent(EVENT_FOLLOW_PLAYER, 1s); + if (Unit* summoner = tempSummon->GetSummonerUnit()) + { + summoner->CastSpell(summoner, SPELL_ARCANE_CHAINS_CHANNEL_II, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_AURA_INTERRUPT_FLAGS & ~TRIGGERED_IGNORE_CAST_ITEM & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST & ~TRIGGERED_IGNORE_GCD)); + _events.ScheduleEvent(EVENT_FOLLOW_PLAYER, 1s); + } } break; + case EVENT_FOLLOW_PLAYER: - if (Player* summoner = me->ToTempSummon()->GetSummonerUnit()->ToPlayer()) + if (TempSummon* tempSummon = me->ToTempSummon()) { - StartFollow(summoner); + if (Player* summoner = tempSummon->GetSummonerUnit()->ToPlayer()) + { + StartFollow(summoner); + } } break; } From 607f0579e7a5b5a5971de31a5a698a6f53975de8 Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Mon, 14 Apr 2025 11:16:54 -0500 Subject: [PATCH 32/46] fix(Scripts/SunwellPlateau): Move Dark Fiend from SmartAI to ScriptedAI with corrected despawn behavior (#21910) --- .../rev_1744470192125627678.sql | 5 + .../SunwellPlateau/boss_muru.cpp | 93 ++++++++++++++++++- 2 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1744470192125627678.sql diff --git a/data/sql/updates/pending_db_world/rev_1744470192125627678.sql b/data/sql/updates/pending_db_world/rev_1744470192125627678.sql new file mode 100644 index 000000000..6849187e5 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1744470192125627678.sql @@ -0,0 +1,5 @@ +-- Remove SmartAI from dark fiend to ScriptedAI (c++) +UPDATE `creature_template` SET + `AIName` = '', + `ScriptName` = 'npc_dark_fiend' +WHERE `entry` = 25744; diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index b3d1949e1..1b987e7b3 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -51,7 +51,14 @@ enum Spells SPELL_BLACK_HOLE_SUMMON_VISUAL2 = 46247, SPELL_BLACK_HOLE_VISUAL2 = 46235, SPELL_BLACK_HOLE_PASSIVE = 46228, - SPELL_BLACK_HOLE_EFFECT = 46230 + SPELL_BLACK_HOLE_EFFECT = 46230, + + // Dark Fiend Spells + SPELL_DARK_FIEND_APPEARANCE = 45934, + SPELL_DARK_FIEND_SECONDARY = 45936, + SPELL_DARK_FIEND_TRIGGER = 45944 + // It is currently unkown why Dark Fiend Casts this or what it should do + //SPELL_DARK_FIEND_TRIGGER_SINGLE = 45943 }; struct boss_muru : public BossAI @@ -67,6 +74,17 @@ struct boss_muru : public BossAI me->m_Events.KillAllEvents(false); } + void MoveInLineOfSight(Unit* who) override + { + // Radius of room is ~38.5f this might need adjusting a bit + // Radius ~36.0 is right inside + // Radius 20.0 is outer circle + if (!me->IsInCombat() && who->IsPlayer() && me->IsWithinDistInMap(who, 25.0f)) + { + me->SetInCombatWithZone(); + } + } + void JustEngagedWith(Unit* who) override { BossAI::JustEngagedWith(who); @@ -174,6 +192,76 @@ struct boss_entropius : public ScriptedAI } }; +struct npc_dark_fiend : public ScriptedAI +{ + npc_dark_fiend(Creature* creature) : ScriptedAI(creature) { } + + void Reset() override + { + _lastVictimGUID.Clear(); + _spellCast = false; + + me->SetReactState(REACT_PASSIVE); + DoCast(me, SPELL_DARK_FIEND_APPEARANCE); + DoCast(me, SPELL_DARK_FIEND_SECONDARY); + + me->m_Events.AddEventAtOffset([this]() { + me->SetReactState(REACT_AGGRESSIVE); + if (Unit* target = SelectTargetFromPlayerList(200.0f, 0, true)) + { + AttackStart(target); + me->AddThreat(target, 100000.0f); + } + }, 1s, 2s); + } + + void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damagetype*/, SpellSchoolMask /*schoolMask*/) override + { + if (damage >= me->GetHealth()) + damage = me->GetHealth() - me->GetMaxHealth() * 0.01f; + } + + void UpdateAI(uint32 /*diff*/) override + { + if (!me->HasAura(SPELL_DARK_FIEND_APPEARANCE)) + { + me->DespawnOrUnsummon(); + return; + } + + // Check if victim has changed or disappeared + Unit* currentVictim = me->GetVictim(); + ObjectGuid currentVictimGUID = currentVictim ? currentVictim->GetGUID() : ObjectGuid::Empty; + + if (_lastVictimGUID != currentVictimGUID) + { + // If had a victim before but now it's gone + if (!_lastVictimGUID.IsEmpty() && currentVictimGUID.IsEmpty()) + me->DespawnOrUnsummon(); + + _lastVictimGUID = currentVictimGUID; + } + + if (!UpdateVictim()) + return; + + if (!_spellCast && currentVictim && me->IsWithinMeleeRange(currentVictim, 2.0f)) + { + DoCast(me, SPELL_DARK_FIEND_TRIGGER); + _spellCast = true; + me->m_Events.AddEventAtOffset([this]() { + me->DespawnOrUnsummon(); + }, 1s); + } + + DoMeleeAttackIfReady(); + } + +private: + ObjectGuid _lastVictimGUID; + bool _spellCast; +}; + struct npc_singularity : public NullCreatureAI { npc_singularity(Creature* creature) : NullCreatureAI(creature) { } @@ -270,7 +358,7 @@ class spell_muru_darkness_aura : public AuraScript void OnPeriodic(AuraEffect const* aurEff) { - if (aurEff->GetTickNumber() == 3) + if (aurEff->GetTickNumber() == 2) for (uint8 i = 0; i < 8; ++i) GetUnitOwner()->CastSpell(GetUnitOwner(), SPELL_SUMMON_DARK_FIEND + i, true); } @@ -390,6 +478,7 @@ void AddSC_boss_muru() RegisterSunwellPlateauCreatureAI(boss_muru); RegisterSunwellPlateauCreatureAI(boss_entropius); RegisterSunwellPlateauCreatureAI(npc_singularity); + RegisterSunwellPlateauCreatureAI(npc_dark_fiend); RegisterSpellScript(spell_muru_summon_blood_elves_periodic_aura); RegisterSpellScript(spell_muru_darkness_aura); From 273251054ce506e68960b5ec3edeb726cd42be96 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 14 Apr 2025 16:17:55 +0000 Subject: [PATCH 33/46] chore(DB): import pending files Referenced commit(s): 607f0579e7a5b5a5971de31a5a698a6f53975de8 --- .../rev_1744470192125627678.sql => db_world/2025_04_14_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1744470192125627678.sql => db_world/2025_04_14_00.sql} (78%) diff --git a/data/sql/updates/pending_db_world/rev_1744470192125627678.sql b/data/sql/updates/db_world/2025_04_14_00.sql similarity index 78% rename from data/sql/updates/pending_db_world/rev_1744470192125627678.sql rename to data/sql/updates/db_world/2025_04_14_00.sql index 6849187e5..81b5b6e93 100644 --- a/data/sql/updates/pending_db_world/rev_1744470192125627678.sql +++ b/data/sql/updates/db_world/2025_04_14_00.sql @@ -1,3 +1,4 @@ +-- DB update 2025_04_13_04 -> 2025_04_14_00 -- Remove SmartAI from dark fiend to ScriptedAI (c++) UPDATE `creature_template` SET `AIName` = '', From b4165d32402ca50e9f9c7eedef2a85528a942ff4 Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Tue, 15 Apr 2025 12:42:11 -0500 Subject: [PATCH 34/46] fix(DB/Quest) Return to Thrallmar has proper prerequisite quest Mission: Gateways Murketh and Shaadraz (#21856) --- data/sql/updates/pending_db_world/rev_1743779900893505053.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1743779900893505053.sql diff --git a/data/sql/updates/pending_db_world/rev_1743779900893505053.sql b/data/sql/updates/pending_db_world/rev_1743779900893505053.sql new file mode 100644 index 000000000..ac9f74511 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1743779900893505053.sql @@ -0,0 +1,2 @@ +-- Set Mission: Gateways Murketh and Shaadraz as prerequisted to Return to Thrallmar +UPDATE `quest_template_addon` SET `PrevQuestID` = 10129 WHERE (`ID` = 10388); From fd62c99670c1851f44a74f54bc5f3b2a7e421087 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 15 Apr 2025 17:43:13 +0000 Subject: [PATCH 35/46] chore(DB): import pending files Referenced commit(s): b4165d32402ca50e9f9c7eedef2a85528a942ff4 --- .../rev_1743779900893505053.sql => db_world/2025_04_15_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1743779900893505053.sql => db_world/2025_04_15_00.sql} (78%) diff --git a/data/sql/updates/pending_db_world/rev_1743779900893505053.sql b/data/sql/updates/db_world/2025_04_15_00.sql similarity index 78% rename from data/sql/updates/pending_db_world/rev_1743779900893505053.sql rename to data/sql/updates/db_world/2025_04_15_00.sql index ac9f74511..cd61eb7f9 100644 --- a/data/sql/updates/pending_db_world/rev_1743779900893505053.sql +++ b/data/sql/updates/db_world/2025_04_15_00.sql @@ -1,2 +1,3 @@ +-- DB update 2025_04_14_00 -> 2025_04_15_00 -- Set Mission: Gateways Murketh and Shaadraz as prerequisted to Return to Thrallmar UPDATE `quest_template_addon` SET `PrevQuestID` = 10129 WHERE (`ID` = 10388); From 5b957ab403904142ba4d261105accf010b0700e8 Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Tue, 15 Apr 2025 17:02:44 -0500 Subject: [PATCH 36/46] fix(Script/Sunwell): Adjust Singularity behaviors (#21919) --- .../rev_1744559106171295151.sql | 2 + .../SunwellPlateau/boss_muru.cpp | 37 ++++++++++++++++--- 2 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1744559106171295151.sql diff --git a/data/sql/updates/pending_db_world/rev_1744559106171295151.sql b/data/sql/updates/pending_db_world/rev_1744559106171295151.sql new file mode 100644 index 000000000..61480da43 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1744559106171295151.sql @@ -0,0 +1,2 @@ +-- Singularity speed +UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 0.7142 WHERE (`entry` = 25855); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 1b987e7b3..3df6ad0c5 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -285,27 +285,50 @@ struct npc_singularity : public NullCreatureAI me->m_Events.AddEventAtOffset([&] { DoCastSelf(SPELL_BLACK_HOLE_VISUAL2, true); DoCastSelf(SPELL_BLACK_HOLE_PASSIVE, true); + + // Start following players after visuals are complete + FindAndFollowTarget(); }, 8s); me->m_Events.AddEventAtOffset([&] { me->KillSelf(); }, 17s); + } - scheduler.Schedule(8s, [this](TaskContext context) + void FindAndFollowTarget() + { + scheduler.Schedule(1s, [this](TaskContext context) { + Player* target = nullptr; + auto const& playerList = me->GetMap()->GetPlayers(); for (auto const& playerRef : playerList) { if (Player* player = playerRef.GetSource()) + { if (me->IsWithinLOSInMap(player) && player->IsAlive() && !player->HasAura(SPELL_BLACK_HOLE_EFFECT)) { - me->GetMotionMaster()->MovePoint(0, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), false, true); - context.Repeat(); - return; + target = player; + break; } + } } - context.Repeat(1s); + if (target) + { + me->GetMotionMaster()->Clear(); + me->GetMotionMaster()->MoveFollow(target, 0.0f, 0.0f); + + scheduler.Schedule(6s, [this](TaskContext) + { + FindAndFollowTarget(); + }); + } + else + { + // No valid target found, check again soon + context.Repeat(1s); + } }); } @@ -410,7 +433,9 @@ class spell_entropius_black_hole_effect : public SpellScript if (target->GetDistance(GetCaster()) < 5.0f) { float o = frand(0, 2 * M_PI); - pos.Relocate(GetCaster()->GetPositionX() + 4.0f * cos(o), GetCaster()->GetPositionY() + 4.0f * std::sin(o), GetCaster()->GetPositionZ() + frand(10.0f, 15.0f)); + pos.Relocate(GetCaster()->GetPositionX() + 8.0f * cos(o), + GetCaster()->GetPositionY() + 8.0f * std::sin(o), + GetCaster()->GetPositionZ() + frand(2.0f, 5.0f)); } else pos.Relocate(GetCaster()->GetPositionX(), GetCaster()->GetPositionY(), GetCaster()->GetPositionZ() + 1.0f); From 35d593ecb5ab75489413875269f550e6829a781b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 15 Apr 2025 22:03:43 +0000 Subject: [PATCH 37/46] chore(DB): import pending files Referenced commit(s): 5b957ab403904142ba4d261105accf010b0700e8 --- .../rev_1744559106171295151.sql => db_world/2025_04_15_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1744559106171295151.sql => db_world/2025_04_15_01.sql} (72%) diff --git a/data/sql/updates/pending_db_world/rev_1744559106171295151.sql b/data/sql/updates/db_world/2025_04_15_01.sql similarity index 72% rename from data/sql/updates/pending_db_world/rev_1744559106171295151.sql rename to data/sql/updates/db_world/2025_04_15_01.sql index 61480da43..a9606d2bf 100644 --- a/data/sql/updates/pending_db_world/rev_1744559106171295151.sql +++ b/data/sql/updates/db_world/2025_04_15_01.sql @@ -1,2 +1,3 @@ +-- DB update 2025_04_15_00 -> 2025_04_15_01 -- Singularity speed UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 0.7142 WHERE (`entry` = 25855); From 0fc912d867261610475fe4a232a1b8efa38dca4c Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Wed, 16 Apr 2025 11:24:29 -0500 Subject: [PATCH 38/46] fix(Script/Sunwell): M'uru height check (#21942) --- src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 3df6ad0c5..58fb429ab 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -79,7 +79,7 @@ struct boss_muru : public BossAI // Radius of room is ~38.5f this might need adjusting a bit // Radius ~36.0 is right inside // Radius 20.0 is outer circle - if (!me->IsInCombat() && who->IsPlayer() && me->IsWithinDistInMap(who, 25.0f)) + if (!me->IsInCombat() && who->IsPlayer() && who->GetPositionZ() > 69.0f && me->IsWithinDistInMap(who, 25.0f)) { me->SetInCombatWithZone(); } From f24e54d0370bfb0610323b06101315a3d919b306 Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Wed, 16 Apr 2025 20:33:10 -0500 Subject: [PATCH 39/46] fix(Scripts/SunwellPlateau): Limit Kil'jaeden's Armageddon ability (#21932) --- .../SunwellPlateau/boss_kiljaeden.cpp | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index 66324b0cf..fc4abd434 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -324,8 +324,14 @@ struct boss_kiljaeden : public BossAI }); ScheduleTimedEvent(15s, [&] { + me->RemoveAurasDueToSpell(SPELL_ARMAGEDDON_PERIODIC); Talk(EMOTE_KJ_DARKNESS); DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS); + + me->m_Events.AddEventAtOffset([this]() { + if (me->IsAlive() && me->IsInCombat()) + DoCastSelf(SPELL_ARMAGEDDON_PERIODIC, true); + }, 9s); }, 45s); ScheduleTimedEvent(10s, [&] { @@ -385,8 +391,14 @@ struct boss_kiljaeden : public BossAI ScheduleBasicAbilities(); ScheduleTimedEvent(25s, [&] { + me->RemoveAurasDueToSpell(SPELL_ARMAGEDDON_PERIODIC); Talk(EMOTE_KJ_DARKNESS); DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS); + + me->m_Events.AddEventAtOffset([this]() { + if (me->IsAlive() && me->IsInCombat()) + DoCastSelf(SPELL_ARMAGEDDON_PERIODIC, true); + }, 9s); }, 25s); ScheduleTimedEvent(1500ms, [&] { @@ -525,7 +537,7 @@ struct boss_kiljaeden : public BossAI summon->CastSpell(summon, SPELL_ARMAGEDDON_VISUAL, true); summon->SetPosition(summon->GetPositionX(), summon->GetPositionY(), summon->GetPositionZ() + 20.0f, 0.0f); summon->m_Events.AddEvent(new CastArmageddon(summon), summon->m_Events.CalculateTime(6000)); - summon->DespawnOrUnsummon(10000); + summon->DespawnOrUnsummon(urand(8000, 10000)); } } @@ -1087,8 +1099,15 @@ class spell_kiljaeden_armageddon_periodic_aura : public AuraScript void HandlePeriodic(AuraEffect const* aurEff) { PreventDefaultAction(); - if (Unit* target = GetUnitOwner()->GetAI()->SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true)) - GetUnitOwner()->CastSpell(target, GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell, true); + Unit* caster = GetUnitOwner(); + + std::list armageddons; + caster->GetCreatureListWithEntryInGrid(armageddons, NPC_ARMAGEDDON_TARGET, 100.0f); + if (armageddons.size() >= 3) + return; + + if (Unit* target = caster->GetAI()->SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true)) + caster->CastSpell(target, GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell, true); } void Register() override From c66972b900837ec84b378652dfb0a6df0d7710b0 Mon Sep 17 00:00:00 2001 From: Anton Popovichenko Date: Thu, 17 Apr 2025 09:27:49 +0200 Subject: [PATCH 40/46] fix(Core/Scripts): Fix heap-use-after-free in Fingers of Frost proc handler (#21943) --- src/server/scripts/Spells/spell_mage.cpp | 36 +++++++++++++++--------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index a708c8044..fedb34c2a 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -979,37 +979,40 @@ class spell_mage_fingers_of_frost_proc_aura : public AuraScript { _chance = 100.f; _spell = eventInfo.GetProcSpell(); + _procSpellDelayMoment = std::nullopt; if (!_spell || _spell->GetDelayMoment() <= 0) - { PreventDefaultAction(); - } + + if (_spell) + _procSpellDelayMoment = _spell->GetDelayMoment(); } else { - if (eventInfo.GetSpellPhaseMask() == PROC_SPELL_PHASE_FINISH || ((_spell && _spell->GetDelayMoment() > 0) || !eventInfo.GetDamageInfo())) - { + if (eventInfo.GetSpellPhaseMask() == PROC_SPELL_PHASE_FINISH || (_procSpellDelayMoment.value_or(0) > 0 || !eventInfo.GetDamageInfo())) PreventDefaultAction(); - } - _chance = 0.f; - _spell = nullptr; + ResetProcState(); } } void HandleAfterEffectProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) { - if (eventInfo.GetSpellPhaseMask() == PROC_SPELL_PHASE_HIT) + switch (eventInfo.GetSpellPhaseMask()) { - _chance = 100.f; - } - else if (eventInfo.GetSpellPhaseMask() == PROC_SPELL_PHASE_FINISH) - { - _chance = 0.f; - _spell = nullptr; + case PROC_SPELL_PHASE_HIT: _chance = 100.f; break; + case PROC_SPELL_PHASE_FINISH: ResetProcState(); break; + default: break; } } + void ResetProcState() + { + _chance = 0.f; + _spell = nullptr; + _procSpellDelayMoment = std::nullopt; + } + void Register() { DoCheckProc += AuraCheckProcFn(spell_mage_fingers_of_frost_proc_aura::CheckProc); @@ -1019,10 +1022,15 @@ class spell_mage_fingers_of_frost_proc_aura : public AuraScript } public: + // May point to a deleted object. + // Dereferencing is unsafe unless validity is guaranteed by the caller. Spell const* GetProcSpell() const { return _spell; } private: float _chance = 0.f; + std::optional _procSpellDelayMoment = std::nullopt; + + // May be dangling; points to memory that might no longer be valid. Spell const* _spell = nullptr; }; From 0d30816602639cb446712b6a620abe376aed9bd0 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Thu, 17 Apr 2025 05:08:35 -0300 Subject: [PATCH 41/46] fix(Scripts/SunwellPlateau): Void Sentinels spawn at floor level (#21946) --- .../updates/pending_db_world/rev_1744850939591523000.sql | 5 +++++ .../scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1744850939591523000.sql diff --git a/data/sql/updates/pending_db_world/rev_1744850939591523000.sql b/data/sql/updates/pending_db_world/rev_1744850939591523000.sql new file mode 100644 index 000000000..f205cb597 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1744850939591523000.sql @@ -0,0 +1,5 @@ +-- +UPDATE `spell_script_names` SET `ScriptName` = 'spell_gen_summon_target_floor' WHERE `ScriptName` = 'spell_muru_blackhole'; +DELETE FROM `spell_script_names` WHERE `spell_id` = 45978; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(45978, 'spell_gen_summon_target_floor'); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 58fb429ab..c1f8ff8bc 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -475,9 +475,9 @@ class spell_entropius_negative_energy_periodic : public AuraScript } }; -class spell_muru_blackhole : public SpellScript +class spell_gen_summon_target_floor : public SpellScript { - PrepareSpellScript(spell_muru_blackhole); + PrepareSpellScript(spell_gen_summon_target_floor); void ChangeSummonPos(SpellEffIndex /*effIndex*/) { @@ -494,7 +494,7 @@ class spell_muru_blackhole : public SpellScript void Register() override { - OnEffectHit += SpellEffectFn(spell_muru_blackhole::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON); + OnEffectHit += SpellEffectFn(spell_gen_summon_target_floor::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON); } }; @@ -510,5 +510,5 @@ void AddSC_boss_muru() RegisterSpellScript(spell_entropius_void_zone_visual_aura); RegisterSpellScript(spell_entropius_black_hole_effect); RegisterSpellScript(spell_entropius_negative_energy_periodic); - RegisterSpellScript(spell_muru_blackhole); + RegisterSpellScript(spell_gen_summon_target_floor); } From c43f435d102735999296a33230ff0065e520c1a3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 17 Apr 2025 08:09:37 +0000 Subject: [PATCH 42/46] chore(DB): import pending files Referenced commit(s): 0d30816602639cb446712b6a620abe376aed9bd0 --- .../rev_1744850939591523000.sql => db_world/2025_04_17_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1744850939591523000.sql => db_world/2025_04_17_00.sql} (87%) diff --git a/data/sql/updates/pending_db_world/rev_1744850939591523000.sql b/data/sql/updates/db_world/2025_04_17_00.sql similarity index 87% rename from data/sql/updates/pending_db_world/rev_1744850939591523000.sql rename to data/sql/updates/db_world/2025_04_17_00.sql index f205cb597..f1b7f49f4 100644 --- a/data/sql/updates/pending_db_world/rev_1744850939591523000.sql +++ b/data/sql/updates/db_world/2025_04_17_00.sql @@ -1,3 +1,4 @@ +-- DB update 2025_04_15_01 -> 2025_04_17_00 -- UPDATE `spell_script_names` SET `ScriptName` = 'spell_gen_summon_target_floor' WHERE `ScriptName` = 'spell_muru_blackhole'; DELETE FROM `spell_script_names` WHERE `spell_id` = 45978; From a79c725431bbb42ead663c497a33cd2a42a3b77c Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Thu, 17 Apr 2025 14:51:20 +0200 Subject: [PATCH 43/46] fix(DB/Creature): Some SwP packs are now in formation. (#21951) --- .../pending_db_world/SwP_formations.sql | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 data/sql/updates/pending_db_world/SwP_formations.sql diff --git a/data/sql/updates/pending_db_world/SwP_formations.sql b/data/sql/updates/pending_db_world/SwP_formations.sql new file mode 100644 index 000000000..a48d8298a --- /dev/null +++ b/data/sql/updates/pending_db_world/SwP_formations.sql @@ -0,0 +1,28 @@ + +-- Add Creature Formations +DELETE FROM `creature_formations` WHERE `leaderGUID` = 54835; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES +(54835, 54835, 0, 0, 3, 0, 0), +(54835, 42660, 0, 0, 3, 0, 0), +(54835, 42591, 0, 0, 3, 0, 0), +(54835, 42592, 0, 0, 3, 0, 0), +(54835, 54825, 0, 0, 3, 0, 0), +(54835, 42657, 0, 0, 3, 0, 0); + +DELETE FROM `creature_formations` WHERE `leaderGUID` = 42582; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES +(42582, 42582, 0, 0, 3, 0, 0), +(42582, 42894, 0, 0, 3, 0, 0), +(42582, 54832, 0, 0, 3, 0, 0), +(42582, 42647, 0, 0, 3, 0, 0), +(42582, 43439, 0, 0, 3, 0, 0), +(42582, 54820, 0, 0, 3, 0, 0); + +DELETE FROM `creature_formations` WHERE `leaderGUID` = 42585; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES +(42585, 42585, 0, 0, 3, 0, 0), +(42585, 42870, 0, 0, 3, 0, 0), +(42585, 42584, 0, 0, 3, 0, 0), +(42585, 54830, 0, 0, 3, 0, 0), +(42585, 54827, 0, 0, 3, 0, 0), +(42585, 42644, 0, 0, 3, 0, 0); From 6ab0acb8ff4d223e815f61b31b4a1abd03976e37 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 17 Apr 2025 12:52:25 +0000 Subject: [PATCH 44/46] chore(DB): import pending files Referenced commit(s): a79c725431bbb42ead663c497a33cd2a42a3b77c --- .../SwP_formations.sql => db_world/2025_04_17_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/SwP_formations.sql => db_world/2025_04_17_01.sql} (96%) diff --git a/data/sql/updates/pending_db_world/SwP_formations.sql b/data/sql/updates/db_world/2025_04_17_01.sql similarity index 96% rename from data/sql/updates/pending_db_world/SwP_formations.sql rename to data/sql/updates/db_world/2025_04_17_01.sql index a48d8298a..bea230807 100644 --- a/data/sql/updates/pending_db_world/SwP_formations.sql +++ b/data/sql/updates/db_world/2025_04_17_01.sql @@ -1,3 +1,4 @@ +-- DB update 2025_04_17_00 -> 2025_04_17_01 -- Add Creature Formations DELETE FROM `creature_formations` WHERE `leaderGUID` = 54835; From 8775bd85c4601fc639b1c359c41ffa0c8957b8d4 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Thu, 17 Apr 2025 10:01:18 -0300 Subject: [PATCH 45/46] =?UTF-8?q?fix(Scripts/SunwellPlateau):=20Fix=20Alyt?= =?UTF-8?q?hess=20not=20casting=20Flame=20Sear=20in=20p=E2=80=A6=20(#21948?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SunwellPlateau/boss_eredar_twins.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index b76ed95a0..54cc5f71f 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -229,15 +229,20 @@ struct boss_alythess : public BossAI me->CastSpell(me, SPELL_EMPOWER, true); scheduler.CancelAll(); - // PYROGENICS Phase 2 + + ScheduleTimedEvent(1s, [&] { + DoCastVictim(SPELL_BLAZE); + }, 3800ms); + scheduler.Schedule(16s, GROUP_PYROGENICS, [this](TaskContext context) { DoCastSelf(SPELL_PYROGENICS); context.Repeat(16s, 28s); }); - // FLAME_SEAR phase 2 + ScheduleTimedEvent(8s, 10s, [&] { me->CastCustomSpell(SPELL_FLAME_SEAR, SPELLVALUE_MAX_TARGETS, urand(4, 5), me, TRIGGERED_NONE); - }, 8s, 10s, GROUP_FLAME_SEAR); + }, 8s, 10s); + ScheduleTimedEvent(20s, 26s, [&] { Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f); if (!target) @@ -272,7 +277,7 @@ struct boss_alythess : public BossAI // FLAME_SEAR Phase 1 ScheduleTimedEvent(10s, 15s, [&] { me->CastCustomSpell(SPELL_FLAME_SEAR, SPELLVALUE_MAX_TARGETS, urand(4, 5), me, TRIGGERED_NONE); - }, 10s, 15s, GROUP_FLAME_SEAR); + }, 10s, 15s); scheduler.Schedule(20s, GROUP_SPECIAL_ABILITY, [this](TaskContext context) { Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f); From 575283f46c34761a1b2f6346600b5ea577c754ad Mon Sep 17 00:00:00 2001 From: Vincent Vanclef Date: Thu, 17 Apr 2025 21:39:05 +0200 Subject: [PATCH 46/46] fix(Core/AutobroadcastMgr): correctly check for existing textId in SendWorldAnnouncement (#21911) --- src/server/game/Autobroadcast/AutobroadcastMgr.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/game/Autobroadcast/AutobroadcastMgr.cpp b/src/server/game/Autobroadcast/AutobroadcastMgr.cpp index a7756c658..f41e27bb0 100644 --- a/src/server/game/Autobroadcast/AutobroadcastMgr.cpp +++ b/src/server/game/Autobroadcast/AutobroadcastMgr.cpp @@ -167,7 +167,7 @@ void AutobroadcastMgr::SendWorldAnnouncement(uint8 textId) // Get player's locale LocaleConstant locale = player->GetSession()->GetSessionDbLocaleIndex(); - if (!_autobroadcasts.empty()) + if (!_autobroadcasts.contains(textId)) return; std::string_view localizedMessage = ObjectMgr::GetLocaleString(_autobroadcasts[textId], locale); @@ -188,7 +188,7 @@ void AutobroadcastMgr::SendNotificationAnnouncement(uint8 textId) // Retrieve player's locale LocaleConstant locale = player->GetSession()->GetSessionDbLocaleIndex(); - if (!_autobroadcasts.count(textId)) + if (!_autobroadcasts.contains(textId)) return; // Get localized message