From a1e1bded356a54d25baa2f362fc5472a84a44723 Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Sat, 28 Dec 2024 02:33:18 +0100 Subject: [PATCH 01/35] fix(Scripts/ICC): Use threatlist for vampiric bite (#21012) Co-authored-by: Grimdhex <176165533+Grimdhex@users.noreply.github.com> --- .../rev_1734867444551549700.sql | 8 +++ .../boss_blood_queen_lana_thel.cpp | 72 +++++++++---------- 2 files changed, 42 insertions(+), 38 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1734867444551549700.sql diff --git a/data/sql/updates/pending_db_world/rev_1734867444551549700.sql b/data/sql/updates/pending_db_world/rev_1734867444551549700.sql new file mode 100644 index 00000000000000..d56fbb1088e89f --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1734867444551549700.sql @@ -0,0 +1,8 @@ +-- +DELETE FROM `spelldifficulty_dbc` WHERE `ID` IN (70867, 70879, 70877, 71623, 70994); +INSERT INTO `spelldifficulty_dbc` (`ID`, `DifficultySpellID_1`, `DifficultySpellID_2`, `DifficultySpellID_3`, `DifficultySpellID_4`) VALUES +(70867, 70867, 71473, 71532, 71533), +(70879, 70879, 71525, 71530, 71531), +(70877, 70877, 71474, 70877, 71474), +(71623, 71623, 71624, 71625, 71626), +(70994, 70994, 71962, 71963, 71964); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp index 4b7ab2e131f1cb..7b47377a214e13 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp @@ -48,6 +48,7 @@ enum Spells SPELL_FRENZIED_BLOODTHIRST_VISUAL = 71949, SPELL_VAMPIRIC_BITE = 71726, SPELL_VAMPIRIC_BITE_DUMMY = 71837, + SPELL_ESSENCE_OF_BLOOD_QUEEN = 70867, SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_PLR = 70879, SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_HEAL = 70872, SPELL_FRENZIED_BLOODTHIRST = 70877, @@ -79,25 +80,10 @@ enum Shadowmourne SPELL_THIRST_QUENCHED = 72154, }; -#define ESSENCE_OF_BLOOD_QUEEN RAID_MODE(70867, 71473, 71532, 71533) -#define ESSENCE_OF_BLOOD_QUEEN_PLR RAID_MODE(70879, 71525, 71530, 71531) -#define FRENZIED_BLOODTHIRST RAID_MODE(70877, 71474, 70877, 71474) -#define DELIRIOUS_SLASH RAID_MODE(71623, 71624, 71625, 71626) -#define PRESENCE_OF_THE_DARKFALLEN RAID_MODE(70994, 71962, 71963, 71964) - -uint32 const vampireAuras[3][MAX_DIFFICULTY] = -{ - {70867, 71473, 71532, 71533}, - {70879, 71525, 71530, 71531}, - {70877, 71474, 70877, 71474}, -}; - bool IsVampire(Unit const* unit) { - uint8 spawnMode = unit->GetMap()->GetSpawnMode(); - for (uint8 i = 0; i < 3; ++i) - if (unit->HasAura(vampireAuras[i][spawnMode])) - return true; + if (unit->HasAnyAuras(SPELL_ESSENCE_OF_BLOOD_QUEEN, SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_PLR, SPELL_FRENZIED_BLOODTHIRST)) + return true; return false; } @@ -134,6 +120,31 @@ Position const centerPos = {4595.7090f, 2769.4190f, 400.6368f, 0.000000f}; Position const airPos = {4595.7090f, 2769.4190f, 422.3893f, 0.000000f}; Position const mincharPos = {4629.3711f, 2782.6089f, 424.6390f, 0.000000f}; +struct VampiricBiteTargetSelector +{ +public: + VampiricBiteTargetSelector(Creature* source) : _source(source) { } + bool operator()(Unit const* target) const + { + if (!target) + return false; + + if (!target->IsPlayer()) + return false; + + if (target->HasAura(SPELL_BLOOD_MIRROR_DAMAGE)) + return false; + + if (IsVampire(target)) + return false; + + return target != _source->GetVictim(); + } + +private: + Creature const* _source; +}; + class boss_blood_queen_lana_thel : public CreatureScript { public: @@ -327,22 +338,7 @@ class boss_blood_queen_lana_thel : public CreatureScript break; case EVENT_VAMPIRIC_BITE: { - Player* target = nullptr; - float maxThreat = 0.0f; - const Map::PlayerList& pl = me->GetMap()->GetPlayers(); - for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr) - if (Player* p = itr->GetSource()) - if (p->IsAlive() && p->GetDistance(me) < 70.0f) - { - float th = me->GetThreatMgr().getThreatWithoutTemp(p); - if (!target || th > maxThreat) - { - target = p; - maxThreat = th; - } - } - - if (target) + if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, VampiricBiteTargetSelector(me))) { me->CastSpell(target, SPELL_VAMPIRIC_BITE, false); me->CastSpell((Unit*)nullptr, SPELL_VAMPIRIC_BITE_DUMMY, true); @@ -513,17 +509,17 @@ class boss_blood_queen_lana_thel : public CreatureScript void CleanAuras() { - instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN); - instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN_PLR); - instance->DoRemoveAurasDueToSpellOnPlayers(FRENZIED_BLOODTHIRST); + instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_ESSENCE_OF_BLOOD_QUEEN); + instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_PLR); + instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_FRENZIED_BLOODTHIRST); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_FRENZIED_BLOODTHIRST_VISUAL); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_UNCONTROLLABLE_FRENZY); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DAMAGE); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_VISUAL); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DUMMY); - instance->DoRemoveAurasDueToSpellOnPlayers(DELIRIOUS_SLASH); + instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_DELIRIOUS_SLASH); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_PACT_OF_THE_DARKFALLEN); - instance->DoRemoveAurasDueToSpellOnPlayers(PRESENCE_OF_THE_DARKFALLEN); + instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_PRESENCE_OF_THE_DARKFALLEN_DUMMY); } bool WasVampire(ObjectGuid guid) From 118c426f7425af5a7c664ae179c16c6aa70d5a6b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 28 Dec 2024 01:34:16 +0000 Subject: [PATCH 02/35] chore(DB): import pending files Referenced commit(s): a1e1bded356a54d25baa2f362fc5472a84a44723 --- .../rev_1734867444551549700.sql => db_world/2024_12_28_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1734867444551549700.sql => db_world/2024_12_28_00.sql} (90%) diff --git a/data/sql/updates/pending_db_world/rev_1734867444551549700.sql b/data/sql/updates/db_world/2024_12_28_00.sql similarity index 90% rename from data/sql/updates/pending_db_world/rev_1734867444551549700.sql rename to data/sql/updates/db_world/2024_12_28_00.sql index d56fbb1088e89f..0b03983e5f64ea 100644 --- a/data/sql/updates/pending_db_world/rev_1734867444551549700.sql +++ b/data/sql/updates/db_world/2024_12_28_00.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_26_02 -> 2024_12_28_00 -- DELETE FROM `spelldifficulty_dbc` WHERE `ID` IN (70867, 70879, 70877, 71623, 70994); INSERT INTO `spelldifficulty_dbc` (`ID`, `DifficultySpellID_1`, `DifficultySpellID_2`, `DifficultySpellID_3`, `DifficultySpellID_4`) VALUES From 638b8ea621bc5d11e22213fa5bb950f189fbef33 Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Sat, 28 Dec 2024 14:23:14 +0100 Subject: [PATCH 03/35] fix(Scripts/Spells): Death Knight Army of the Dead auras (#19795) --- .../rev_1724946417358596409.sql | 13 ++++ src/server/game/Entities/Pet/Pet.cpp | 6 +- src/server/game/Entities/Pet/PetDefines.h | 10 ++- src/server/scripts/Pet/pet_dk.cpp | 4 -- src/server/scripts/Spells/spell_dk.cpp | 71 ++++++++++++++++++- src/server/scripts/Spells/spell_generic.cpp | 60 ++++++++++++++++ 6 files changed, 152 insertions(+), 12 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1724946417358596409.sql diff --git a/data/sql/updates/pending_db_world/rev_1724946417358596409.sql b/data/sql/updates/pending_db_world/rev_1724946417358596409.sql new file mode 100644 index 00000000000000..28cccba32b2c9e --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1724946417358596409.sql @@ -0,0 +1,13 @@ +-- +UPDATE `spell_dbc` +SET `Attributes`=`Attributes`|64, `AttributesEx4`=34603008, `ProcChance`=101, `DurationIndex`=21, +`Effect_1`=6, `Effect_2`=6, `Effect_3`=6, `EffectBasePoints_1`=-1, `EffectBasePoints_2`=-1, `EffectBasePoints_3`=-1, +`ImplicitTargetA_1`=1, `ImplicitTargetA_2`=1, `ImplicitTargetA_3`=1, +`EffectAura_1`=55, `EffectAura_2`=240, `EffectAura_3`=123, +`EffectMultipleValue_1`=1.0, `EffectMultipleValue_2`=1.0, `EffectMultipleValue_3`=1.0, +`EffectMiscValue_3`=124 +WHERE `ID`=67561; +DELETE FROM `spell_script_names` WHERE `spell_id` IN (49040, 67561); +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(49040, 'spell_dk_army_of_the_dead_passive'), +(67561, 'spell_pet_spellhit_expertise_spellpen_scaling'); diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 5f4d3057a586b9..58d7be70e56b82 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -1362,11 +1362,11 @@ bool Guardian::InitStatsForLevel(uint8 petlevel) } case NPC_ARMY_OF_THE_DEAD: { - AddAura(SPELL_HUNTER_PET_SCALING_04, this); - AddAura(SPELL_DK_PET_SCALING_01, this); + AddAura(SPELL_DK_ARMY_OF_THE_DEAD_PASSIVE, this); AddAura(SPELL_DK_PET_SCALING_02, this); AddAura(SPELL_DK_PET_SCALING_03, this); - AddAura(SPELL_PET_AVOIDANCE, this); + AddAura(SPELL_DK_AVOIDANCE, this); + AddAura(SPELL_PET_SCALING_MASTER_06, this); SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - (petlevel / 4))); SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel + (petlevel / 4))); diff --git a/src/server/game/Entities/Pet/PetDefines.h b/src/server/game/Entities/Pet/PetDefines.h index 65de91faad676c..b0bbe57ac7a857 100644 --- a/src/server/game/Entities/Pet/PetDefines.h +++ b/src/server/game/Entities/Pet/PetDefines.h @@ -134,7 +134,9 @@ enum NPCEntries enum PetScalingSpells { SPELL_PET_AVOIDANCE = 32233, + SPELL_PET_SCALING_MASTER_06 = 67561, // Serverside - Pet Scaling - Master Spell 06 - Spell Hit, Expertise, Spell Penetration + // Hunter SPELL_HUNTER_PET_SCALING_01 = 34902, SPELL_HUNTER_PET_SCALING_02 = 34903, SPELL_HUNTER_PET_SCALING_03 = 34904, @@ -190,9 +192,11 @@ enum PetScalingSpells // Death Knight SPELL_ORC_RACIAL_COMMAND_DK = 65221, SPELL_NIGHT_OF_THE_DEAD_AVOIDANCE = 62137, - SPELL_DK_PET_SCALING_01 = 51996, - SPELL_DK_PET_SCALING_02 = 54566, - SPELL_DK_PET_SCALING_03 = 61697 + SPELL_DK_PET_SCALING_01 = 54566, + SPELL_DK_PET_SCALING_02 = 51996, + SPELL_DK_PET_SCALING_03 = 61697, + SPELL_DK_AVOIDANCE = 65220, + SPELL_DK_ARMY_OF_THE_DEAD_PASSIVE = 49040, }; #define PET_FOLLOW_DIST 1.0f diff --git a/src/server/scripts/Pet/pet_dk.cpp b/src/server/scripts/Pet/pet_dk.cpp index 959649e0ff3a85..a0a79b949ec8c6 100644 --- a/src/server/scripts/Pet/pet_dk.cpp +++ b/src/server/scripts/Pet/pet_dk.cpp @@ -303,10 +303,6 @@ class npc_pet_dk_army_of_the_dead : public CreatureScript { CombatAI::InitializeAI(); ((Minion*)me)->SetFollowAngle(rand_norm() * 2 * M_PI); - - // Heroism / Bloodlust immunity - me->ApplySpellImmune(0, IMMUNITY_ID, 32182, true); - me->ApplySpellImmune(0, IMMUNITY_ID, 2825, true); } }; diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index 408ffc314a3e91..3222df8dfb8eac 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -751,8 +751,8 @@ class spell_dk_pet_scaling : public AuraScript // Check just if owner has Ravenous Dead since it's effect is not an aura if (AuraEffect const* rdEff = owner->GetAuraEffect(SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE, SPELLFAMILY_DEATHKNIGHT, 3010, 0)) { - SpellInfo const* spellInfo = rdEff->GetSpellInfo(); // Then get the SpellProto and add the dummy effect value - AddPct(modifier, spellInfo->Effects[EFFECT_1].CalcValue()); // Ravenous Dead edits the original scale + SpellInfo const* spellInfo = rdEff->GetSpellInfo(); // Then get the SpellProto and add the dummy effect value + AddPct(modifier, spellInfo->Effects[EFFECT_1].CalcValue()); // Ravenous Dead edits the original scale } // xinef: Glyph of the Ghoul @@ -2203,6 +2203,72 @@ class spell_dk_will_of_the_necropolis : public AuraScript } }; +// 49040 - Army of the Dead Passive +class spell_dk_army_of_the_dead_passive : public AuraScript +{ + PrepareAuraScript(spell_dk_army_of_the_dead_passive); + + void CalculateAPAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) + { + // army ghoul inherits 6.5% of AP + if (Unit* owner = GetUnitOwner()->GetOwner()) + amount = CalculatePct(std::max(0, owner->GetTotalAttackPowerValue(BASE_ATTACK)), 6.5f); + } + + void CalculateHealthAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) + { + // army ghoul inherits 20% of health + if (Unit* owner = GetUnitOwner()->GetOwner()) + amount = owner->CountPctFromMaxHealth(20); + } + + void CalculateSPAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) + { + // army ghoul inherits 6.5% of AP + if (Unit* owner = GetUnitOwner()->GetOwner()) + amount = CalculatePct(std::max(0, owner->GetTotalAttackPowerValue(BASE_ATTACK)), 6.5f); + } + + void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + if (GetUnitOwner()->IsPet()) + return; + + GetUnitOwner()->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STAT, true, SPELL_BLOCK_TYPE_POSITIVE); + GetUnitOwner()->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE, true, SPELL_BLOCK_TYPE_POSITIVE); + GetUnitOwner()->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_ATTACK_POWER, true, SPELL_BLOCK_TYPE_POSITIVE); + GetUnitOwner()->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_ATTACK_POWER_PCT, true, SPELL_BLOCK_TYPE_POSITIVE); + // Heroism / Bloodlust immunity + GetUnitOwner()->ApplySpellImmune(0, IMMUNITY_ID, 32182, true); + GetUnitOwner()->ApplySpellImmune(0, IMMUNITY_ID, 2825, true); + } + + void CalcPeriodic(AuraEffect const* /*aurEff*/, bool& isPeriodic, int32& amplitude) + { + if (!GetUnitOwner()->IsPet()) + return; + + isPeriodic = true; + amplitude = 2 * IN_MILLISECONDS; + } + + void HandlePeriodic(AuraEffect const* aurEff) + { + PreventDefaultAction(); + GetEffect(aurEff->GetEffIndex())->RecalculateAmount(); + } + + void Register() override + { + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_army_of_the_dead_passive::CalculateAPAmount, EFFECT_0, SPELL_AURA_MOD_ATTACK_POWER); + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_army_of_the_dead_passive::CalculateHealthAmount, EFFECT_1, SPELL_AURA_MOD_INCREASE_HEALTH); + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_army_of_the_dead_passive::CalculateSPAmount, EFFECT_2, SPELL_AURA_MOD_DAMAGE_DONE); + OnEffectApply += AuraEffectApplyFn(spell_dk_army_of_the_dead_passive::HandleEffectApply, EFFECT_ALL, SPELL_AURA_ANY, AURA_EFFECT_HANDLE_REAL); + DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_dk_army_of_the_dead_passive::CalcPeriodic, EFFECT_ALL, SPELL_AURA_ANY); + OnEffectPeriodic += AuraEffectPeriodicFn(spell_dk_army_of_the_dead_passive::HandlePeriodic, EFFECT_ALL, SPELL_AURA_ANY); + } +}; + void AddSC_deathknight_spell_scripts() { RegisterSpellScript(spell_dk_wandering_plague); @@ -2250,4 +2316,5 @@ void AddSC_deathknight_spell_scripts() RegisterSpellScript(spell_dk_vampiric_blood); RegisterSpellScript(spell_dk_will_of_the_necropolis); RegisterSpellScript(spell_dk_ghoul_thrash); + RegisterSpellScript(spell_dk_army_of_the_dead_passive); } diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index b2981852203299..f672ad8b6cc1d4 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -5320,6 +5320,65 @@ class spell_gen_set_health : public SpellScript } }; +// 67561 - Serverside - Pet Scaling - Master Spell 06 - Spell Hit, Expertise, Spell Penetration +class spell_pet_spellhit_expertise_spellpen_scaling : public AuraScript +{ + PrepareAuraScript(spell_pet_spellhit_expertise_spellpen_scaling) + + int32 CalculatePercent(float hitChance, float cap, float maxChance) + { + return (hitChance / cap) * maxChance; + } + + void CalculateSpellHitAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) + { + if (Player* modOwner = GetUnitOwner()->GetSpellModOwner()) + amount = CalculatePercent(modOwner->m_modMeleeHitChance, 8.0f, 17.0f); + } + + void CalculateExpertiseAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) + { + if (Player* modOwner = GetUnitOwner()->GetSpellModOwner()) + amount = CalculatePercent(modOwner->m_modMeleeHitChance, 8.0f, 26.0f); + } + + void CalculateSpellPenAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) + { + if (Player* modOwner = GetUnitOwner()->GetSpellModOwner()) + amount = modOwner->GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_TARGET_RESISTANCE, SPELL_SCHOOL_MASK_SPELL); + } + + void HandleEffectApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) + { + GetUnitOwner()->ApplySpellImmune(GetId(), IMMUNITY_STATE, aurEff->GetAuraType(), true, SPELL_BLOCK_TYPE_POSITIVE); + } + + void CalcPeriodic(AuraEffect const* /*aurEff*/, bool& isPeriodic, int32& amplitude) + { + if (!GetUnitOwner()->IsPet()) + return; + + isPeriodic = true; + amplitude = 3 * IN_MILLISECONDS; + } + + void HandlePeriodic(AuraEffect const* aurEff) + { + PreventDefaultAction(); + GetEffect(aurEff->GetEffIndex())->RecalculateAmount(); + } + + void Register() override + { + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pet_spellhit_expertise_spellpen_scaling::CalculateSpellHitAmount, EFFECT_0, SPELL_AURA_MOD_SPELL_HIT_CHANCE); + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pet_spellhit_expertise_spellpen_scaling::CalculateExpertiseAmount, EFFECT_1, SPELL_AURA_MOD_EXPERTISE); + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pet_spellhit_expertise_spellpen_scaling::CalculateSpellPenAmount, EFFECT_2, SPELL_AURA_MOD_TARGET_RESISTANCE); + OnEffectApply += AuraEffectApplyFn(spell_pet_spellhit_expertise_spellpen_scaling::HandleEffectApply, EFFECT_ALL, SPELL_AURA_ANY, AURA_EFFECT_HANDLE_REAL); + DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_pet_spellhit_expertise_spellpen_scaling::CalcPeriodic, EFFECT_ALL, SPELL_AURA_ANY); + OnEffectPeriodic += AuraEffectPeriodicFn(spell_pet_spellhit_expertise_spellpen_scaling::HandlePeriodic, EFFECT_ALL, SPELL_AURA_ANY); + } +}; + void AddSC_generic_spell_scripts() { RegisterSpellScript(spell_silithyst); @@ -5478,4 +5537,5 @@ void AddSC_generic_spell_scripts() RegisterSpellScript(spell_gen_sober_up); RegisterSpellScript(spell_gen_steal_weapon); RegisterSpellScript(spell_gen_set_health); + RegisterSpellScript(spell_pet_spellhit_expertise_spellpen_scaling); } From 8679e2900e17b2203dc711d99c4953fa973d9340 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 28 Dec 2024 13:24:12 +0000 Subject: [PATCH 04/35] chore(DB): import pending files Referenced commit(s): 638b8ea621bc5d11e22213fa5bb950f189fbef33 --- .../rev_1724946417358596409.sql => db_world/2024_12_28_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1724946417358596409.sql => db_world/2024_12_28_01.sql} (94%) diff --git a/data/sql/updates/pending_db_world/rev_1724946417358596409.sql b/data/sql/updates/db_world/2024_12_28_01.sql similarity index 94% rename from data/sql/updates/pending_db_world/rev_1724946417358596409.sql rename to data/sql/updates/db_world/2024_12_28_01.sql index 28cccba32b2c9e..d4aa9b48c762d1 100644 --- a/data/sql/updates/pending_db_world/rev_1724946417358596409.sql +++ b/data/sql/updates/db_world/2024_12_28_01.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_28_00 -> 2024_12_28_01 -- UPDATE `spell_dbc` SET `Attributes`=`Attributes`|64, `AttributesEx4`=34603008, `ProcChance`=101, `DurationIndex`=21, From 7ab42194d7bf70357a42b293adf130e456f39084 Mon Sep 17 00:00:00 2001 From: FlyingArowana Date: Sat, 28 Dec 2024 22:07:05 +0000 Subject: [PATCH 05/35] fix(DB/SAI): SAI overhaul of Deadwood Warrior, Gardener and Pathfinder (#20901) --- .../rev_1733968258139506300.sql | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1733968258139506300.sql diff --git a/data/sql/updates/pending_db_world/rev_1733968258139506300.sql b/data/sql/updates/pending_db_world/rev_1733968258139506300.sql new file mode 100644 index 00000000000000..5cec363cc89076 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1733968258139506300.sql @@ -0,0 +1,23 @@ +-- +-- Adds if missing SAI to Deadwood Warrior, Gardener and Pathfinder +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` in (7153, 7154, 7155); + +-- Deadwood Warrior +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 7153); +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 +(7153, 0, 0, 0, 0, 0, 100, 0, 4000, 11000, 12000, 15000, 0, 0, 11, 13583, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Warrior - In Combat - Cast \'Curse of the Deadwood\''), +(7153, 0, 1, 0, 0, 0, 100, 0, 6000, 6000, 5000, 10000, 0, 0, 11, 13584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Warrior - In Combat - Cast \'Strike\''); + +-- Deadwood Gardener +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 7154) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3)); +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 +(7154, 0, 0, 0, 0, 0, 100, 0, 4000, 11000, 12000, 15000, 0, 0, 11, 13583, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Gardener - In Combat - Cast \'Curse of the Deadwood\''), +(7154, 0, 1, 0, 2, 0, 100, 0, 0, 70, 15000, 15000, 0, 0, 11, 12160, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Gardener - Between 0-70% Health - Cast \'Rejuvenation\''), +(7154, 0, 3, 0, 2, 0, 100, 0, 0, 30, 10000, 10000, 0, 0, 11, 11986, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Gardener - Between 0-30% Health - Cast \'Healing Wave\''); + +-- Deadwood Pathfinder +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 7155) AND (`source_type` = 0) AND (`id` IN (0, 1, 2)); +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 +(7155, 0, 0, 0, 0, 0, 100, 0, 0, 0, 2200, 3800, 0, 0, 11, 6660, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Pathfinder - In Combat - Cast \'Shoot\''), +(7155, 0, 1, 0, 9, 0, 100, 0, 0, 0, 6000, 12000, 5, 30, 11, 6685, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Pathfinder - Within 5-30 Range - Cast \'Piercing Shot\''), +(7155, 0, 2, 0, 0, 0, 100, 0, 5000, 9000, 125000, 130000, 0, 0, 11, 13583, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Deadwood Pathfinder - In Combat - Cast \'Curse of the Deadwood\''); From 61521231eff1714cf6f245b120be884e87e835f7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 28 Dec 2024 22:08:04 +0000 Subject: [PATCH 06/35] chore(DB): import pending files Referenced commit(s): 7ab42194d7bf70357a42b293adf130e456f39084 --- .../rev_1733968258139506300.sql => db_world/2024_12_28_02.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1733968258139506300.sql => db_world/2024_12_28_02.sql} (98%) diff --git a/data/sql/updates/pending_db_world/rev_1733968258139506300.sql b/data/sql/updates/db_world/2024_12_28_02.sql similarity index 98% rename from data/sql/updates/pending_db_world/rev_1733968258139506300.sql rename to data/sql/updates/db_world/2024_12_28_02.sql index 5cec363cc89076..d7310d7ab9ffa2 100644 --- a/data/sql/updates/pending_db_world/rev_1733968258139506300.sql +++ b/data/sql/updates/db_world/2024_12_28_02.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_28_01 -> 2024_12_28_02 -- -- Adds if missing SAI to Deadwood Warrior, Gardener and Pathfinder UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` in (7153, 7154, 7155); From 3acf687b0804fd861067d823eb8734e75c5c3229 Mon Sep 17 00:00:00 2001 From: Trinitarius <84076297+trinitarius@users.noreply.github.com> Date: Sun, 29 Dec 2024 17:17:34 +0100 Subject: [PATCH 07/35] fix(DB/Creature): Arcanist Helion gossip text (#21062) --- data/sql/updates/pending_db_world/update_gossip_menu.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 data/sql/updates/pending_db_world/update_gossip_menu.sql diff --git a/data/sql/updates/pending_db_world/update_gossip_menu.sql b/data/sql/updates/pending_db_world/update_gossip_menu.sql new file mode 100644 index 00000000000000..552aabb0c6b9f8 --- /dev/null +++ b/data/sql/updates/pending_db_world/update_gossip_menu.sql @@ -0,0 +1,2 @@ +UPDATE `gossip_menu` SET `TextID` = 7786 WHERE `MenuID` = 12002 AND `TextID` = 50030; +DELETE FROM `npc_text` WHERE `ID` = 50030; From ca686d8798233452898c144c6172d1e96ae9cdf3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 29 Dec 2024 16:18:35 +0000 Subject: [PATCH 08/35] chore(DB): import pending files Referenced commit(s): 3acf687b0804fd861067d823eb8734e75c5c3229 --- .../update_gossip_menu.sql => db_world/2024_12_29_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/update_gossip_menu.sql => db_world/2024_12_29_00.sql} (74%) diff --git a/data/sql/updates/pending_db_world/update_gossip_menu.sql b/data/sql/updates/db_world/2024_12_29_00.sql similarity index 74% rename from data/sql/updates/pending_db_world/update_gossip_menu.sql rename to data/sql/updates/db_world/2024_12_29_00.sql index 552aabb0c6b9f8..32323a5c45c0cf 100644 --- a/data/sql/updates/pending_db_world/update_gossip_menu.sql +++ b/data/sql/updates/db_world/2024_12_29_00.sql @@ -1,2 +1,3 @@ +-- DB update 2024_12_28_02 -> 2024_12_29_00 UPDATE `gossip_menu` SET `TextID` = 7786 WHERE `MenuID` = 12002 AND `TextID` = 50030; DELETE FROM `npc_text` WHERE `ID` = 50030; From 5dfe8973bb3e01d44d6784d1b44ae5a00066c484 Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Sun, 29 Dec 2024 18:50:20 +0100 Subject: [PATCH 09/35] chore(DB): Delete empty/null entries (#21058) --- .../updates/pending_db_world/rev_1735437140186286300.sql | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1735437140186286300.sql diff --git a/data/sql/updates/pending_db_world/rev_1735437140186286300.sql b/data/sql/updates/pending_db_world/rev_1735437140186286300.sql new file mode 100644 index 00000000000000..f8f51ad5f38538 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1735437140186286300.sql @@ -0,0 +1,7 @@ +-- +DELETE FROM `gameobject_template_locale` WHERE `name` = ''; +DELETE FROM `gameobject_template_locale` WHERE `name` = 'NULL'; +DELETE FROM `gameobject_template_locale` WHERE `name` IS NULL; +DELETE FROM `quest_offer_reward_locale` WHERE `RewardText` = ''; +DELETE FROM `quest_offer_reward_locale` WHERE `RewardText` = 'NULL'; +DELETE FROM `quest_offer_reward_locale` WHERE `RewardText` IS NULL; From a710b9873dba174e5aba626644e1eb85b9f3bede Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 29 Dec 2024 17:51:19 +0000 Subject: [PATCH 10/35] chore(DB): import pending files Referenced commit(s): 5dfe8973bb3e01d44d6784d1b44ae5a00066c484 --- .../rev_1735437140186286300.sql => db_world/2024_12_29_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1735437140186286300.sql => db_world/2024_12_29_01.sql} (89%) diff --git a/data/sql/updates/pending_db_world/rev_1735437140186286300.sql b/data/sql/updates/db_world/2024_12_29_01.sql similarity index 89% rename from data/sql/updates/pending_db_world/rev_1735437140186286300.sql rename to data/sql/updates/db_world/2024_12_29_01.sql index f8f51ad5f38538..b87fbf99ccdf86 100644 --- a/data/sql/updates/pending_db_world/rev_1735437140186286300.sql +++ b/data/sql/updates/db_world/2024_12_29_01.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_29_00 -> 2024_12_29_01 -- DELETE FROM `gameobject_template_locale` WHERE `name` = ''; DELETE FROM `gameobject_template_locale` WHERE `name` = 'NULL'; From d94919245537fe9416f2409d340b897edc8a1168 Mon Sep 17 00:00:00 2001 From: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> Date: Sun, 29 Dec 2024 13:13:52 -0500 Subject: [PATCH 11/35] fix(Scripts/Zul'Aman): Band-Aid fix for hostage loot. (#21060) --- data/sql/updates/pending_db_world/za-hostage-bandaid.sql | 1 + .../scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp | 6 ++++++ src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp | 6 +++++- src/server/scripts/EasternKingdoms/ZulAman/zulaman.h | 3 ++- 4 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 data/sql/updates/pending_db_world/za-hostage-bandaid.sql diff --git a/data/sql/updates/pending_db_world/za-hostage-bandaid.sql b/data/sql/updates/pending_db_world/za-hostage-bandaid.sql new file mode 100644 index 00000000000000..b4da9f879a9e69 --- /dev/null +++ b/data/sql/updates/pending_db_world/za-hostage-bandaid.sql @@ -0,0 +1 @@ +UPDATE `conditions` SET `ConditionValue1` = 17 WHERE `SourceTypeOrReferenceId` = 10 AND `SourceGroup` IN (35100, 35101, 35102) AND `ConditionTypeOrReference` = 13 AND `ConditionValue2` IN (1, 2, 3, 4); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index f86186b4031c7e..f743f017a9cefa 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -103,6 +103,7 @@ class instance_zulaman : public InstanceMapScript LoadBossBoundaries(boundaries); LoadDoorData(doorData); LoadSummonData(summonData); + _chestLooted = 0; for (uint8 i = 0; i < RAND_VENDOR; ++i) RandVendor[i] = NOT_STARTED; @@ -200,6 +201,8 @@ class instance_zulaman : public InstanceMapScript else if (data == DONE) _akilzonGauntlet = DONE; } + else if (type == DATA_CHEST_LOOTED) + ++_chestLooted; } void StartAkilzonGauntlet() @@ -320,6 +323,8 @@ class instance_zulaman : public InstanceMapScript return RandVendor[1]; else if (type == TYPE_AKILZON_GAUNTLET) return _akilzonGauntlet; + else if (type == DATA_CHEST_LOOTED) + return _chestLooted; return 0; } @@ -330,6 +335,7 @@ class instance_zulaman : public InstanceMapScript } private: + uint16 _chestLooted; uint32 RandVendor[RAND_VENDOR]; GuidSet AkilzonTrash; EncounterState _akilzonGauntlet = NOT_STARTED; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index ddb9bc6fd33938..83034d1176c6e3 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -290,13 +290,17 @@ class npc_zulaman_hostage : public CreatureScript creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); + creature->GetInstanceScript()->SetData(DATA_CHEST_LOOTED, 0); + float x, y, z; creature->GetPosition(x, y, z); for (uint8 i = 0; i < 4; ++i) { if (HostageEntry[i] == creature->GetEntry()) { - creature->SummonGameObject(ChestEntry[i], x - 2, y, z, 0, 0, 0, 0, 0, 0); + GameObject* obj = creature->SummonGameObject(ChestEntry[i], x - 2, y, z, 0, 0, 0, 0, 0, 0); + if (obj) + obj->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); break; } } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h index 8ed6eb1310893f..341f97f654c3f7 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h @@ -41,7 +41,8 @@ enum DataTypes DATA_HARRISON_JONES = 13, TYPE_AKILZON_GAUNTLET = 14, DATA_LOOKOUT = 15, - DATA_ZULJIN_GATE = 16 + DATA_ZULJIN_GATE = 16, + DATA_CHEST_LOOTED = 17 // Used for hostage loot DB conditions }; enum CreatureIds From a97bff0baaaa9caf1190f107a8f4273a64eff12b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 29 Dec 2024 18:14:54 +0000 Subject: [PATCH 12/35] chore(DB): import pending files Referenced commit(s): d94919245537fe9416f2409d340b897edc8a1168 --- .../za-hostage-bandaid.sql => db_world/2024_12_29_02.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/za-hostage-bandaid.sql => db_world/2024_12_29_02.sql} (82%) diff --git a/data/sql/updates/pending_db_world/za-hostage-bandaid.sql b/data/sql/updates/db_world/2024_12_29_02.sql similarity index 82% rename from data/sql/updates/pending_db_world/za-hostage-bandaid.sql rename to data/sql/updates/db_world/2024_12_29_02.sql index b4da9f879a9e69..c537bf63093cbe 100644 --- a/data/sql/updates/pending_db_world/za-hostage-bandaid.sql +++ b/data/sql/updates/db_world/2024_12_29_02.sql @@ -1 +1,2 @@ +-- DB update 2024_12_29_01 -> 2024_12_29_02 UPDATE `conditions` SET `ConditionValue1` = 17 WHERE `SourceTypeOrReferenceId` = 10 AND `SourceGroup` IN (35100, 35101, 35102) AND `ConditionTypeOrReference` = 13 AND `ConditionValue2` IN (1, 2, 3, 4); From e152d6a3aabcabdebe03ee133a4ea2d69395b182 Mon Sep 17 00:00:00 2001 From: vrachv <52053491+vrachv@users.noreply.github.com> Date: Sun, 29 Dec 2024 19:13:22 +0000 Subject: [PATCH 13/35] fix(Scripts/Karazhan): Chess pieces reset to correct positions (#21061) --- .../scripts/EasternKingdoms/Karazhan/boss_chess_event.cpp | 4 ++++ .../scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_chess_event.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_chess_event.cpp index 8a6869d64b65f9..84d51f7d0c0190 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_chess_event.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_chess_event.cpp @@ -1424,6 +1424,7 @@ struct npc_chesspiece : public ScriptedAI _instance = creature->GetInstanceScript(); _currentOrientation = GetDefaultOrientationForTeam(); + _homePosition = creature->GetPosition(); _nextMoveTimer = urand(8 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); @@ -1457,6 +1458,8 @@ struct npc_chesspiece : public ScriptedAI { me->SetResistance(SpellSchools(i), 0); } + + me->NearTeleportTo(_homePosition); } void EnterEvadeMode(EvadeReason /*why*/) override @@ -2044,6 +2047,7 @@ struct npc_chesspiece : public ScriptedAI KarazhanChessOrientationType _currentOrientation; bool _teamControlledByRaid; + Position _homePosition; }; struct npc_chess_move_trigger : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp index ddc653f32d928c..76758c950f42b4 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp @@ -271,9 +271,6 @@ class instance_karazhan : public InstanceMapScript piece->RemoveAllAuras(); piece->setDeathState(DeathState::JustRespawned); piece->SetHealth(piece->GetMaxHealth()); - float x, y, z, o; - piece->GetHomePosition(x, y, z, o); - piece->NearTeleportTo(x, y, z, o); piece->AI()->DoAction(ACTION_CHESS_PIECE_RESET_ORIENTATION); piece->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); piece->AI()->Reset(); From 8f7fc6d0d12cfd5eccdeeefd0549615a0ea11155 Mon Sep 17 00:00:00 2001 From: Trinitarius <84076297+trinitarius@users.noreply.github.com> Date: Sun, 29 Dec 2024 20:46:44 +0100 Subject: [PATCH 14/35] fix(DB/Locale): deDE fixes cata quest texts to wrath state (#21049) --- data/sql/updates/pending_db_world/fix-cata-texts.sql | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 data/sql/updates/pending_db_world/fix-cata-texts.sql diff --git a/data/sql/updates/pending_db_world/fix-cata-texts.sql b/data/sql/updates/pending_db_world/fix-cata-texts.sql new file mode 100644 index 00000000000000..0e8c7afe72a301 --- /dev/null +++ b/data/sql/updates/pending_db_world/fix-cata-texts.sql @@ -0,0 +1,6 @@ +DELETE FROM `quest_template_locale` WHERE `ID` IN (182, 218, 3361, 3364) AND `locale` = 'deDE'; +INSERT INTO `quest_template_locale` (`ID`, `locale`, `Title`, `Details`, `Objectives`, `EndText`, `CompletedText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `VerifiedBuild`) VALUES +(182,'deDE','Die Trollhöhle','Mein Bruder Senir und ich wurden in unterschiedliche Ecken von Dun Morogh entsandt, um dort die von den Trollen ausgehende Gefahr zu untersuchen. Der Senat hat mit den Troggs bereits alle Hände voll zu tun, deswegen kann er keinen weiteren Ärger gebrauchen.$B$BNach allem, was ich gesehen habe, ist die Position der Trolle hier im Eisklammtal nicht sonderlich gut - sie sind vor allem in der südlichen Höhle zu finden. Ich würde sagen, die Armee brauchen wir nicht. Einige starke Arme sollten mehr als ausreichend sein.$B$BMöchtet Ihr vielleicht mithelfen? Ich bin ermächtigt, Euch für Eure Dienste eine Entschädigung anzubieten.','Grelin Weißbart möchte, dass Ihr 10 Trollwelpen der Frostmähnen tötet.','','Kehrt zu Grelin Weißbart in Dun Morogh zurück.','','','','',0), +(218,'deDE','Das gestohlene Tagebuch','Mein Tagebuch! Sie haben es in die Höhle gebracht. Der, der es hatte, war ein großer Kerl mit seltsamen Zeichen auf der Haut und im Gesicht. Viel mehr konnte ich leider nicht sehen.$B$BIhr hattet ja mit den Trollen Erfolg, vielleicht könntet Ihr es mir wiederbeschaffen?','Grelin Weißbart möchte, dass Ihr Grik\'nir den Kalten tötet und ihm sein Tagebuch wiederbeschafft.','','Kehrt zu Grelin Weißbart in Dun Morogh zurück.','','','','',0), +(3361,'deDE','Dilemma eines Flüchtlings','Wir haben die Troggs aus Gnomeregan vertrieben, aber dann ist alles schrecklich schief gegangen! Jetzt ist unsere Heimat völlig von Strahlen verseucht und wir Gnome sind überall in Dun Morogh zerstreut.$B$BIn meiner Hast, der Strahlung zu entkommen, habe ich all mein ganzes Hab und Gut und auch meine Werkzeuge verloren. Die Trolle haben sie geholt. Sie haben meine Truhe, meine Kiste, und meinen Bolzeneimer gestohlen! Alles das haben sie in ihre Lager südwestlich von Ambossar mitgenommen.$B$BIch bin nur leider kein Abenteurer - könntet Ihr bitte meine Sachen suchen und sie mir herbringen?','Bringt Felix Windenbolz in Ambossar den Kasten, die Truhe und den Bolzeneimer von Felix.','','Kehrt zu Felix Windenbolz in Ambossar in Dun Morogh zurück.','','','','',0), +(3364,'deDE','Lieferung des kochend heißen Morgengebräus','Bah! Ich sollte dieses köstliche, kochend heiße Morgengebräu schon vor einer ganzen Weile zu Durnan Pelznaht in Ambossar bringen, aber ich musste erst eine Ladung zu Grelin hier bringen. Ich werde es niemals bis nach Ambossar schaffen, bevor das Gebräu kalt wird!$B$BIhr seht hurtig aus. Vielleicht könnt Ihr es schaffen. Diese Tasse wird nur noch ein paar Minuten lang heiß bleiben, und Durnan bestellte kein \"eisiges\" Morgengebräu, also beeilt Euch. Ambossar liegt im Nordosten. Es ist eine Siedlung, die in den Berg gebaut wurde.$B$BDanke, $n, und vergesst nicht, mir meinen Becher zurückzubringen!','Bringt ein kochend heißes Morgengebräu zu Durnan Pelznaht in Ambossar hinein, bevor es kalt wird!','','','','','','',0); From 26ae20a2f34c5d84948c80e15c77b6eda7bda798 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 29 Dec 2024 19:47:47 +0000 Subject: [PATCH 15/35] chore(DB): import pending files Referenced commit(s): 8f7fc6d0d12cfd5eccdeeefd0549615a0ea11155 --- .../fix-cata-texts.sql => db_world/2024_12_29_03.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/fix-cata-texts.sql => db_world/2024_12_29_03.sql} (98%) diff --git a/data/sql/updates/pending_db_world/fix-cata-texts.sql b/data/sql/updates/db_world/2024_12_29_03.sql similarity index 98% rename from data/sql/updates/pending_db_world/fix-cata-texts.sql rename to data/sql/updates/db_world/2024_12_29_03.sql index 0e8c7afe72a301..d7e6016be0fb1c 100644 --- a/data/sql/updates/pending_db_world/fix-cata-texts.sql +++ b/data/sql/updates/db_world/2024_12_29_03.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_29_02 -> 2024_12_29_03 DELETE FROM `quest_template_locale` WHERE `ID` IN (182, 218, 3361, 3364) AND `locale` = 'deDE'; INSERT INTO `quest_template_locale` (`ID`, `locale`, `Title`, `Details`, `Objectives`, `EndText`, `CompletedText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `VerifiedBuild`) VALUES (182,'deDE','Die Trollhöhle','Mein Bruder Senir und ich wurden in unterschiedliche Ecken von Dun Morogh entsandt, um dort die von den Trollen ausgehende Gefahr zu untersuchen. Der Senat hat mit den Troggs bereits alle Hände voll zu tun, deswegen kann er keinen weiteren Ärger gebrauchen.$B$BNach allem, was ich gesehen habe, ist die Position der Trolle hier im Eisklammtal nicht sonderlich gut - sie sind vor allem in der südlichen Höhle zu finden. Ich würde sagen, die Armee brauchen wir nicht. Einige starke Arme sollten mehr als ausreichend sein.$B$BMöchtet Ihr vielleicht mithelfen? Ich bin ermächtigt, Euch für Eure Dienste eine Entschädigung anzubieten.','Grelin Weißbart möchte, dass Ihr 10 Trollwelpen der Frostmähnen tötet.','','Kehrt zu Grelin Weißbart in Dun Morogh zurück.','','','','',0), From 0e6fffa72e3160620889909282ba8caf3c97a0d8 Mon Sep 17 00:00:00 2001 From: Trinitarius <84076297+trinitarius@users.noreply.github.com> Date: Sun, 29 Dec 2024 20:56:55 +0100 Subject: [PATCH 16/35] fix(DB/Locale): deDE fixes cata quest texts to wrath state - part 2 (#21059) --- data/sql/updates/pending_db_world/fix_cata_texts_2.sql | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 data/sql/updates/pending_db_world/fix_cata_texts_2.sql diff --git a/data/sql/updates/pending_db_world/fix_cata_texts_2.sql b/data/sql/updates/pending_db_world/fix_cata_texts_2.sql new file mode 100644 index 00000000000000..bacf1d352b26e0 --- /dev/null +++ b/data/sql/updates/pending_db_world/fix_cata_texts_2.sql @@ -0,0 +1,6 @@ +DELETE FROM `quest_template_locale` WHERE `ID` IN (364, 376, 380, 3901) AND `locale` = 'deDE'; +INSERT INTO `quest_template_locale` (`ID`, `locale`, `Title`, `Details`, `Objectives`, `EndText`, `CompletedText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `VerifiedBuild`) VALUES +(364,'deDE','Die Hirnlosen','Seit der erste Verlassene aus seinem Grab gekrochen ist, stehen wir mit der Geißel, der Armee des Lichkönigs im Krieg: durch Nekromantie erweckte Armeen von Untoten, grausige Bestien des Nordens und gepeinigte Schreckgespenster.$b$bDer nördliche Teil des Dorfes wurde von den Hirnlosen überrannt, und diese müssen vernichtet werden. Vernichtet sie, zeigt ihnen keine Gnade, auch wenn sie unsere früheren Brüder und Schwestern gewesen sein mögen. Die Gefallenen sind nichts als Sklaven des Lichkönigs.','Schattenpriester Sarvis will, dass Ihr 5 hirnlose Zombies und 5 elende Ghuls tötet.','','Kehrt zu Schattenpriester Sarvis in Todesend in Tirisfal zurück.','','','','',0), +(376,'deDE','Die Verdammten','Meine Pflichten umfassen, die verwundeten Krieger zu versorgen, Rüstung und Kleidung zu schneidern und Schattenpriester Sarvis in jeder erdenklichen Weise zu unterstützen.$b$bEs sieht so aus, als würdet Ihr ebenfalls in seine Dienste aufgenommen... wahrscheinlich um die Hirnlosen zu jagen, wie ich ihn kenne. Tja, wenn Ihr dabei in einem Stück bleiben wollt - und ich bezweifle nicht, dass Ihr das wollt -, dann kann ich Euch vielleicht helfen. Mir gehen die Tatzen und Flügel aus, und wenn Ihr mir einige davon bringt, besorge ich Euch eine Rüstung. Ihr werdet im Norden eine Menge Wölfe und Fledermäuse finden.','Novize Elreth benötigt 6 Aasfressertatzen und 6 Nachtsaugerflügel.','','Kehrt zu Novizin Elreth in Todesend in Tirisfal zurück.','','','','',0), +(380,'deDE','Nachtwebergrund','Eine unserer größten Schwierigkeiten besteht darin, die Rohstoffe zu besorgen, die wir zum Überleben brauchen. Gold war schon zu Hochzeiten der Macht der Allianz selten.$b$bEs gibt eine Goldmine im Nordwesten, die von Spinnen überrannt wurde. Wir brauchen das Gold dieser Mine, aber wir können es ja schlecht holen, während die Spinnen darin herumkrabbeln. Ich habe nicht viel Personal übrig für diese Aufgabe, also müssen wir sie Schritt für Schritt lösen.$B$BBegebt Euch dorthin und schaut mal, was Ihr für uns ausrichten könnt, $n.','Exekutor Arren will, dass Ihr 8 junge Nachtweber und 5 Nachtweber tötet.','','Kehrt zu Exekutor Arren in Todesend in Tirisfal zurück.','','','','',0), +(3901,'deDE','Klappernde Skelette','Ihr habt den Verlassenen Euer Potenzial unter normalen Umständen gezeigt, $n. Jetzt wollen wir mal sehen, wie es damit bestellt ist, wenn Ihr unter Druck steht.$B$BDie klappernden Skelette, weitere hirnlose Diener des Lichkönigs, sind zähere Feinde als die Zombies, mit denen Ihr es bisher zu tun hattet. Auch hier heißt es wieder: Dünnt ihre Reihen aus und beweist den Verlassenen, dass Ihr der Aufgabe gewachsen seid. Frisch ans Werk...und redet wieder mit mir, wenn Ihr fertig seid.','Tötet 8 klappernde Skelette und kehrt zu Schattenpriester Sarvis in Todesend zurück, wenn Ihr fertig seid.','','Kehrt zu Schattenpriester Sarvis in Todesend in Tirisfal zurück.','','','','',0); From 9b5fc8775efce24f07cd81a45a248f60fc2171d5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 29 Dec 2024 19:57:54 +0000 Subject: [PATCH 17/35] chore(DB): import pending files Referenced commit(s): 0e6fffa72e3160620889909282ba8caf3c97a0d8 --- .../fix_cata_texts_2.sql => db_world/2024_12_29_04.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/fix_cata_texts_2.sql => db_world/2024_12_29_04.sql} (98%) diff --git a/data/sql/updates/pending_db_world/fix_cata_texts_2.sql b/data/sql/updates/db_world/2024_12_29_04.sql similarity index 98% rename from data/sql/updates/pending_db_world/fix_cata_texts_2.sql rename to data/sql/updates/db_world/2024_12_29_04.sql index bacf1d352b26e0..a1d7ffa753153e 100644 --- a/data/sql/updates/pending_db_world/fix_cata_texts_2.sql +++ b/data/sql/updates/db_world/2024_12_29_04.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_29_03 -> 2024_12_29_04 DELETE FROM `quest_template_locale` WHERE `ID` IN (364, 376, 380, 3901) AND `locale` = 'deDE'; INSERT INTO `quest_template_locale` (`ID`, `locale`, `Title`, `Details`, `Objectives`, `EndText`, `CompletedText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `VerifiedBuild`) VALUES (364,'deDE','Die Hirnlosen','Seit der erste Verlassene aus seinem Grab gekrochen ist, stehen wir mit der Geißel, der Armee des Lichkönigs im Krieg: durch Nekromantie erweckte Armeen von Untoten, grausige Bestien des Nordens und gepeinigte Schreckgespenster.$b$bDer nördliche Teil des Dorfes wurde von den Hirnlosen überrannt, und diese müssen vernichtet werden. Vernichtet sie, zeigt ihnen keine Gnade, auch wenn sie unsere früheren Brüder und Schwestern gewesen sein mögen. Die Gefallenen sind nichts als Sklaven des Lichkönigs.','Schattenpriester Sarvis will, dass Ihr 5 hirnlose Zombies und 5 elende Ghuls tötet.','','Kehrt zu Schattenpriester Sarvis in Todesend in Tirisfal zurück.','','','','',0), From 6313d538c789b6e28dec1be3a4a8463362c5751f Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Mon, 30 Dec 2024 15:32:33 +0100 Subject: [PATCH 18/35] fix(Scripts/ZulAman): add Altar Torch visuals (#21064) --- .../EasternKingdoms/ZulAman/instance_zulaman.cpp | 14 +++++++++----- .../scripts/EasternKingdoms/ZulAman/zulaman.h | 6 +++++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index f743f017a9cefa..b595c12d251b4b 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -49,11 +49,15 @@ Position const HarrisonJonesLoc = {120.687f, 1674.0f, 42.0217f, 1.59044f}; DoorData const doorData[] = { - { GO_ZULJIN_FIREWALL, DATA_ZULJIN, DOOR_TYPE_ROOM }, - { GO_DOOR_HALAZZI, DATA_HALAZZI, DOOR_TYPE_PASSAGE }, - { GO_LYNX_TEMPLE_ENTRANCE, DATA_HALAZZI, DOOR_TYPE_ROOM }, - { GO_DOOR_AKILZON, DATA_AKILZON, DOOR_TYPE_ROOM }, - { 0, 0, DOOR_TYPE_ROOM } // END + { GO_ZULJIN_FIREWALL, DATA_ZULJIN, DOOR_TYPE_ROOM }, + { GO_DOOR_HALAZZI, DATA_HALAZZI, DOOR_TYPE_PASSAGE }, + { GO_LYNX_TEMPLE_ENTRANCE, DATA_HALAZZI, DOOR_TYPE_ROOM }, + { GO_DOOR_AKILZON, DATA_AKILZON, DOOR_TYPE_ROOM }, + { GO_ALTAR_TORCH_EAGLE_GOD, DATA_AKILZON, DOOR_TYPE_PASSAGE }, + { GO_ALTAR_TORCH_DRAGONHAWK_GOD, DATA_JANALAI, DOOR_TYPE_PASSAGE }, + { GO_ALTAR_TORCH_LYNX_GOD, DATA_HALAZZI, DOOR_TYPE_PASSAGE }, + { GO_ALTAR_TORCH_BEAR_GOD, DATA_NALORAKK, DOOR_TYPE_PASSAGE }, + { 0, 0, DOOR_TYPE_ROOM } // END }; ObjectData const creatureData[] = diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h index 341f97f654c3f7..bebca990c8734e 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h @@ -80,7 +80,11 @@ enum GameobjectIds GO_TANZARS_TRUNK = 186648, GO_ASHLIS_BAG = 186672, GO_KRAZS_PACKAGE = 186667, - GO_STRANGE_GONG = 187359 + GO_STRANGE_GONG = 187359, + GO_ALTAR_TORCH_EAGLE_GOD = 187035, + GO_ALTAR_TORCH_DRAGONHAWK_GOD = 187036, + GO_ALTAR_TORCH_LYNX_GOD = 187037, + GO_ALTAR_TORCH_BEAR_GOD = 186860 }; enum MiscIds From 467a5116f159c88bead835428bbae5164f573fcb Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Mon, 30 Dec 2024 19:05:43 +0100 Subject: [PATCH 19/35] fix(Scripts/ZulAman): add Boss Boundaries (#21065) --- .../scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index b595c12d251b4b..abb73312631090 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -86,7 +86,12 @@ ObjectData const summonData[] = BossBoundaryData const boundaries = { - { DATA_HEXLORD, new RectangleBoundary(80.50557f, 920.9858f, 155.88986f, 1015.27563f)} + { DATA_AKILZON, new ZRangeBoundary(72.0f, 100.0f)}, + { DATA_HALAZZI, new RectangleBoundary(304.0f, 432.0f, 1052.0f, 1156.0f)}, + { DATA_HEXLORD, new RectangleBoundary(80.50557f, 920.9858f, 155.88986f, 1015.27563f)}, + { DATA_JANALAI, new ZRangeBoundary(16.0f, 46.0f)}, + { DATA_NALORAKK, new ZRangeBoundary(38.0f, 68.0f)}, + { DATA_ZULJIN, new ZRangeBoundary(43.0f, 73.0f)} }; class instance_zulaman : public InstanceMapScript From e6cf00aefa36fa5f0db1d289ef5511f44be4aff9 Mon Sep 17 00:00:00 2001 From: vrachv <52053491+vrachv@users.noreply.github.com> Date: Mon, 30 Dec 2024 19:24:29 +0000 Subject: [PATCH 20/35] =?UTF-8?q?fix(DB/SAI):=20restore=20Drakuru=E2=80=99?= =?UTF-8?q?s=20(id:=2028802)=20health=20to=20100%=20upon=20charming=20(#21?= =?UTF-8?q?037)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../updates/pending_db_world/rev_1735053928227867164.sql | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1735053928227867164.sql diff --git a/data/sql/updates/pending_db_world/rev_1735053928227867164.sql b/data/sql/updates/pending_db_world/rev_1735053928227867164.sql new file mode 100644 index 00000000000000..99da414eba42a6 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1735053928227867164.sql @@ -0,0 +1,8 @@ +DELETE FROM `smart_scripts` WHERE `entryorguid` = 28802 AND `id` = 4 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_x`, `target_y`, `target_z`, `target_o`, `comment`) +VALUES +(28802, 0, 4, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 142, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Servant of Drakuru - On Update Entry - Set Health 100%'); + +UPDATE `smart_scripts` SET `link` = 4 WHERE `entryorguid` = 28802 AND `id` = 2 AND `source_type` = 0 AND `link` = 0; From 715f55900a030de5e4f4a30820ff867853c8ac2e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 30 Dec 2024 19:25:30 +0000 Subject: [PATCH 21/35] chore(DB): import pending files Referenced commit(s): e6cf00aefa36fa5f0db1d289ef5511f44be4aff9 --- .../rev_1735053928227867164.sql => db_world/2024_12_30_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1735053928227867164.sql => db_world/2024_12_30_00.sql} (95%) diff --git a/data/sql/updates/pending_db_world/rev_1735053928227867164.sql b/data/sql/updates/db_world/2024_12_30_00.sql similarity index 95% rename from data/sql/updates/pending_db_world/rev_1735053928227867164.sql rename to data/sql/updates/db_world/2024_12_30_00.sql index 99da414eba42a6..ba0d7cce1f0ed6 100644 --- a/data/sql/updates/pending_db_world/rev_1735053928227867164.sql +++ b/data/sql/updates/db_world/2024_12_30_00.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_29_04 -> 2024_12_30_00 DELETE FROM `smart_scripts` WHERE `entryorguid` = 28802 AND `id` = 4 AND `source_type` = 0; INSERT INTO `smart_scripts` From 6ea9b7a9cbc85a6d0648375888a82b9a0358d5e8 Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Mon, 30 Dec 2024 20:42:09 +0100 Subject: [PATCH 22/35] fix(Core/Player): fix output for disabled maps (#21068) --- src/server/game/Entities/Player/PlayerStorage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/Entities/Player/PlayerStorage.cpp b/src/server/game/Entities/Player/PlayerStorage.cpp index 8c7b9da6fa1059..3e878976d2e55b 100644 --- a/src/server/game/Entities/Player/PlayerStorage.cpp +++ b/src/server/game/Entities/Player/PlayerStorage.cpp @@ -6723,7 +6723,7 @@ bool Player::Satisfy(DungeonProgressionRequirements const* ar, uint32 target_map if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, target_map, this)) { - GetSession()->SendAreaTriggerMessage("%s", GetSession()->GetAcoreString(LANG_INSTANCE_CLOSED)); + GetSession()->SendAreaTriggerMessage("{}", GetSession()->GetAcoreString(LANG_INSTANCE_CLOSED)); return false; } From 4e49f522b4c2bff698b9dc14947151e24f019348 Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Mon, 30 Dec 2024 15:09:20 -0600 Subject: [PATCH 23/35] fix(Scripts/PitOfSauron): Reset Scourgelord Tyrannus encounter state (#21057) Co-authored-by: Nicholas Lee Co-authored-by: blinkysc --- .../FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index 675ff39f1d62b8..b0de4aba524492 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -97,6 +97,7 @@ class boss_tyrannus : public CreatureScript if (Vehicle* v = c->GetVehicleKit()) v->InstallAllAccessories(false); } + pInstance->SetData(DATA_TYRANNUS, NOT_STARTED); } } From b6c957307067ac6cf3b008f137aa3fdae6fca8bb Mon Sep 17 00:00:00 2001 From: Trinitarius <84076297+trinitarius@users.noreply.github.com> Date: Mon, 30 Dec 2024 22:20:52 +0100 Subject: [PATCH 24/35] fix(DB/Locale): deDE fixes for quest greetings (#21067) --- .../update_quest_greeting1.sql | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 data/sql/updates/pending_db_world/update_quest_greeting1.sql diff --git a/data/sql/updates/pending_db_world/update_quest_greeting1.sql b/data/sql/updates/pending_db_world/update_quest_greeting1.sql new file mode 100644 index 00000000000000..24ce9c5bbc661e --- /dev/null +++ b/data/sql/updates/pending_db_world/update_quest_greeting1.sql @@ -0,0 +1,71 @@ +DELETE FROM `quest_greeting_locale` WHERE `ID` IN (234, 235, 238, 239, 240, 241, 261, 265, 272, 278, 342, 344, 381, 382, 392, 415, 464, 633, 656, 661, 714, 733, 737, 773, 786, 823, 1071, 1092, 1105, 1239, 1284, 1343, 1344, 1356, 1374, 1377, 1428, 1495, 1499, 1500, 1515, 1518, 1646, 1719, 1738, 1748, 1937, 1938, 1950, 1952, 2080, 2086, 2094, 2121, 2215, 2216, 2263, 2498, 2501, 2700, 2706, 2713, 2785, 2786, 2817, 2860, 2910, 2920, 2921) AND `locale` = 'deDE'; +INSERT INTO `quest_greeting_locale` (`ID`, `type`, `locale`, `Greeting`, `VerifiedBuild`) VALUES +(234,0,'deDE','In Westfall hat sich üble Verderbnis eingeschlichen. Während ich auf dem Schlachtfeld von Lordaeron meine Pflicht tat, wurden diese anständig geführten Höfe überfallen und zu Schlupfwinkeln für Schläger und Mörder umfunktioniert. Die Volksmiliz ist auf Eure Hilfe angewiesen.',0), +(235,0,'deDE','Willkommen in unserer bescheidenen Hütte! Wir freuen uns über jedes freundliche Gesicht. Und Ihr habt so starke Arme. Mein Mann und ich sind ständig auf der Suche nach jemandem, der uns auf dem Hof hilft. Jetzt, wo die ganzen guten Leute weg sind, ist es nicht einfach, kräftige Helfer zu bekommen.',0), +(238,0,'deDE','Manchmal denke ich, eine große dunkle Wolke schwebt über uns, aus der Unglück auf uns herabregnet. Erst werden wir von unserem Land vertrieben und jetzt kommen wir noch nicht einmal aus Westfall weg. Alles liegt im Argen. Es muss etwas geschehen.',0), +(239,0,'deDE','Abenteuer in Ländern so nah und so fern $BVerschiedene Leute, wir treffen sehr gern $BDocht wollt Ihr eine Frage stellen $BMüsst Ihr zuerst \'ne einfache Aufgabe erfüllen!',0), +(240,0,'deDE','Ach je, es ist auch ohne diese neuen Probleme schon schwer genug, hier für Ordnung zu sorgen! Ich hoffe, Ihr bringt gute Neuigkeiten, $N...',0), +(241,0,'deDE','He, mein Freund. Man nennt mich Remy. Ich komme aus dem Rotkammgebirge im Osten und bin auf der Suche nach interessanten... Geschäften, interessanten... Geschäften. Habt Ihr vielleicht welche... vielleicht welche?',0), +(261,0,'deDE','Seid gegrüßt. Ihr seht aus wie $Gein Mann:eine Frau; $Gder:die; weiß, was $Ger:sie; will... habt Ihr mit der Armee von Sturmwind zu tun?',0), +(265,0,'deDE','Ich spürte schon seit geraumer Zeit, dass Ihr kommen würdet, $N. Es stand in den Sternen geschrieben.',0), +(272,0,'deDE','Hallo, hallo! Willkommen in meiner Küche, $Gmein Herr:meine Dame;! Hier werden all die köstlichen Delikatessen der Taverne Zum roten Raben zubereitet. Ah, riecht nur das wunderbare Aroma!',0), +(278,0,'deDE','Hallo, $Gwerter Herr:werte Dame;. Nehmt Platz und esst etwas, wenn Ihr Hunger habt. Und keine Sorge, ich bin zwar mit meiner Handarbeit beschäftigt, aber ich höre Euch gut zu...',0), +(342,0,'deDE','Seid gegrüßt, $N! Willkommen in meinem bescheidenen Garten. Das Wetter ist in letzter Zeit wirklich vorzüglich. Lasst uns hoffen, dass es bis zur Ernte anhält.',0), +(344,0,'deDE','Wer ist $Gdieser:diese; $C, $Gder:die; sich vor das Gericht von Seenhain im Königreich Sturmwind begibt? Sagt, was Euer Anliegen in dieser Stadt ist, $R. Die Bedrohung des Königreichs durch die Orcs ist zu groß, um Zeit mit einem Geplänkel zu vergeuden.',0), +(381,0,'deDE','Grüße, $C. Wenn Ihr aus geschäftlichen Gründen hier seid, so schnappt Euch ein Bier und dann reden wir.',0), +(382,0,'deDE','Ich habe keine Zeit zum Schwatzen, doch wenn Ihr gewillt seid, uns im Kampf gegen die Orcs beizustehen, dann finden wir schon etwas für Euch zu tun.',0), +(392,0,'deDE','Erschreckt nicht, $R. Ich bin seit langem schon aus diesem Land geschieden, aber ich habe nicht vor, Euresgleichen Schaden zuzufügen. Ich habe in meinem Leben zu viel Tod gesehen. Mein einziger Wunsch ist der nach Frieden. Vielleicht könnt Ihr mir dabei helfen.',0), +(415,0,'deDE','He, $GKumpel:Maidlein;, könntet Ihr mir wohl bei einer Sache unter die Arme greifen? Ich stecke wirklich in der Klemme...',0), +(464,0,'deDE','Grüße, $C. Schlimme Zeiten sind dies, $Gmein Freund:meine Freundin;, denn unsere Stadt wird belagert! Die Orcs des Schwarzfelsklans greifen von der Burg Steinwacht aus an, die Schattenfellgnolle bedrohen den Ilgalar-Turm und das Rotkammgnollrudel gewinnt an Stärke. Ich hoffe, Ihr hattet nicht vor, hier Urlaub zu machen...',0), +(633,0,'deDE','Dunkle Zeiten sind über uns hereingebrochen, $C... Nicht mehr lange, und wir werden alles verlieren... wenn das Licht alle verlässt, außer jenen, die wahrhaftig unter dem Lichte wandeln.',0), +(656,0,'deDE','Überall waren Diebe!$B$BEs war schrecklich. Die Höhle stürzte über uns ein. Ich glaube, die Bergarbeiter sind alle tot, darunter auch mein Bruder, der Großknecht.',0), +(661,0,'deDE','Seid gegrüßt. Was habt Ihr mit der Familie Treuwein zu tun? Wollt Ihr die Treuweins im Kampf gegen die Untoten unterstützen?',0), +(714,0,'deDE','Grüße, $C! Herrlicher Tag zum Jagen, meint Ihr nicht auch? Ich selbst hatte bereits ziemliches Glück mit den Ebern. Möchtet Ihr es auch versuchen?',0), +(733,0,'deDE','Passt auf, was Ihr hier tut, $GSöhnchen:Mädel;. Ihr gehört zwar nicht zu unserer Truppe, aber das bedeutet nicht, dass ich Euch nicht übers Knie lege, wenn Ihr aus der Reihe tanzt!',0), +(737,0,'deDE','Ah, guten Tag. Mir scheint, Ihr seid einem kleinen Zusatzverdienst nicht abgeneigt, hmmm? Ich kann es an Euren Augen erkennen. Mein Name ist Mogul Kebok, Vorarbeiter der Unternehmungen in Azeroth, und wenn Ihr auf Reichtum aus seid, dann kann ich da vielleicht etwas arrangieren.',0), +(773,0,'deDE','$C, eh? Ich bin Krazek, Sekretär von Baron Revilgaz. Ich weiß über alles Bescheid, das in diesem Dschungel und darüber hinaus vor sich geht. Vielleicht möchtet Ihr den aktuellen Ölpreis in Ratschet wissen? Nein? Oder sucht Ihr vielleicht Arbeit? Da kann ich Euch helfen.',0), +(786,0,'deDE','Seid gegrüßt, $GJungchen:Mädel;. Mein Name ist Grelin Weißbart. Ich soll untersuchen, welche Bedrohung von den Trollen im Eisklammtal ausgeht, deren Zahl ständig anwächst. Was ich festgestellt habe? Naja, es ist schon etwas besorgniserregend...',0), +(823,0,'deDE','Guten Tag, $C. Normalerweise würde ich jetzt meine Runde machen und die Leute von Sturmwind beschützen, doch viele der Wachen von Sturmwind kämpfen in fremdem Landen. Daher mache ich jetzt hier Vertretung und setze Kopfgelder aus, wo ich doch eigentlich lieber auf Patrouille sein würde...',0), +(1071,0,'deDE','Ich habe mit der Zeit gelernt, dass es keine langweiligen Aufträge gibt. Der Schutz des Thandolübergangs hätte eine leichte Aufgabe sein sollen. Aber da der Hauptteil der Armee an der Seite der Allianz kämpft, wurden wir hier überwältigt und Dun Modr fiel.',0), +(1092,0,'deDE','Seid gegrüßt, $n.',0), +(1105,0,'deDE','Wisst Ihr, eigentlich wollte ich ja Ausgrabungsleiter werden. Aber da ich von jeher gut mit Zahlen umgehen konnte, beschloss die Gilde, dass ich am besten für die Buchhaltung geeignet sei! An jedem Tag meiner Jugend hieß es Lernen, Lernen und noch mal Lernen...',0), +(1239,0,'deDE','Wenn Ihr gewillt seid, Euch Geschichten anzuhören, die Eure Knochen zum Schlottern bringen und Euch das Fürchten lehren werden, dann holt Euch etwas zu trinken und setzt Euch hin...',0), +(1284,0,'deDE','Seid gegrüßt, $n.',0), +(1343,0,'deDE','Na, wenn das nicht $Gein junger, wilder:eine junge, wilde; $C ist, $Gden:die; zweifellos Erzählungen über meine Taten auf dem Schlachtfeld hierher geführt haben!$B$BLeider ist jetzt keine Zeit für große Geschichten, denn es gilt bedeutende Taten zu vollbringen! Wenn Ihr also auf Ruhm aus seid, dann ist Euch das Glück heute hold...',0), +(1344,0,'deDE','Auch wenn es in diesen Ruinen zurzeit recht ruhig ist, bin ich doch davon überzeugt, dass das nicht lange andauern wird. In der Zwischenzeit kann ich jemanden wie Euch jedoch gut gebrauchen. Möchtet Ihr die Forschergilde der Zwerge unterstützen?',0), +(1356,0,'deDE','Ich bin mit einer äußerst bedeutenden Aufgabe beschäftigt. Ausgrabungsleitergeschäfte. Sofern Ihr mir daher nicht etwas mindestens ebenso Wichtiges zu sagen habt, was ich bezweifeln möchte, müsst Ihr mich schon entschuldigen.',0), +(1374,0,'deDE','Verflucht sei die Brauerliga! Die Leute können sich die besten Zutaten besorgen, während wir uns hier verzweifelt ein bisschen Hopfen und Getreide zusammenkratzen müssen!$B$BWie gern würde ich denen als Ausgleich ein bisschen bittere Medizin zu schlucken geben...',0), +(1377,0,'deDE','Nicht jeder kann einen Dampfpanzer fahren. Dafür braucht man einen eisernen Griff und Nerven wie Drahtseile... Zum Glück besitze ich beides! Wie steht es mit Euch? Traut Ihr Euch? Möchtet Ihr es mir beweisen?',0), +(1428,0,'deDE','Seid gegrüßt, $n.',0), +(1495,0,'deDE','Seid gegrüßt, $C. Seid wachsam, wenn Ihr nach Osten zum Bollwerk reist. Aktuellen Spähermeldungen zufolge ist in dem Bereich eine erhöhte Aktivität der Geißel zu verzeichnen. Hier ist also Vorsicht geboten.',0), +(1499,0,'deDE','He, Ihr da! Ich hätte da ein paar Aufgaben zu vergeben und muss unbedingt kurz erklären, wie außerordentlich wichtig sie sind. Hört gut zu.',0), +(1500,0,'deDE','Ich hoffe, Ihr seid den Umständen entsprechend wohlauf.$B$BNehmt doch hier Platz und lauscht meiner Geschichte. Natürlich ist es eine Tragödie, aber hoffentlich eine, die am Ende gerächt wird!',0), +(1515,0,'deDE','Der scharlachrote Kreuzzug rückt unserer Heimat näher. Die törichten Eiferer erkennen nicht, dass die treuen Diener der dunklen Fürstin alles tun werden, um sie zu töten.',0), +(1518,0,'deDE','Die dunkle Fürstin hat die Herausforderung gestellt. Es liegt an uns, sie anzunehmen.',0), +(1646,0,'deDE','Seid gegrüßt, ich bin Baros Alexston, Stadtarchitekt von Sturmwind.',0), +(1719,0,'deDE','Hier drüben, nutzloses Pack...! Wenn Ihr etwas Sinnvolles tun wollt, dann hört genau zu!',0), +(1738,1,'deDE','Diese Schriftrollensammlung enthält verschiedene logistische und strategische Informationen sowie kodierte Nachrichten.',0), +(1748,0,'deDE','Ich bin Bolvar Fordragon, Hochlord von Sturmwind.',0), +(1937,0,'deDE','Die dunkle Fürstin hat die Herausforderung gestellt. Jetzt liegt es an der Königlichen Apothekervereinigung, eine neue Seuche zu entwickeln. Wir werden Arthas und seine jämmerliche Armee in die Knie zwingen.',0), +(1938,0,'deDE','Die Kirin Tor haben meine Warnungen in den Wind geschlagen! Die Allianz ist ein Schwindel. Arugal ist ein tollkühner Dummkopf.',0), +(1950,0,'deDE','Mein Bruder und ich sind in wichtiger Mission unterwegs, aber wir sind in diesem Bauernhaus festgenagelt. Die Todespirscher brauchen Eure Hilfe.',0), +(1952,0,'deDE','Hallo, $C. Da Ihr hier seid, wisst Ihr ja wohl, dass der Silberwald voll von unseren Feinden ist. Um zu überleben m',0), +(2080,0,'deDE','Die Entstehung von Teldrassil war ein großer Erfolg, doch jetzt muss sich die Welt neu orientieren, um wieder ins Gleichgewicht zu finden.',0), +(2086,0,'deDE','Seid gegrüßt, $n.',0), +(2094,0,'deDE','Seid gegrüßt, $C. Ich befinde mich gerade in einer etwas misslichen Lage, ich habe fast keine Bälge mehr.',0), +(2121,0,'deDE','Informationen... Mit unseren Spähern und Agenten haben wir den Informationsfluss in Lordaeron in der Hand. Bewegungen der Geißel, ihre Stellungen, nichts entgeht unseren wachsamen Augen...',0), +(2215,0,'deDE','Um der dunklen Fürstin und Varimathras zu dienen, müssen wir gegen die menschliche Plage vorgehen.',0), +(2216,0,'deDE','Wir stehen kurz vor der Entwicklung der neuen Seuche, nach der unsere dunkle Fürstin so dringend verlangt.',0), +(2263,0,'deDE','Ich hoffe, Ihr seid zum Arbeiten hergekommen, $C. Wir haben viel zu tun und von der Horde, dem Syndikat und den Ogern können wir keine Hilfe erwarten.',0), +(2498,0,'deDE','Was, Was?! Wir müssen alle einen Profit machen... und das geht nicht, wenn wir nur dumm herumstehen.',0), +(2501,0,'deDE','Eh! Lust auf eine Runde Fingerhakeln?',0), +(2700,0,'deDE','Wir auf der Zuflucht halten eines der letzten Gebiete von Stromgarde im Arathihochland. Aber wir werden zusehends bedrängt...$B$BWenn Ihr Neuigkeiten bringt, dann hoffentlich gute.',0), +(2706,0,'deDE','Dank des Kriegshäuptlings verbleibt selbst in den Ruinen unseres alten Gefängnisses noch Hoffnung, und die Horde erhebt sich erneut.',0), +(2713,1,'deDE','Dieses Holzbrett bietet Platz für primitive Steckbriefe.',0), +(2785,0,'deDE','Weg da! Bleibt zurück! Ich habe ein Paket Sprengpulver und zögere nicht, es zu benutzen! Ich sprenge uns alle in die Luft!$B$BOh, Verzeihung. Ich dachte, Ihr wäret jemand anderes...',0), +(2786,0,'deDE','Willkommen bei \'Knochengriffs Runen und Verdamnisse\', $C. Ihr dürft Euch umsehen, aber bitte fasst nichts an',0), +(2817,0,'deDE','Ihr müsst in Schwierigkeiten sein, wenn Ihr dieses Ödland durchstreift, $C. In Schwierigkeiten wie ich.$B$BOder vielleicht seid Ihr auch nur verrückt. Verrückt wie ich.',0), +(2860,0,'deDE','Es war ein ziemlich spektakulärer Abgang, kann ich Euch sagen, $C. Wir haben alles gegriffen, was nicht niet- und nagelfest war. Darum haben wir jetzt ein paar Vorräte übrig.',0), +(2910,0,'deDE','Die Bastarde haben sich nachts auf uns gestürzt, nachdem wir ordentlich gezecht hatten. Sonst hätten wir sie leicht überwältigt, das ist mal sicher.$B$BJetzt sind alle tot... bis auf einige wenige von uns.',0), +(2920,0,'deDE','He, hallo, $N.$B$BLotwil ist nicht gerade der aufmerksamste Boss, den ich je hatte. Manchmal ist er ziemlich in seine Arbeit vertieft. Dann kriegen sein Untergebenen nichts zu essen oder werden nicht bezahlt.$B$B$B$BAber deshalb solltet Ihr nicht leiden müssen.',0), +(2921,0,'deDE','Wie gut, dass Ihr vorbeikommt, $C.$B$BIch heiße Lotwil Veriatus, Gründungsmitglied der Erleuchteten Versammlung für Arkanologie, Alchimie und Ingenieurwissenschaften: Unser Streben ist, die hohen Wissenschaften von Azeroth zu einer umfassenden Schule zu verschmelzen.',0); From 236f60799cb6de78b0fd514c860cc72a47e59b7c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 30 Dec 2024 21:21:56 +0000 Subject: [PATCH 25/35] chore(DB): import pending files Referenced commit(s): b6c957307067ac6cf3b008f137aa3fdae6fca8bb --- .../update_quest_greeting1.sql => db_world/2024_12_30_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/update_quest_greeting1.sql => db_world/2024_12_30_01.sql} (99%) diff --git a/data/sql/updates/pending_db_world/update_quest_greeting1.sql b/data/sql/updates/db_world/2024_12_30_01.sql similarity index 99% rename from data/sql/updates/pending_db_world/update_quest_greeting1.sql rename to data/sql/updates/db_world/2024_12_30_01.sql index 24ce9c5bbc661e..c4c677ea69c515 100644 --- a/data/sql/updates/pending_db_world/update_quest_greeting1.sql +++ b/data/sql/updates/db_world/2024_12_30_01.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_30_00 -> 2024_12_30_01 DELETE FROM `quest_greeting_locale` WHERE `ID` IN (234, 235, 238, 239, 240, 241, 261, 265, 272, 278, 342, 344, 381, 382, 392, 415, 464, 633, 656, 661, 714, 733, 737, 773, 786, 823, 1071, 1092, 1105, 1239, 1284, 1343, 1344, 1356, 1374, 1377, 1428, 1495, 1499, 1500, 1515, 1518, 1646, 1719, 1738, 1748, 1937, 1938, 1950, 1952, 2080, 2086, 2094, 2121, 2215, 2216, 2263, 2498, 2501, 2700, 2706, 2713, 2785, 2786, 2817, 2860, 2910, 2920, 2921) AND `locale` = 'deDE'; INSERT INTO `quest_greeting_locale` (`ID`, `type`, `locale`, `Greeting`, `VerifiedBuild`) VALUES (234,0,'deDE','In Westfall hat sich üble Verderbnis eingeschlichen. Während ich auf dem Schlachtfeld von Lordaeron meine Pflicht tat, wurden diese anständig geführten Höfe überfallen und zu Schlupfwinkeln für Schläger und Mörder umfunktioniert. Die Volksmiliz ist auf Eure Hilfe angewiesen.',0), From d6edcf810dd1d1a8df0905618264f94cd71c5f92 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Mon, 30 Dec 2024 18:56:18 -0300 Subject: [PATCH 26/35] =?UTF-8?q?fix(Scripts/PitOfSaron):=20Fix=20Scourgel?= =?UTF-8?q?ord=20Tyrannus=20not=20respawning=20afte=E2=80=A6=20(#21070)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PitOfSaron/boss_scourgelord_tyrannus.cpp | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index b0de4aba524492..1ea12a8314feeb 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -63,9 +63,9 @@ class boss_tyrannus : public CreatureScript { pInstance = me->GetInstanceScript(); me->SetReactState(REACT_PASSIVE); - if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID))) + if (Creature* rimefang = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID))) { - c->SetCanFly(true); + rimefang->SetCanFly(true); } } @@ -76,29 +76,27 @@ class boss_tyrannus : public CreatureScript { me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); events.Reset(); - if (me->HasReactState(REACT_AGGRESSIVE)) // Reset() called by EnterEvadeMode() - { - if (!pInstance) - return; - if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID))) - { - c->AI()->DoAction(1); - c->DespawnOrUnsummon(); - pInstance->SetGuidData(DATA_MARTIN_OR_GORKUN_GUID, ObjectGuid::Empty); - } - if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID))) - { - c->GetMotionMaster()->Clear(); - c->GetMotionMaster()->MoveIdle(); + pInstance->SetData(DATA_TYRANNUS, NOT_STARTED); + } - c->RemoveAllAuras(); - c->UpdatePosition(1017.3f, 168.974f, 642.926f, 5.2709f, true); - c->StopMovingOnCurrentPos(); - if (Vehicle* v = c->GetVehicleKit()) - v->InstallAllAccessories(false); - } - pInstance->SetData(DATA_TYRANNUS, NOT_STARTED); + void EnterEvadeMode(EvadeReason /*why*/) override + { + if (!pInstance) + return; + + if (Creature* creature = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID))) + { + creature->AI()->DoAction(1); + creature->DespawnOrUnsummon(); + pInstance->SetGuidData(DATA_MARTIN_OR_GORKUN_GUID, ObjectGuid::Empty); } + + // Tyrannus is temporarily spawned as Rimefang's rider. If he evades, despawn Rimefang. + // Tyrannus will be respawned once Rimefang respawns. + if (Creature* rimefang = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID))) + rimefang->DespawnOnEvade(); + + me->DespawnOrUnsummon(); } void DoAction(int32 param) override @@ -141,7 +139,7 @@ class boss_tyrannus : public CreatureScript if (TSDistCheckPos.GetExactDist(x, y, z) > 100.0f || z > TSDistCheckPos.GetPositionZ() + 20.0f || z < TSDistCheckPos.GetPositionZ() - 20.0f) { me->SetHealth(me->GetMaxHealth()); - EnterEvadeMode(); + EnterEvadeMode(EVADE_REASON_OTHER); return; } } From e837fa84f3da80f471a8555966a495db9d70adbc Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Mon, 30 Dec 2024 23:23:46 +0100 Subject: [PATCH 27/35] fix(Scripts/ZulAman): Eagle Gauntlet behavior (#20947) --- .../rev_1734398393541318995.sql | 11 +++++ .../ZulAman/instance_zulaman.cpp | 4 ++ .../EasternKingdoms/ZulAman/zulaman.cpp | 42 ++++++------------- .../scripts/EasternKingdoms/ZulAman/zulaman.h | 1 + 4 files changed, 29 insertions(+), 29 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1734398393541318995.sql diff --git a/data/sql/updates/pending_db_world/rev_1734398393541318995.sql b/data/sql/updates/pending_db_world/rev_1734398393541318995.sql new file mode 100644 index 00000000000000..7694bee4ef4eaf --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1734398393541318995.sql @@ -0,0 +1,11 @@ +-- +-- Eagle Trash Aggro Trigger +UPDATE `creature_template` SET `ScriptName` = '' WHERE (`entry` = 24223); +-- set spawntime to 30min Amani'shi Tempest +UPDATE `creature` SET `spawntimesecs` = 1800 WHERE (`id1` = 24549) AND (`guid` IN (89283)); +-- delete Amani'shi Wind Walker #5 next to Tempest +DELETE FROM `creature` WHERE (`id1` = 24179) AND (`guid` IN (1107)); +-- delete Amani'shi Protector #5 next to Tempest +DELETE FROM `creature` WHERE (`id1` = 24180) AND (`guid` IN (89311)); +DELETE FROM `creature_addon` WHERE `guid` IN (1107, 89311); +DELETE FROM `linked_respawn` WHERE `guid` IN (1107, 89311); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index abb73312631090..802fb0fddb2d09 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -238,8 +238,12 @@ class instance_zulaman : public InstanceMapScript _akilzonGauntlet = NOT_STARTED; for (ObjectGuid guid : AkilzonTrash) if (Creature* creature = instance->GetCreature(guid)) + { if (!creature->IsAlive()) creature->Respawn(); + else if (creature->GetEntry() == NPC_AMINISHI_TEMPEST) + creature->AI()->DoAction(ACTION_RESET_AKILZON_GAUNTLET); + } if (Creature* creature = GetCreature(DATA_LOOKOUT)) if (creature->isMoving()) creature->Respawn(true); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index 83034d1176c6e3..97dde689d398a5 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -590,7 +590,6 @@ struct npc_amanishi_lookout : public NullCreatureAI enum AmanishiTempest { - ACTION_START_GAUNTLET = 1, GROUP_AKILZON_GAUNTLET = 1, SPELL_SUMMON_EAGLE = 43487, SPELL_SUMMON_WARRIOR = 43486, @@ -605,6 +604,11 @@ struct npc_amanishi_tempest : public ScriptedAI { _summons.DespawnAll(); scheduler.CancelAll(); + } + + void JustEngagedWith(Unit* /*who*/) override + { + scheduler.CancelGroup(GROUP_AKILZON_GAUNTLET); scheduler.Schedule(9s, 11s, [this](TaskContext context) { DoCastVictim(SPELL_THUNDERCLAP); @@ -627,8 +631,15 @@ struct npc_amanishi_tempest : public ScriptedAI void DoAction(int32 action) override { - if (action == ACTION_START_GAUNTLET) + if (action == ACTION_START_AKILZON_GAUNTLET) ScheduleEvents(); + else if (action == ACTION_RESET_AKILZON_GAUNTLET) + Reset(); + } + + void SummonedCreatureEvade(Creature* /*summon*/) override + { + EnterEvadeMode(EVADE_REASON_OTHER); } void EnterEvadeMode(EvadeReason why) override @@ -639,7 +650,6 @@ struct npc_amanishi_tempest : public ScriptedAI void ScheduleEvents() { - me->SetInCombatWithZone(); scheduler.Schedule(29s, 53s, GROUP_AKILZON_GAUNTLET, [this](TaskContext context) { for (uint8 i = 0; i < 5; ++i) @@ -656,11 +666,6 @@ struct npc_amanishi_tempest : public ScriptedAI void UpdateAI(uint32 diff) override { scheduler.Update(diff); - if (!me->IsEngaged()) - return; - Unit* victim = me->SelectVictim(); - if (!victim || me->GetExactDist(victim) > me->GetAggroRange(victim)) - return; ScriptedAI::UpdateAI(diff); } @@ -669,26 +674,6 @@ struct npc_amanishi_tempest : public ScriptedAI SummonList _summons; }; -struct npc_eagle_trash_aggro_trigger : public ScriptedAI -{ - npc_eagle_trash_aggro_trigger(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) {} - - void MoveInLineOfSight(Unit* who) override - { - if (!me->IsWithinDist(who, 10.0f, false)) // distance not confirmed - return; - - Player* player = who->GetCharmerOrOwnerPlayerOrPlayerItself(); - if (!player || player->IsGameMaster()) - return; - - if (_instance->GetData(TYPE_AKILZON_GAUNTLET) == NOT_STARTED) - _instance->SetData(TYPE_AKILZON_GAUNTLET, IN_PROGRESS); - } -private: - InstanceScript* _instance; -}; - void AddSC_zulaman() { RegisterZulAmanCreatureAI(npc_forest_frog); @@ -697,5 +682,4 @@ void AddSC_zulaman() RegisterSpellScript(spell_ritual_of_power); RegisterZulAmanCreatureAI(npc_amanishi_lookout); RegisterZulAmanCreatureAI(npc_amanishi_tempest); - RegisterZulAmanCreatureAI(npc_eagle_trash_aggro_trigger); } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h index bebca990c8734e..66e3b079af9052 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h @@ -92,6 +92,7 @@ enum MiscIds DATA_TIMED_RUN = 0, ACTION_START_TIMED_RUN = 0, ACTION_START_AKILZON_GAUNTLET = 1, + ACTION_RESET_AKILZON_GAUNTLET = 2, GROUP_TIMED_RUN = 1 }; From 35bc0a78cedb6469ba2b3d66656544614f2b34ce Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 30 Dec 2024 22:24:48 +0000 Subject: [PATCH 28/35] chore(DB): import pending files Referenced commit(s): e837fa84f3da80f471a8555966a495db9d70adbc --- .../rev_1734398393541318995.sql => db_world/2024_12_30_02.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1734398393541318995.sql => db_world/2024_12_30_02.sql} (93%) diff --git a/data/sql/updates/pending_db_world/rev_1734398393541318995.sql b/data/sql/updates/db_world/2024_12_30_02.sql similarity index 93% rename from data/sql/updates/pending_db_world/rev_1734398393541318995.sql rename to data/sql/updates/db_world/2024_12_30_02.sql index 7694bee4ef4eaf..1bd2cd5f25bf70 100644 --- a/data/sql/updates/pending_db_world/rev_1734398393541318995.sql +++ b/data/sql/updates/db_world/2024_12_30_02.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_30_01 -> 2024_12_30_02 -- -- Eagle Trash Aggro Trigger UPDATE `creature_template` SET `ScriptName` = '' WHERE (`entry` = 24223); From 106e0ed4d2fc1148821d2d831e683ca6cbb440c8 Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Tue, 31 Dec 2024 09:40:53 +0100 Subject: [PATCH 29/35] fix(DB/Creature) Scarlet Peasant SmartAI. (#21069) --- .../sql/updates/pending_db_world/Scarlet_Peasant.sql | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 data/sql/updates/pending_db_world/Scarlet_Peasant.sql diff --git a/data/sql/updates/pending_db_world/Scarlet_Peasant.sql b/data/sql/updates/pending_db_world/Scarlet_Peasant.sql new file mode 100644 index 00000000000000..e85d06f42cf7ff --- /dev/null +++ b/data/sql/updates/pending_db_world/Scarlet_Peasant.sql @@ -0,0 +1,12 @@ + +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28557; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28557); +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 +(28557, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Peasant - On Reset - Set Reactstate Passive'), +(28557, 0, 1, 2, 101, 0, 100, 0, 1, 3, 3000, 0, 0, 0, 11, 51604, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Peasant - On 1 or More Players in Range - Cast \'Serverside - Stun Self\''), +(28557, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 4, 14561, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Peasant - On 1 or More Players in Range - Play Sound 14561'), +(28557, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 17, 431, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Peasant - On 1 or More Players in Range - Set Emote State 431'), +(28557, 0, 4, 5, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 21, 3, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Peasant - On 1 or More Players in Range - Set Orientation Closest Player'), +(28557, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 21, 3, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Peasant - On 1 or More Players in Range - Say Line 0'), +(28557, 0, 6, 0, 102, 0, 100, 0, 1, 3, 30000, 30000, 30000, 0, 24, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Peasant - On Less Than 1 Players in Range - Evade'); From 63bd7cdca340b90f035efe0a6bbd0ae0f7f38756 Mon Sep 17 00:00:00 2001 From: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Date: Tue, 31 Dec 2024 09:41:47 +0100 Subject: [PATCH 30/35] fix (DB/Creature) Citizen of Havenshire waypoints and SmartAI. (#21048) --- .../Citizen_of_Havenshire.sql | 772 ++++++++++++++++++ 1 file changed, 772 insertions(+) create mode 100644 data/sql/updates/pending_db_world/Citizen_of_Havenshire.sql diff --git a/data/sql/updates/pending_db_world/Citizen_of_Havenshire.sql b/data/sql/updates/pending_db_world/Citizen_of_Havenshire.sql new file mode 100644 index 00000000000000..42364d73e2669a --- /dev/null +++ b/data/sql/updates/pending_db_world/Citizen_of_Havenshire.sql @@ -0,0 +1,772 @@ + +-- Set Run Speed +UPDATE `creature_template` SET `speed_run` = 1.05 WHERE `entry` IN (28576, 28577); + +-- Remove Wrong Auras +UPDATE `creature_addon` SET `auras` = '' WHERE (`guid` IN (128916, 128921, 128925, 128927, 128966, 128969, 128972, 128975, 128980)); + +-- Remove Guids +DELETE FROM `creature` WHERE (`id1` = 28576) AND (`guid` IN (128921, 128923, 128925, 128931, 128932, 128933, 128936, 128937, 128938, 128939, 128940, 128941, 128942, 128943, 128944, 128945, 128946, 128947, 128949, 128950, 128951, 128952, 128953, 128955, 128956, 128957)); +DELETE FROM `creature_addon` WHERE (`guid` IN (128921, 128923, 128925, 128931, 128932, 128933, 128936, 128937, 128938, 128939, 128940, 128941, 128942, 128943, 128944, 128945, 128946, 128947, 128949, 128950, 128951, 128952, 128953, 128955, 128956, 128957)); +DELETE FROM `creature` WHERE (`id1` = 28577) AND (`guid` IN (128969, 128971, 128972, 128974, 128975, 128977, 128982, 128983, 128984, 128985, 128987, 128988, 128989, 128990, 128994, 128995, 128996, 128997, 128998, 128999, 129000, 129001)); +DELETE FROM `creature_addon` WHERE (`guid` IN (128969, 128971, 128972, 128974, 128975, 128977, 128982, 128983, 128984, 128985, 128987, 128988, 128989, 128990, 128994, 128995, 128996, 128997, 128998, 128999, 129000, 129001)); + +-- Change Wander Distance and Movement Type +UPDATE `creature` SET `wander_distance` = 0, `MovementType` = 0 WHERE `guid` IN (128927, 128928, 128930, 128922, 128924, 128954, 128929, 128934, 128926, 128920, 128916, 128935, 128948, 128910, 128911, 128912, 128913, 128914, 128915, 128917, 128918, 128919) AND `id1` = 28576; +UPDATE `creature` SET `wander_distance` = 0, `MovementType` = 0 WHERE `guid` IN (128973, 128980, 128976, 128978, 128981, 128968, 128993, 128979, 128986, 128970, 128966, 128991, 128992, 128958, 128959, 128960, 128961, 128962, 128963, 128964, 128965, 128967) AND `id1` = 28577; + +-- Change Positions (sniffed values) +UPDATE `creature` SET `position_x` = 2083.5244, `position_y` = -5713.8477, `position_z` = 100.62685, `orientation` = 5.6665, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128922, 28576), (128979, 28577)); +UPDATE `creature` SET `position_x` = 1959.51, `position_y` = -5809.41, `position_z` = 101.222, `orientation` = 1.48353, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128927, 28576), (128986, 28577)); +UPDATE `creature` SET `position_x` = 2104.597, `position_y` = -5852.6714, `position_z` = 102.65492, `orientation` = 3.7433, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128928, 28576), (128970, 28577)); +UPDATE `creature` SET `position_x` = 2092.7227, `position_y` = -5778.4004, `position_z` = 99.17004, `orientation` = 2.3495708, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128930, 28576), (128966, 28577)); +UPDATE `creature` SET `position_x` = 1965.97, `position_y` = -5833.76, `position_z` = 100.843, `orientation` = 4.08407, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128973, 28577), (128924, 28576)); +UPDATE `creature` SET `position_x` = 2126.9946, `position_y` = -5881.348, `position_z` = 102.23642, `orientation` = 2.1005676, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128976, 28577), (128954, 28576)); +UPDATE `creature` SET `position_x` = 2056.6086, `position_y` = -5754.899, `position_z` = 98.03694, `orientation` = 3.0397918, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128978, 28577), (128929, 28576)); +UPDATE `creature` SET `position_x` = 2067.315, `position_y` = -5915.171, `position_z` = 106.67783, `orientation` = 3.5101542, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128980, 28577), (128934, 28576)); +UPDATE `creature` SET `position_x` = 1927.4072, `position_y` = -5807.218, `position_z` = 100.20784, `orientation` = 5.9593172, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128981, 28577), (128926, 28576)); +UPDATE `creature` SET `position_x` = 2160.4504, `position_y` = -5793.529, `position_z` = 100.928505, `orientation` = 2.87087, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128968, 28577), (128920, 28576)); +UPDATE `creature` SET `position_x` = 2144.6318, `position_y` = -5754.6543, `position_z` = 99.69839, `orientation` = 5.02815, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128993, 28577), (128916, 28576)); +UPDATE `creature` SET `position_x` = 2145.1165, `position_y` = -5919.1206, `position_z` = 98.640945, `orientation` = 1.53392, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128991, 28577), (128935, 28576)); +UPDATE `creature` SET `position_x` = 2254.762, `position_y` = -5809.216, `position_z` = 101.03145, `orientation` = 2.50164, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128992, 28577), (128948, 28576)); +UPDATE `creature` SET `position_x` = 2182.8823, `position_y` = -5747.591, `position_z` = 101.89203, `orientation` = 4.89732, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128958, 28577), (128910, 28576)); +UPDATE `creature` SET `position_x` = 2220.754, `position_y` = -5868.3633, `position_z` = 101.3891, `orientation` = 3.23552, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128959, 28577), (128911, 28576)); +UPDATE `creature` SET `position_x` = 2221.779, `position_y` = -5904.03, `position_z` = 101.254715, `orientation` = 1.18682, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128960, 28577), (128912, 28576)); +UPDATE `creature` SET `position_x` = 2197.7969, `position_y` = -5908.8823, `position_z` = 100.96651, `orientation` = 2.43027, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128961, 28577), (128913, 28576)); +UPDATE `creature` SET `position_x` = 2272.2073, `position_y` = -5888.6865, `position_z` = 100.51772, `orientation` = 3.63413, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128962, 28577), (128914, 28576)); +UPDATE `creature` SET `position_x` = 2286.7288, `position_y` = -5786.4834, `position_z` = 101.393166, `orientation` = 2.39381, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128963, 28577), (128915, 28576)); +UPDATE `creature` SET `position_x` = 2316.1199, `position_y` = -5880.3145, `position_z` = 100.80853, `orientation` = 2.82385, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128964, 28577), (128917, 28576)); +UPDATE `creature` SET `position_x` = 2172.77, `position_y` = -5739.8115, `position_z` = 101.75742, `orientation` = 4.92786, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128965, 28577), (128918, 28576)); +UPDATE `creature` SET `position_x` = 1959.3444, `position_y` = -5881.302, `position_z` = 101.192764, `orientation` = 2.11768, `spawntimesecs` = 120, `VerifiedBuild` = 58158 WHERE (`guid`, `id1`) IN ((128967, 28577), (128919, 28576)); + +-- Waypoints +DELETE FROM `waypoint_data` WHERE `id` IN (12897300); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12897300, 1, 1944.7305 , -5843.9497 , 100.4848, NULL, 0, 1, 0, 100, 0), +(12897300, 2, 1931.9498 , -5845.102 , 100.816826, NULL, 0, 1, 0, 100, 0), +(12897300, 3, 1903.3739 , -5842.505 , 100.84671, NULL, 0, 1, 0, 100, 0), +(12897300, 4, 1888.0885 , -5837.739 , 101.21175, NULL, 0, 1, 0, 100, 0), +(12897300, 5, 1848.5492 , -5823.535 , 100.22142, NULL, 0, 1, 0, 100, 0), +(12897300, 6, 1801.6525 , -5819.4927 , 108.76074, NULL, 0, 1, 0, 100, 0), +(12897300, 7, 1772.8551 , -5820.0854 , 115.72131, NULL, 0, 1, 0, 100, 0), +(12897300, 8, 1735.2579 , -5820.85 , 116.11808, NULL, 0, 1, 0, 100, 0), +(12897300, 9, 1716.0979 , -5821.3535 , 116.12192, NULL, 0, 1, 0, 100, 0), +(12897300, 10, 1707.7023 , -5817.693 , 116.06911, NULL, 0, 1, 0, 100, 0), +(12897300, 11, 1671.9619 , -5790.0522 , 116.16962, NULL, 0, 1, 0, 100, 0), +(12897300, 12, 1635.5886 , -5779.9287 , 116.1127, NULL, 0, 1, 0, 100, 0), +(12897300, 13, 1606.2896 , -5759.3193 , 118.430176, NULL, 0, 1, 0, 100, 0), +(12897300, 14, 1588.4744 , -5725.8613 , 121.6682, NULL, 0, 1, 0, 100, 0), +(12897300, 15, 1586.0789 , -5721.0986 , 121.72284, NULL, 0, 1, 0, 100, 0), +(12897300, 16, 1576.3289 , -5724.8486 , 121.22284, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12892700); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12892700, 1, 1969.4949 , -5841.5913 , 100.70409, NULL, 0, 1, 0, 100, 0), +(12892700, 2, 1967.9069 , -5879.0483 , 100.99721, NULL, 0, 1, 0, 100, 0), +(12892700, 3, 1941.4285 , -5904.2793 , 101.0126, NULL, 0, 1, 0, 100, 0), +(12892700, 4, 1905.0734 , -5910.6533 , 101.74708, NULL, 0, 1, 0, 100, 0), +(12892700, 5, 1867.1259 , -5916.288 , 104.24944, NULL, 0, 1, 0, 100, 0), +(12892700, 6, 1830.589 , -5926.684 , 110.515434, NULL, 0, 1, 0, 100, 0), +(12892700, 7, 1797.2595 , -5929.0654 , 116.07023, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12898000); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12898000, 1, 2040.1895, -5908.4395, 105.352394, NULL, 0, 1, 0, 100, 0), +(12898000, 2, 2022.1426, -5907.8115, 105.09137, NULL, 0, 1, 0, 100, 0), +(12898000, 3, 1998.4114, -5904.9033, 103.78064, NULL, 0, 1, 0, 100, 0), +(12898000, 4, 1959.7418, -5905.0034, 102.12171, NULL, 0, 1, 0, 100, 0), +(12898000, 5, 1930.9708, -5908.3857, 101.310776, NULL, 0, 1, 0, 100, 0), +(12898000, 6, 1882.8198, -5912.3, 103.69942, NULL, 0, 1, 0, 100, 0), +(12898000, 7, 1845.4309, -5921.158, 106.55255, NULL, 0, 1, 0, 100, 0), +(12898000, 8, 1827.6106, -5926.33, 111.30682, NULL, 0, 1, 0, 100, 0), +(12898000, 9, 1799.338, -5929.2344, 115.8991, NULL, 0, 1, 0, 100, 0), +(12898000, 10, 1763.3955, -5918.088, 116.10021, NULL, 0, 1, 0, 100, 0), +(12898000, 11, 1728.2671, -5901.347, 116.121765, NULL, 0, 1, 0, 100, 0), +(12898000, 12, 1703.8771, -5885.782, 116.13325, NULL, 0, 1, 0, 100, 0), +(12898000, 13, 1689.8062, -5861.2275, 116.30095, NULL, 0, 1, 0, 100, 0), +(12898000, 14, 1658.6609, -5843.833, 116.13829, NULL, 0, 1, 0, 100, 0), +(12898000, 15, 1654.2504, -5842.74, 116.59402, NULL, 0, 1, 0, 100, 0), +(12898000, 16, 1643.8115, -5842.8213, 117.292656, NULL, 0, 1, 0, 100, 0), +(12898000, 17, 1643.0146, -5856.5806, 117.29288, NULL, 0, 1, 0, 100, 0), +(12898000, 18, 1644.2047, -5856.674, 117.29288, NULL, 0, 1, 0, 100, 0), +(12898000, 19, 1646.0004, -5846.99, 122.09402, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12892800); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12892800, 1, 2066.441, -5892.1685, 104.63345, NULL, 0, 1, 0, 100, 0), +(12892800, 2, 2040.8818, -5904.998, 105.20388, NULL, 0, 1, 0, 100, 0), +(12892800, 3, 2015.8793, -5906.8616, 104.558655, NULL, 0, 1, 0, 100, 0), +(12892800, 4, 1992.981, -5905.2583, 103.64758, NULL, 0, 1, 0, 100, 0), +(12892800, 5, 1963.8256, -5904.36, 102.39117, NULL, 0, 1, 0, 100, 0), +(12892800, 6, 1915.5765, -5907.2207, 101.523865, NULL, 0, 1, 0, 100, 0), +(12892800, 7, 1877.1783, -5911.365, 103.98798, NULL, 0, 1, 0, 100, 0), +(12892800, 8, 1840.3024, -5922.0996, 107.65767, NULL, 0, 1, 0, 100, 0), +(12892800, 9, 1813.3237, -5929.456, 114.523346, NULL, 0, 1, 0, 100, 0), +(12892800, 10, 1776.1013, -5923.899, 116.10615, NULL, 0, 1, 0, 100, 0), +(12892800, 11, 1761.0944, -5918.087, 116.12125, NULL, 0, 1, 0, 100, 0), +(12892800, 12, 1761.0944, -5918.087, 116.12125, NULL, 0, 1, 0, 100, 0), +(12892800, 13, 1706.6926, -5886.3516, 116.134094, NULL, 0, 1, 0, 100, 0), +(12892800, 14, 1690.5028, -5875.701, 116.15037, NULL, 0, 1, 0, 100, 0), +(12892800, 15, 1672.8468, -5874.1313, 116.15768, NULL, 0, 1, 0, 100, 0), +(12892800, 16, 1656.9258, -5879.2573, 117.14002, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12897600); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12897600, 1, 2111.3591, -5871.938, 102.830246, NULL, 0, 1, 0, 100, 0), +(12897600, 2, 2074.83, -5891.751, 104.46708, NULL, 0, 1, 0, 100, 0), +(12897600, 3, 2047.8912, -5902.0273, 105.27161, NULL, 0, 1, 0, 100, 0), +(12897600, 4, 2018.3429, -5907.862, 104.67937, NULL, 0, 1, 0, 100, 0), +(12897600, 5, 1997.4357, -5905.4326, 103.8081, NULL, 0, 1, 0, 100, 0), +(12897600, 6, 1961.94, -5904.3047, 102.270355, NULL, 0, 1, 0, 100, 0), +(12897600, 7, 1913.7784, -5907.3794, 101.558586, NULL, 0, 1, 0, 100, 0), +(12897600, 8, 1875.4719, -5911.5635, 104.01149, NULL, 0, 1, 0, 100, 0), +(12897600, 9, 1838.9071, -5922.575, 107.9482, NULL, 0, 1, 0, 100, 0), +(12897600, 10, 1811.834, -5929.828, 114.76414, NULL, 0, 1, 0, 100, 0), +(12897600, 11, 1774.6315, -5923.45, 116.10475, NULL, 0, 1, 0, 100, 0), +(12897600, 12, 1747.9906, -5912.2446, 116.11488, NULL, 0, 1, 0, 100, 0), +(12897600, 13, 1706.5342, -5887.2197, 116.13313, NULL, 0, 1, 0, 100, 0), +(12897600, 14, 1690.7845, -5875.925, 116.14969, NULL, 0, 1, 0, 100, 0), +(12897600, 15, 1676.5111, -5873.307, 116.164276, NULL, 0, 1, 0, 100, 0), +(12897600, 16, 1676.5111, -5873.307, 116.164276, NULL, 0, 1, 0, 100, 0), +(12897600, 17, 1657.8718, -5880.3726, 117.14161, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12893000); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12893000, 1, 2070.2095, -5762.7603, 99.81166, NULL, 0, 1, 0, 100, 0), +(12893000, 2, 2070.2095, -5762.7603, 99.81166, NULL, 0, 1, 0, 100, 0), +(12893000, 3, 1994.7286, -5754.8096, 101.051895, NULL, 0, 1, 0, 100, 0), +(12893000, 4, 1978.1233, -5761.267, 100.05591, NULL, 0, 1, 0, 100, 0), +(12893000, 5, 1975.6188, -5775.5063, 100.50737, NULL, 0, 1, 0, 100, 0), +(12893000, 6, 1957.5121, -5804.2607, 101.00263, NULL, 0, 1, 0, 100, 0), +(12893000, 7, 1931.0342, -5809.3525, 100.24758, NULL, 0, 1, 0, 100, 0), +(12893000, 8, 1902.3887, -5812.0005, 100.822266, NULL, 0, 1, 0, 100, 0), +(12893000, 9, 1854.5596, -5817.096, 100.11816, NULL, 0, 1, 0, 100, 0), +(12893000, 10, 1825.8574, -5819.058, 102.42384, NULL, 0, 1, 0, 100, 0), +(12893000, 11, 1797.9662, -5819.641, 109.77238, NULL, 0, 1, 0, 100, 0), +(12893000, 12, 1760.0563, -5818.603, 116.11024, NULL, 0, 1, 0, 100, 0), +(12893000, 13, 1731.8124, -5824.739, 116.122055, NULL, 0, 1, 0, 100, 0), +(12893000, 14, 1695.5244, -5833.4883, 116.13347, NULL, 0, 1, 0, 100, 0), +(12893000, 15, 1677.6709, -5833.4097, 116.27008, NULL, 0, 1, 0, 100, 0), +(12893000, 16, 1664.9114, -5810.619, 116.269135, NULL, 0, 1, 0, 100, 0), +(12893000, 17, 1651.6998, -5803.006, 117.191055, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12897800); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12897800, 1, 2023.7551, -5751.5454, 99.346756, NULL, 0, 1, 0, 100, 0), +(12897800, 2, 1976.9875, -5752.822, 99.495636, NULL, 0, 1, 0, 100, 0), +(12897800, 3, 1939.8892, -5760.4897, 104.04903, NULL, 0, 1, 0, 100, 0), +(12897800, 4, 1921.4534, -5766.0054, 103.05617, NULL, 0, 1, 0, 100, 0), +(12897800, 5, 1902.7848, -5806.5317, 100.9096, NULL, 0, 1, 0, 100, 0), +(12897800, 6, 1871.4408, -5841.7896, 101.79826, NULL, 0, 1, 0, 100, 0), +(12897800, 7, 1871.3506, -5868.6646, 103.00215, NULL, 0, 1, 0, 100, 0), +(12897800, 8, 1869.5706, -5907.1045, 103.911934, NULL, 0, 1, 0, 100, 0), +(12897800, 9, 1829.5681, -5925.896, 110.61987, NULL, 0, 1, 0, 100, 0), +(12897800, 10, 1811.7615, -5931.8643, 114.946075, NULL, 0, 1, 0, 100, 0), +(12897800, 11, 1783.5422, -5928.593, 116.11073, NULL, 0, 1, 0, 100, 0), +(12897800, 12, 1766.4922, -5933.464, 116.12873, NULL, 0, 1, 0, 100, 0), +(12897800, 13, 1742.8866, -5964.3276, 117.121796, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12898100); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12898100, 1, 1951.9263, -5815.4497, 101.04118, NULL, 0, 1, 0, 100, 0), +(12898100, 2, 1970.7544, -5844.5786, 100.687996, NULL, 0, 1, 0, 100, 0), +(12898100, 3, 1967.2448, -5881.7847, 101.34556, NULL, 0, 1, 0, 100, 0), +(12898100, 4, 1938.9346, -5905.942, 101.04604, NULL, 0, 1, 0, 100, 0), +(12898100, 5, 1902.1019, -5910.5957, 101.783394, NULL, 0, 1, 0, 100, 0), +(12898100, 6, 1864.4154, -5916.9707, 104.330055, NULL, 0, 1, 0, 100, 0), +(12898100, 7, 1828.0709, -5927.4385, 111.26059, NULL, 0, 1, 0, 100, 0), +(12898100, 8, 1797.2505, -5929.193, 116.19281, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12892200); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12892200, 1, 2094.0906, -5834.092, 102.69047, NULL, 0, 1, 0, 100, 0), +(12892200, 2, 2079.626, -5841.1475, 103.4521, NULL, 0, 1, 0, 100, 0), +(12892200, 3, 2035.0693, -5845.4404, 100.44537, NULL, 0, 1, 0, 100, 0), +(12892200, 4, 2006.8013, -5844.5874, 100.6099, NULL, 0, 1, 0, 100, 0), +(12892200, 5, 2000.3555, -5844.169, 100.701965, NULL, 0, 1, 0, 100, 0), +(12892200, 6, 1946.4022, -5848.609, 100.432556, NULL, 0, 1, 0, 100, 0), +(12892200, 7, 1909.1177, -5846.7256, 100.54386, NULL, 0, 1, 0, 100, 0), +(12892200, 8, 1874.3818, -5830.268, 101.104195, NULL, 0, 1, 0, 100, 0), +(12892200, 9, 1849.9789, -5822.343, 100.16639, NULL, 0, 1, 0, 100, 0), +(12892200, 10, 1791.5347, -5817.185, 111.733925, NULL, 0, 1, 0, 100, 0), +(12892200, 11, 1754.2554, -5817.1816, 116.08976, NULL, 0, 1, 0, 100, 0), +(12892200, 12, 1748.3037, -5806.4995, 117.35039, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12896800); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12896800, 1, 2013.9696, -5750.505, 99.70143, NULL, 0, 1, 0, 100, 0), +(12896800, 2, 1972.1002, -5753.1313, 99.956764, NULL, 0, 1, 0, 100, 0), +(12896800, 3, 1930.2598, -5762.677, 103.71254, NULL, 0, 1, 0, 100, 0), +(12896800, 4, 1911.7079, -5769.6855, 103.2831, NULL, 0, 1, 0, 100, 0), +(12896800, 5, 1900.9596, -5814.0117, 100.851074, NULL, 0, 1, 0, 100, 0), +(12896800, 6, 1867.4998, -5845.516, 102.06406, NULL, 0, 1, 0, 100, 0), +(12896800, 7, 1872.8259, -5877.5146, 103.11753, NULL, 0, 1, 0, 100, 0), +(12896800, 8, 1868.8295, -5913.8647, 104.1411, NULL, 0, 1, 0, 100, 0), +(12896800, 9, 1824.596, -5927.4673, 112.021965, NULL, 0, 1, 0, 100, 0), +(12896800, 10, 1806.9615, -5933.51, 115.49063, NULL, 0, 1, 0, 100, 0), +(12896800, 11, 1775.8497, -5926.973, 116.12056, NULL, 0, 1, 0, 100, 0), +(12896800, 12, 1743.2236, -5964.2686, 117.110565, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12899300); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12899300, 1, 2076.472, -5888.584, 104.19423, NULL, 0, 1, 0, 100, 0), +(12899300, 2, 2041.5881, -5906.801, 105.34805, NULL, 0, 1, 0, 100, 0), +(12899300, 3, 2024.7155, -5907.803, 104.91816, NULL, 0, 1, 0, 100, 0), +(12899300, 4, 2004.056, -5904.8228, 103.98675, NULL, 0, 1, 0, 100, 0), +(12899300, 5, 1994.0098, -5904.212, 103.83737, NULL, 0, 1, 0, 100, 0), +(12899300, 6, 1975.0098, -5903.212, 103.33737, NULL, 0, 1, 0, 100, 0), +(12899300, 7, 1960.9049, -5902.596, 102.14691, NULL, 0, 1, 0, 100, 0), +(12899300, 8, 1920.0485, -5909.797, 101.558655, NULL, 0, 1, 0, 100, 0), +(12899300, 9, 1886.3186, -5910.0615, 103.367516, NULL, 0, 1, 0, 100, 0), +(12899300, 10, 1871.5569, -5910.3486, 104.01594, NULL, 0, 1, 0, 100, 0), +(12899300, 11, 1828.5173, -5925.0347, 110.76521, NULL, 0, 1, 0, 100, 0), +(12899300, 12, 1796.468, -5930.4634, 116.01326, NULL, 0, 1, 0, 100, 0), +(12899300, 13, 1756.4623, -5915.221, 116.10086, NULL, 0, 1, 0, 100, 0), +(12899300, 14, 1716.3547, -5893.5947, 116.14236, NULL, 0, 1, 0, 100, 0), +(12899300, 15, 1682.9327, -5873.7715, 116.17101, NULL, 0, 1, 0, 100, 0), +(12899300, 16, 1663.3423, -5876.8574, 117.09895, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12899100); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12899100, 1, 2133.4194, -5890.052, 102.231575, NULL, 0, 1, 0, 100, 0), +(12899100, 2, 2122.249, -5838.9604, 101.52284, NULL, 0, 1, 0, 100, 0), +(12899100, 3, 2100.3472, -5814.198, 100.14385, NULL, 0, 1, 0, 100, 0), +(12899100, 4, 2076.754, -5783.5723, 101.04958, NULL, 0, 1, 0, 100, 0), +(12899100, 5, 2058.3276, -5756.188, 98.141235, NULL, 0, 1, 0, 100, 0), +(12899100, 6, 2017.8334, -5758.0444, 100.78644, NULL, 0, 1, 0, 100, 0), +(12899100, 7, 1987.5137, -5753.7964, 100.69717, NULL, 0, 1, 0, 100, 0), +(12899100, 8, 1970.6337, -5767.217, 100.53471, NULL, 0, 1, 0, 100, 0), +(12899100, 9, 1979.3994, -5781.793, 100.605316, NULL, 0, 1, 0, 100, 0), +(12899100, 10, 1951.6432, -5810.2803, 101.017456, NULL, 0, 1, 0, 100, 0), +(12899100, 11, 1918.3981, -5808.7803, 100.12152, NULL, 0, 1, 0, 100, 0), +(12899100, 12, 1891.5178, -5814.1875, 101.82555, NULL, 0, 1, 0, 100, 0), +(12899100, 13, 1843.686, -5817.9766, 100.21717, NULL, 0, 1, 0, 100, 0), +(12899100, 14, 1820.1938, -5819.423, 103.83345, NULL, 0, 1, 0, 100, 0), +(12899100, 15, 1786.3748, -5819.7363, 113.102936, NULL, 0, 1, 0, 100, 0), +(12899100, 16, 1755.2192, -5818.3926, 116.12125, NULL, 0, 1, 0, 100, 0), +(12899100, 17, 1726.4553, -5826.191, 116.12224, NULL, 0, 1, 0, 100, 0), +(12899100, 18, 1691.1974, -5835.975, 116.13765, NULL, 0, 1, 0, 100, 0), +(12899100, 19, 1671.5693, -5832.2524, 116.32982, NULL, 0, 1, 0, 100, 0), +(12899100, 20, 1663.0612, -5804.608, 116.12191, NULL, 0, 1, 0, 100, 0), +(12899100, 21, 1650.4883, -5802.892, 117.11298, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12899200); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12899200, 1, 2208.9922, -5774.83, 101.751114, NULL, 0, 1, 0, 100, 0), +(12899200, 2, 2180.3252, -5769.429, 101.35872, NULL, 0, 1, 0, 100, 0), +(12899200, 3, 2159.842, -5798.3203, 101.017365, NULL, 0, 1, 0, 100, 0), +(12899200, 4, 2143.869, -5819.368, 100.95576, NULL, 0, 1, 0, 100, 0), +(12899200, 5, 2130.524, -5854.802, 101.66334, NULL, 0, 1, 0, 100, 0), +(12899200, 6, 2099.8154, -5874.7124, 103.43926, NULL, 0, 1, 0, 100, 0), +(12899200, 7, 2058.2124, -5898.143, 105.209, NULL, 0, 1, 0, 100, 0), +(12899200, 8, 2018.2173, -5908.242, 104.687775, NULL, 0, 1, 0, 100, 0), +(12899200, 9, 1980.6598, -5904.7993, 103.00401, NULL, 0, 1, 0, 100, 0), +(12899200, 10, 1951.6602, -5904.4023, 101.53832, NULL, 0, 1, 0, 100, 0), +(12899200, 11, 1916.6315, -5907.4443, 101.529045, NULL, 0, 1, 0, 100, 0), +(12899200, 12, 1874.3184, -5912.4497, 104.05506, NULL, 0, 1, 0, 100, 0), +(12899200, 13, 1830.64, -5924.63, 110.22774, NULL, 0, 1, 0, 100, 0), +(12899200, 14, 1799.2496, -5933.987, 115.95625, NULL, 0, 1, 0, 100, 0), +(12899200, 15, 1756.3352, -5918.8296, 116.11929, NULL, 0, 1, 0, 100, 0), +(12899200, 16, 1731.1982, -5905.51, 116.127594, NULL, 0, 1, 0, 100, 0), +(12899200, 17, 1719.0509, -5885.116, 116.58339, NULL, 0, 1, 0, 100, 0), +(12899200, 18, 1727.4645, -5872.8423, 116.125916, NULL, 0, 1, 0, 100, 0), +(12899200, 19, 1733.1125, -5871.979, 116.641304, NULL, 0, 1, 0, 100, 0), +(12899200, 20, 1739.6682, -5873.1895, 116.643486, NULL, 0, 1, 0, 100, 0), +(12899200, 21, 1739.8035, -5879.1963, 116.66808, NULL, 0, 1, 0, 100, 0), +(12899200, 22, 1750.481, -5878.4556, 116.03192, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12895800); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12895800, 1, 2112.2366, -5870.4365, 102.70522, NULL, 0, 1, 0, 100, 0), +(12895800, 2, 2076.472, -5888.584, 104.19423, NULL, 0, 1, 0, 100, 0), +(12895800, 3, 2041.5881, -5906.801, 105.34805, NULL, 0, 1, 0, 100, 0), +(12895800, 4, 2022.9702, -5905.5884, 104.894196, NULL, 0, 1, 0, 100, 0), +(12895800, 5, 2004.056, -5904.8228, 103.98675, NULL, 0, 1, 0, 100, 0), +(12895800, 6, 1960.9049, -5902.596, 102.14691, NULL, 0, 1, 0, 100, 0), +(12895800, 7, 1920.0485, -5909.797, 101.558655, NULL, 0, 1, 0, 100, 0), +(12895800, 8, 1871.5569, -5910.3486, 104.01594, NULL, 0, 1, 0, 100, 0), +(12895800, 9, 1828.5173, -5925.0347, 110.76521, NULL, 0, 1, 0, 100, 0), +(12895800, 10, 1796.468, -5930.4634, 116.01326, NULL, 0, 1, 0, 100, 0), +(12895800, 11, 1756.4623, -5915.221, 116.10086, NULL, 0, 1, 0, 100, 0), +(12895800, 12, 1716.3547, -5893.5947, 116.14236, NULL, 0, 1, 0, 100, 0), +(12895800, 13, 1682.9327, -5873.7715, 116.17101, NULL, 0, 1, 0, 100, 0), +(12895800, 14, 1663.3423, -5876.8574, 117.27307, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12895900); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12895900, 1, 2097.34, -5841.3203, 102.67261, NULL, 0, 1, 0, 100, 0), +(12895900, 2, 2066.8403, -5841.029, 102.287506, NULL, 0, 1, 0, 100, 0), +(12895900, 3, 2029.0686, -5846.0244, 100.455025, NULL, 0, 1, 0, 100, 0), +(12895900, 4, 1993.8956, -5843.7485, 100.748825, NULL, 0, 1, 0, 100, 0), +(12895900, 5, 1962.1233, -5843.173, 100.5741, NULL, 0, 1, 0, 100, 0), +(12895900, 6, 1935.0837, -5849.48, 101.044945, NULL, 0, 1, 0, 100, 0), +(12895900, 7, 1904.2611, -5846.199, 100.77372, NULL, 0, 1, 0, 100, 0), +(12895900, 8, 1867.7396, -5826.739, 100.54382, NULL, 0, 1, 0, 100, 0), +(12895900, 9, 1831.8232, -5817.8496, 101.37269, NULL, 0, 1, 0, 100, 0), +(12895900, 10, 1786.0167, -5816.726, 113.24113, NULL, 0, 1, 0, 100, 0), +(12895900, 11, 1746.1085, -5817.3066, 116.121925, NULL, 0, 1, 0, 100, 0), +(12895900, 12, 1747.8519, -5805.8174, 117.27875, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12896000); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12896000, 1, 2056.6086, -5754.899, 98.03696, NULL, 0, 1, 0, 100, 0), +(12896000, 2, 2013.9696, -5750.505, 99.70143, NULL, 0, 1, 0, 100, 0), +(12896000, 3, 1972.1002, -5753.1313, 99.956764, NULL, 0, 1, 0, 100, 0), +(12896000, 4, 1930.2598, -5762.677, 103.71254, NULL, 0, 1, 0, 100, 0), +(12896000, 5, 1911.7079, -5769.6855, 103.2831, NULL, 0, 1, 0, 100, 0), +(12896000, 6, 1900.9596, -5814.0117, 100.851074, NULL, 0, 1, 0, 100, 0), +(12896000, 7, 1867.4998, -5845.516, 102.06406, NULL, 0, 1, 0, 100, 0), +(12896000, 8, 1872.8259, -5877.5146, 103.11753, NULL, 0, 1, 0, 100, 0), +(12896000, 9, 1868.8295, -5913.8647, 104.1411, NULL, 0, 1, 0, 100, 0), +(12896000, 10, 1824.596, -5927.4673, 112.021965, NULL, 0, 1, 0, 100, 0), +(12896000, 11, 1806.9615, -5933.51, 115.49063, NULL, 0, 1, 0, 100, 0), +(12896000, 12, 1775.8497, -5926.973, 116.12056, NULL, 0, 1, 0, 100, 0), +(12896000, 13, 1755.8041, -5940.877, 116.13806, NULL, 0, 1, 0, 100, 0), +(12896000, 14, 1743.2236, -5964.2686, 117.27308, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12896100); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12896100, 1, 2092.1965, -5774.9946, 99.134636, NULL, 0, 1, 0, 100, 0), +(12896100, 2, 2058.3276, -5756.188, 98.141235, NULL, 0, 1, 0, 100, 0), +(12896100, 3, 2017.8334, -5758.0444, 100.78644, NULL, 0, 1, 0, 100, 0), +(12896100, 4, 1987.5137, -5753.7964, 100.69717, NULL, 0, 1, 0, 100, 0), +(12896100, 5, 1970.6337, -5767.217, 100.53471, NULL, 0, 1, 0, 100, 0), +(12896100, 6, 1979.3994, -5781.793, 100.605316, NULL, 0, 1, 0, 100, 0), +(12896100, 7, 1951.6432, -5810.2803, 101.017456, NULL, 0, 1, 0, 100, 0), +(12896100, 8, 1918.3981, -5808.7803, 100.12152, NULL, 0, 1, 0, 100, 0), +(12896100, 9, 1891.5178, -5814.1875, 101.82555, NULL, 0, 1, 0, 100, 0), +(12896100, 10, 1843.686, -5817.9766, 100.21717, NULL, 0, 1, 0, 100, 0), +(12896100, 11, 1820.1938, -5819.423, 103.83345, NULL, 0, 1, 0, 100, 0), +(12896100, 12, 1786.3748, -5819.7363, 113.102936, NULL, 0, 1, 0, 100, 0), +(12896100, 13, 1755.2192, -5818.3926, 116.12125, NULL, 0, 1, 0, 100, 0), +(12896100, 14, 1726.4553, -5826.191, 116.12224, NULL, 0, 1, 0, 100, 0), +(12896100, 15, 1691.1974, -5835.975, 116.13765, NULL, 0, 1, 0, 100, 0), +(12896100, 16, 1671.5693, -5832.2524, 116.32982, NULL, 0, 1, 0, 100, 0), +(12896100, 17, 1663.0612, -5804.608, 116.12191, NULL, 0, 1, 0, 100, 0), +(12896100, 18, 1650.4883, -5802.892, 117.27875, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12896200); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12896200, 1, 2112.2366, -5870.4365, 102.70522, NULL, 0, 1, 0, 100, 0), +(12896200, 2, 2076.472, -5888.584, 104.19423, NULL, 0, 1, 0, 100, 0), +(12896200, 3, 2041.5881, -5906.801, 105.34805, NULL, 0, 1, 0, 100, 0), +(12896200, 4, 2017.8765, -5905.41, 104.65199, NULL, 0, 1, 0, 100, 0), +(12896200, 5, 2004.056, -5904.8228, 103.98675, NULL, 0, 1, 0, 100, 0), +(12896200, 6, 1960.9049, -5902.596, 102.14691, NULL, 0, 1, 0, 100, 0), +(12896200, 7, 1920.0485, -5909.797, 101.558655, NULL, 0, 1, 0, 100, 0), +(12896200, 8, 1871.5569, -5910.3486, 104.01594, NULL, 0, 1, 0, 100, 0), +(12896200, 9, 1828.5173, -5925.0347, 110.76521, NULL, 0, 1, 0, 100, 0), +(12896200, 10, 1796.468, -5930.4634, 116.01326, NULL, 0, 1, 0, 100, 0), +(12896200, 11, 1756.4623, -5915.221, 116.10086, NULL, 0, 1, 0, 100, 0), +(12896200, 12, 1716.3547, -5893.5947, 116.14236, NULL, 0, 1, 0, 100, 0), +(12896200, 13, 1682.9327, -5873.7715, 116.17101, NULL, 0, 1, 0, 100, 0), +(12896200, 14, 1663.3423, -5876.8574, 117.27307, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12896300); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12896300, 1, 2097.34, -5841.3203, 102.67261, NULL, 0, 1, 0, 100, 0), +(12896300, 2, 2066.8403, -5841.029, 102.287506, NULL, 0, 1, 0, 100, 0), +(12896300, 3, 2029.0686, -5846.0244, 100.455025, NULL, 0, 1, 0, 100, 0), +(12896300, 4, 1993.8956, -5843.7485, 100.748825, NULL, 0, 1, 0, 100, 0), +(12896300, 5, 1962.1233, -5843.173, 100.5741, NULL, 0, 1, 0, 100, 0), +(12896300, 6, 1935.0837, -5849.48, 101.044945, NULL, 0, 1, 0, 100, 0), +(12896300, 7, 1904.2611, -5846.199, 100.77372, NULL, 0, 1, 0, 100, 0), +(12896300, 8, 1867.7396, -5826.739, 100.54382, NULL, 0, 1, 0, 100, 0), +(12896300, 9, 1831.8232, -5817.8496, 101.37269, NULL, 0, 1, 0, 100, 0), +(12896300, 10, 1786.0167, -5816.726, 113.24113, NULL, 0, 1, 0, 100, 0), +(12896300, 11, 1746.1085, -5817.3066, 116.121925, NULL, 0, 1, 0, 100, 0), +(12896300, 12, 1747.8519, -5805.8174, 117.27875, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12896400); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12896400, 1, 2112.2366, -5870.4365, 102.70522, NULL, 0, 1, 0, 100, 0), +(12896400, 2, 2076.472, -5888.584, 104.19423, NULL, 0, 1, 0, 100, 0), +(12896400, 3, 2041.5881, -5906.801, 105.34805, NULL, 0, 1, 0, 100, 0), +(12896400, 4, 2004.056, -5904.8228, 103.98675, NULL, 0, 1, 0, 100, 0), +(12896400, 5, 1960.9049, -5902.596, 102.14691, NULL, 0, 1, 0, 100, 0), +(12896400, 6, 1920.0485, -5909.797, 101.558655, NULL, 0, 1, 0, 100, 0), +(12896400, 7, 1871.5569, -5910.3486, 104.01594, NULL, 0, 1, 0, 100, 0), +(12896400, 8, 1828.5173, -5925.0347, 110.76521, NULL, 0, 1, 0, 100, 0), +(12896400, 9, 1796.468, -5930.4634, 116.01326, NULL, 0, 1, 0, 100, 0), +(12896400, 10, 1756.4623, -5915.221, 116.10086, NULL, 0, 1, 0, 100, 0), +(12896400, 11, 1716.3547, -5893.5947, 116.14236, NULL, 0, 1, 0, 100, 0), +(12896400, 12, 1682.9327, -5873.7715, 116.17101, NULL, 0, 1, 0, 100, 0), +(12896400, 13, 1663.3423, -5876.8574, 117.27307, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12896500); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12896500, 1, 2152.1838, -5846.8916, 101.93773, NULL, 0, 1, 0, 100, 0), +(12896500, 2, 2112.2366, -5870.4365, 102.70522, NULL, 0, 1, 0, 100, 0), +(12896500, 3, 2076.472, -5888.584, 104.19423, NULL, 0, 1, 0, 100, 0), +(12896500, 4, 2041.5881, -5906.801, 105.34805, NULL, 0, 1, 0, 100, 0), +(12896500, 5, 2022.9102, -5905.6533, 104.899635, NULL, 0, 1, 0, 100, 0), +(12896500, 6, 2004.056, -5904.8228, 103.98675, NULL, 0, 1, 0, 100, 0), +(12896500, 7, 1960.9049, -5902.596, 102.14691, NULL, 0, 1, 0, 100, 0), +(12896500, 8, 1920.0485, -5909.797, 101.558655, NULL, 0, 1, 0, 100, 0), +(12896500, 9, 1871.5569, -5910.3486, 104.01594, NULL, 0, 1, 0, 100, 0), +(12896500, 10, 1828.5173, -5925.0347, 110.76521, NULL, 0, 1, 0, 100, 0), +(12896500, 11, 1796.468, -5930.4634, 116.01326, NULL, 0, 1, 0, 100, 0), +(12896500, 12, 1756.4623, -5915.221, 116.10086, NULL, 0, 1, 0, 100, 0), +(12896500, 13, 1716.3547, -5893.5947, 116.14236, NULL, 0, 1, 0, 100, 0), +(12896500, 14, 1682.9327, -5873.7715, 116.17101, NULL, 0, 1, 0, 100, 0), +(12896500, 15, 1663.3423, -5876.8574, 117.27307, NULL, 0, 1, 0, 100, 0); + +DELETE FROM `waypoint_data` WHERE `id` IN (12896700); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12896700, 1, 1924.832, -5845.7256, 100.16112, NULL, 0, 1, 0, 100, 0), +(12896700, 2, 1895.1543, -5841.2715, 101.08778, NULL, 0, 1, 0, 100, 0), +(12896700, 3, 1878.0494, -5832.7056, 101.27008, NULL, 0, 1, 0, 100, 0), +(12896700, 4, 1835.2166, -5819.3623, 100.88735, NULL, 0, 1, 0, 100, 0), +(12896700, 5, 1796.6736, -5819.528, 110.19136, NULL, 0, 1, 0, 100, 0), +(12896700, 6, 1763.368, -5820.3086, 116.104294, NULL, 0, 1, 0, 100, 0), +(12896700, 7, 1724.2448, -5821.062, 116.12348, NULL, 0, 1, 0, 100, 0), +(12896700, 8, 1711.1307, -5820.6772, 116.12192, NULL, 0, 1, 0, 100, 0), +(12896700, 9, 1698.2572, -5809.4565, 115.92327, NULL, 0, 1, 0, 100, 0), +(12896700, 10, 1664.177, -5784.301, 116.112946, NULL, 0, 1, 0, 100, 0), +(12896700, 11, 1621.61, -5777.791, 116.11258, NULL, 0, 1, 0, 100, 0), +(12896700, 12, 1602.2942, -5754.3105, 119.27875, NULL, 0, 1, 0, 100, 0), +(12896700, 13, 1586.1525, -5721.0815, 121.68814, NULL, 0, 1, 0, 100, 0), +(12896700, 14, 1575.1832, -5725.3354, 120.891266, NULL, 0, 1, 0, 100, 0); + +-- Set Comment +UPDATE `creature` SET `Comment` = "has guid specific SAI" WHERE (`id1` = 28576) AND (`guid` IN (128922, 128927, 128928, 128930, 128924, 128954, 128929, 128934, 128926, 128920, 128916, 128935, 128948, 128910, 128911, 128912, 128913, 128914, 128915, 128917, 128918, 128919)); +UPDATE `creature` SET `Comment` = "has guid specific SAI" WHERE (`id1` = 28577) AND (`guid` IN (128979, 128986, 128970, 128966, 128973, 128976, 128978, 128980, 128981, 128968, 128993, 128991, 128992, 128958, 128959, 128960, 128961, 128962, 128963, 128964, 128965, 128967)); + +-- Add Extra Flag (DONT_OVERRIDE_SAI_ENTRY). This is not a sniff, it is usefull to lighten the fix. +UPDATE `creature_template` SET `flags_extra` = `flags_extra`|134217728 WHERE `entry` IN (28576, 28577); + +-- Change General SmartAI +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = 28576; +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 28576) 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 +(28576, 0, 0, 1, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Reset - Set Event Phase 1'), +(28576, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Reset - Set Reactstate Passive'), +(28576, 0, 2, 0, 4, 0, 50, 0, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Aggro - Set Event Phase 2'), +(28576, 0, 3, 4, 0, 1, 100, 0, 0, 0, 0, 0, 0, 0, 11, 51604, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Cast \'Serverside - Stun Self\' (Phase 1)'), +(28576, 0, 4, 5, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 4, 14561, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Play Sound 14561 (Phase 1)'), +(28576, 0, 5, 6, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 17, 431, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Set Emote State 431 (Phase 1)'), +(28576, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Say Line 1 (Phase 1)'), +(28576, 0, 7, 8, 0, 2, 100, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Set Reactstate Aggressive (Phase 2)'), +(28576, 0, 8, 9, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52262, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Cast \'Cornered and Enraged!\' (Phase 2)'), +(28576, 0, 9, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Say Line 0 (Phase 2)'), +(28576, 0, 10, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Just Died - Say Line 2'), +(28576, 0, 11, 0, 4, 0, 50, 0, 0, 0, 0, 0, 0, 0, 86, 58207, 0, 10, 128581, 28765, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Aggro - Cross Cast \'Lich King VO Blocker\''); + +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = 28577; +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 28577) 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 +(28577, 0, 0, 1, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Reset - Set Event Phase 1'), +(28577, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Reset - Set Reactstate Passive'), +(28577, 0, 2, 0, 4, 0, 50, 0, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Aggro - Set Event Phase 2'), +(28577, 0, 3, 4, 0, 1, 100, 0, 0, 0, 0, 0, 0, 0, 11, 51604, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Cast \'Serverside - Stun Self\' (Phase 1)'), +(28577, 0, 4, 5, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 4, 14564, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Play Sound 14564 (Phase 1)'), +(28577, 0, 5, 6, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 17, 431, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Set Emote State 431 (Phase 1)'), +(28577, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Say Line 1 (Phase 1)'), +(28577, 0, 7, 8, 0, 2, 100, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Set Reactstate Aggressive (Phase 2)'), +(28577, 0, 8, 9, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52262, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Cast \'Cornered and Enraged!\' (Phase 2)'), +(28577, 0, 9, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - In Combat - Say Line 0 (Phase 2)'), +(28577, 0, 10, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Just Died - Say Line 2'), +(28577, 0, 11, 0, 4, 0, 50, 0, 0, 0, 0, 0, 0, 0, 86, 58207, 0, 10, 128581, 28765, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Aggro - Cross Cast \'Lich King VO Blocker\''); + +-- Set Guid SmartAI +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128919); +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 +(-128919, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896700, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896700'), +(-128919, 0, 13, 0, 109, 0, 100, 0, 0, 12896700, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896700 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128967); +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 +(-128967, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896700, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896700'), +(-128967, 0, 13, 0, 109, 0, 100, 0, 0, 12896700, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896700 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128918); +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 +(-128918, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896500'), +(-128918, 0, 13, 0, 109, 0, 100, 0, 0, 12896500, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896500 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128965); +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 +(-128965, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896500'), +(-128965, 0, 13, 0, 109, 0, 100, 0, 0, 12896500, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896500 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128917); +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 +(-128917, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896400, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896400'), +(-128917, 0, 13, 0, 109, 0, 100, 0, 0, 12896400, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896400 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128964); +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 +(-128964, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896400, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896400'), +(-128964, 0, 13, 0, 109, 0, 100, 0, 0, 12896400, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896400 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128915); +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 +(-128915, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896300'), +(-128915, 0, 13, 0, 109, 0, 100, 0, 0, 12896300, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896300 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128963); +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 +(-128963, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896300'), +(-128963, 0, 13, 0, 109, 0, 100, 0, 0, 12896300, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896300 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128962); +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 +(-128962, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896200'), +(-128962, 0, 13, 0, 109, 0, 100, 0, 0, 12896200, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896200 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128914); +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 +(-128914, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896200'), +(-128914, 0, 13, 0, 109, 0, 100, 0, 0, 12896200, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896200 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128913); +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 +(-128913, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896100'), +(-128913, 0, 13, 0, 109, 0, 100, 0, 0, 12896100, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896100 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128961); +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 +(-128961, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896100'), +(-128961, 0, 13, 0, 109, 0, 100, 0, 0, 12896100, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896100 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128960); +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 +(-128960, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896000'), +(-128960, 0, 13, 0, 109, 0, 100, 0, 0, 12896000, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896000 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128912); +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 +(-128912, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896000'), +(-128912, 0, 13, 0, 109, 0, 100, 0, 0, 12896000, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896000 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128911); +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 +(-128911, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12895900, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12895900'), +(-128911, 0, 13, 0, 109, 0, 100, 0, 0, 12895900, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12895900 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128959); +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 +(-128959, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12895900, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12895900'), +(-128959, 0, 13, 0, 109, 0, 100, 0, 0, 12895900, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12895900 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128922); +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 +(-128922, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12892200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12892200'), +(-128922, 0, 13, 0, 109, 0, 100, 0, 0, 12892200, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12892200 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128979); +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 +(-128979, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12892200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12892200'), +(-128979, 0, 13, 0, 109, 0, 100, 0, 0, 12892200, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12892200 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128927); +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 +(-128927, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12892700, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12892700'), +(-128927, 0, 13, 0, 109, 0, 100, 0, 0, 12892700, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12892700 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128986); +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 +(-128986, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12892700, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12892700'), +(-128986, 0, 13, 0, 109, 0, 100, 0, 0, 12892700, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12892700 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128928); +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 +(-128928, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12892800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12892800'), +(-128928, 0, 13, 0, 109, 0, 100, 0, 0, 12892800, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12892800 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128970); +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 +(-128970, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12892800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12892800'), +(-128970, 0, 13, 0, 109, 0, 100, 0, 0, 12892800, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12892800 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128930); +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 +(-128930, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12893000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12893000'), +(-128930, 0, 13, 0, 109, 0, 100, 0, 0, 12893000, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12893000 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128966); +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 +(-128966, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12893000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12893000'), +(-128966, 0, 13, 0, 109, 0, 100, 0, 0, 12893000, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12893000 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128973); +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 +(-128973, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12897300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12897300'), +(-128973, 0, 13, 0, 109, 0, 100, 0, 0, 12897300, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12897300 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128924); +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 +(-128924, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12897300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12897300'), +(-128924, 0, 13, 0, 109, 0, 100, 0, 0, 12897300, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12897300 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128976); +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 +(-128976, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12897600, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12897600'), +(-128976, 0, 13, 0, 109, 0, 100, 0, 0, 12897600, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12897600 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128954); +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 +(-128954, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12897600, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12897600'), +(-128954, 0, 13, 0, 109, 0, 100, 0, 0, 12897600, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12897600 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128978); +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 +(-128978, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12897800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12897800'), +(-128978, 0, 13, 0, 109, 0, 100, 0, 0, 12897800, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12897800 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128929); +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 +(-128929, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12897800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12897800'), +(-128929, 0, 13, 0, 109, 0, 100, 0, 0, 12897800, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12897800 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128980); +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 +(-128980, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12898000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12898000'), +(-128980, 0, 13, 0, 109, 0, 100, 0, 0, 12898000, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12898000 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128934); +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 +(-128934, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12898000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12898000'), +(-128934, 0, 13, 0, 109, 0, 100, 0, 0, 12898000, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12898000 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128981); +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 +(-128981, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12898100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12898100'), +(-128981, 0, 13, 0, 109, 0, 100, 0, 0, 12898100, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12898100 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128926); +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 +(-128926, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12898100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12898100'), +(-128926, 0, 13, 0, 109, 0, 100, 0, 0, 12898100, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12898100 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128968); +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 +(-128968, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896800'), +(-128968, 0, 13, 0, 109, 0, 100, 0, 0, 12896800, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896800 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128920); +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 +(-128920, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12896800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12896800'), +(-128920, 0, 13, 0, 109, 0, 100, 0, 0, 12896800, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12896800 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128993); +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 +(-128993, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12899300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12899300'), +(-128993, 0, 13, 0, 109, 0, 100, 0, 0, 12899300, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12899300 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128916); +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 +(-128916, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12899300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12899300'), +(-128916, 0, 13, 0, 109, 0, 100, 0, 0, 12899300, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12899300 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128991); +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 +(-128991, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12899100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12899100'), +(-128991, 0, 13, 0, 109, 0, 100, 0, 0, 12899100, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12899100 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128935); +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 +(-128935, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12899100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12899100'), +(-128935, 0, 13, 0, 109, 0, 100, 0, 0, 12899100, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12899100 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128992); +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 +(-128992, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12899200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12899200'), +(-128992, 0, 13, 0, 109, 0, 100, 0, 0, 12899200, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12899200 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128948); +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 +(-128948, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12899200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12899200'), +(-128948, 0, 13, 0, 109, 0, 100, 0, 0, 12899200, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12899200 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128958); +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 +(-128958, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12895800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12895800'), +(-128958, 0, 13, 0, 109, 0, 100, 0, 0, 12895800, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12895800 Finished - Despawn In 2000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128910); +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 +(-128910, 0, 12, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12895800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Respawn - Start Path 12895800'), +(-128910, 0, 13, 0, 109, 0, 100, 0, 0, 12895800, 0, 0, 0, 0, 41, 2000, 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Citizen of Havenshire - On Path 12895800 Finished - Despawn In 2000 ms'); + +-- Set Groups +DELETE FROM `pool_template` WHERE (`entry` IN (22386, 22387, 22388, 22389, 22390, 22391, 22392, 22393, 22394, 22395, 22396, 22397, 22398, 22399, 22400, 22401, 22402, 22403, 22404, 22405, 22406, 22407)); +INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES +(22386, 1, 'Citizen of Havenshire random spawn 1'), +(22387, 1, 'Citizen of Havenshire random spawn 2'), +(22388, 1, 'Citizen of Havenshire random spawn 3'), +(22389, 1, 'Citizen of Havenshire random spawn 4'), +(22390, 1, 'Citizen of Havenshire random spawn 5'), +(22391, 1, 'Citizen of Havenshire random spawn 6'), +(22392, 1, 'Citizen of Havenshire random spawn 7'), +(22393, 1, 'Citizen of Havenshire random spawn 8'), +(22394, 1, 'Citizen of Havenshire random spawn 9'), +(22395, 1, 'Citizen of Havenshire random spawn 10'), +(22396, 1, 'Citizen of Havenshire random spawn 11'), +(22397, 1, 'Citizen of Havenshire random spawn 12'), +(22398, 1, 'Citizen of Havenshire random spawn 13'), +(22399, 1, 'Citizen of Havenshire random spawn 14'), +(22400, 1, 'Citizen of Havenshire random spawn 15'), +(22401, 1, 'Citizen of Havenshire random spawn 16'), +(22402, 1, 'Citizen of Havenshire random spawn 17'), +(22403, 1, 'Citizen of Havenshire random spawn 18'), +(22404, 1, 'Citizen of Havenshire random spawn 19'), +(22405, 1, 'Citizen of Havenshire random spawn 20'), +(22406, 1, 'Citizen of Havenshire random spawn 21'), +(22407, 1, 'Citizen of Havenshire random spawn 22'); + +DELETE FROM `pool_creature` WHERE (`pool_entry` IN (22386, 22387, 22388, 22389, 22390, 22391, 22392, 22393, 22394, 22395, 22396, 22397, 22398, 22399, 22400, 22401, 22402, 22403, 22404, 22405, 22406, 22407)) AND (`guid` IN (128922, 128979, 128927, 128986, 128928, 128970, 128930, 128966, 128973, 128924, 128976, 128954, 128978, 128929, 128980, 128934, 128981, 128926, 128968, 128920, 128993, 128916, 128991, 128935, 128992, 128948, 128958, 128910, 128959, 128911, 128960, 128912, 128961, 128913, 128962, 128914, 128963, 128915, 128964, 128917, 128965, 128918, 128967, 128919)); +INSERT INTO `pool_creature` (`guid`, `pool_entry`, `chance`, `description`) VALUES +(128922, 22386, 0, 'Citizen of Havenshire (1/2)'), +(128979, 22386, 0, 'Citizen of Havenshire (2/2)'), +(128927, 22387, 0, 'Citizen of Havenshire (1/2)'), +(128986, 22387, 0, 'Citizen of Havenshire (2/2)'), +(128928, 22388, 0, 'Citizen of Havenshire (1/2)'), +(128970, 22388, 0, 'Citizen of Havenshire (2/2)'), +(128930, 22389, 0, 'Citizen of Havenshire (1/2)'), +(128966, 22389, 0, 'Citizen of Havenshire (2/2)'), +(128973, 22390, 0, 'Citizen of Havenshire (1/2)'), +(128924, 22390, 0, 'Citizen of Havenshire (2/2)'), +(128976, 22391, 0, 'Citizen of Havenshire (1/2)'), +(128954, 22391, 0, 'Citizen of Havenshire (2/2)'), +(128978, 22392, 0, 'Citizen of Havenshire (1/2)'), +(128929, 22392, 0, 'Citizen of Havenshire (2/2)'), +(128980, 22393, 0, 'Citizen of Havenshire (1/2)'), +(128934, 22393, 0, 'Citizen of Havenshire (2/2)'), +(128981, 22394, 0, 'Citizen of Havenshire (1/2)'), +(128926, 22394, 0, 'Citizen of Havenshire (2/2)'), +(128968, 22395, 0, 'Citizen of Havenshire (1/2)'), +(128920, 22395, 0, 'Citizen of Havenshire (2/2)'), +(128993, 22396, 0, 'Citizen of Havenshire (1/2)'), +(128916, 22396, 0, 'Citizen of Havenshire (2/2)'), +(128991, 22397, 0, 'Citizen of Havenshire (1/2)'), +(128935, 22397, 0, 'Citizen of Havenshire (2/2)'), +(128992, 22398, 0, 'Citizen of Havenshire (1/2)'), +(128948, 22398, 0, 'Citizen of Havenshire (2/2)'), +(128958, 22399, 0, 'Citizen of Havenshire (1/2)'), +(128910, 22399, 0, 'Citizen of Havenshire (2/2)'), +(128959, 22400, 0, 'Citizen of Havenshire (1/2)'), +(128911, 22400, 0, 'Citizen of Havenshire (2/2)'), +(128960, 22401, 0, 'Citizen of Havenshire (1/2)'), +(128912, 22401, 0, 'Citizen of Havenshire (2/2)'), +(128961, 22402, 0, 'Citizen of Havenshire (1/2)'), +(128913, 22402, 0, 'Citizen of Havenshire (2/2)'), +(128962, 22403, 0, 'Citizen of Havenshire (1/2)'), +(128914, 22403, 0, 'Citizen of Havenshire (2/2)'), +(128963, 22404, 0, 'Citizen of Havenshire (1/2)'), +(128915, 22404, 0, 'Citizen of Havenshire (2/2)'), +(128964, 22405, 0, 'Citizen of Havenshire (1/2)'), +(128917, 22405, 0, 'Citizen of Havenshire (2/2)'), +(128965, 22406, 0, 'Citizen of Havenshire (1/2)'), +(128918, 22406, 0, 'Citizen of Havenshire (2/2)'), +(128967, 22407, 0, 'Citizen of Havenshire (1/2)'), +(128919, 22407, 0, 'Citizen of Havenshire (2/2)'); + +-- FOR FUTURE FIXES +-- Set Disable Gravity for Sky Darkener Target (Sniffed Flag) +DELETE FROM `creature_template_movement` WHERE (`CreatureId` = 28655); +INSERT INTO `creature_template_movement` (`CreatureId`, `Ground`, `Swim`, `Flight`, `Rooted`, `Chase`, `Random`, `InteractionPauseTimer`) VALUES +(28655, 0, 0, 1, 0, 0, 0, 0); + +-- Change Wander Distance and Movement Type +UPDATE `creature` SET `wander_distance` = 0, `MovementType` = 0 WHERE `guid` IN (129464, 129465, 129466, 129467, 129468, 129469, 129470, 129471, 129472) AND `id1` = 28655; From d7189cf87e130ec8590d39376137dd315f0c1c45 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 31 Dec 2024 08:42:09 +0000 Subject: [PATCH 31/35] chore(DB): import pending files Referenced commit(s): 106e0ed4d2fc1148821d2d831e683ca6cbb440c8 --- .../Citizen_of_Havenshire.sql => db_world/2024_12_31_00.sql} | 1 + .../Scarlet_Peasant.sql => db_world/2024_12_31_01.sql} | 1 + 2 files changed, 2 insertions(+) rename data/sql/updates/{pending_db_world/Citizen_of_Havenshire.sql => db_world/2024_12_31_00.sql} (99%) rename data/sql/updates/{pending_db_world/Scarlet_Peasant.sql => db_world/2024_12_31_01.sql} (97%) diff --git a/data/sql/updates/pending_db_world/Citizen_of_Havenshire.sql b/data/sql/updates/db_world/2024_12_31_00.sql similarity index 99% rename from data/sql/updates/pending_db_world/Citizen_of_Havenshire.sql rename to data/sql/updates/db_world/2024_12_31_00.sql index 42364d73e2669a..92e9c5ed5bd84e 100644 --- a/data/sql/updates/pending_db_world/Citizen_of_Havenshire.sql +++ b/data/sql/updates/db_world/2024_12_31_00.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_30_02 -> 2024_12_31_00 -- Set Run Speed UPDATE `creature_template` SET `speed_run` = 1.05 WHERE `entry` IN (28576, 28577); diff --git a/data/sql/updates/pending_db_world/Scarlet_Peasant.sql b/data/sql/updates/db_world/2024_12_31_01.sql similarity index 97% rename from data/sql/updates/pending_db_world/Scarlet_Peasant.sql rename to data/sql/updates/db_world/2024_12_31_01.sql index e85d06f42cf7ff..904684fa150646 100644 --- a/data/sql/updates/pending_db_world/Scarlet_Peasant.sql +++ b/data/sql/updates/db_world/2024_12_31_01.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_31_00 -> 2024_12_31_01 UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28557; From fa9718b737d836676b87142ad87c11cdee000c00 Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Thu, 2 Jan 2025 00:24:39 +0100 Subject: [PATCH 32/35] fix(Core/Spells): Remove level scaling from Booming Voice (#21054) --- src/server/game/Spells/SpellInfoCorrections.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index 5896ee978adfdb..51a63724afa8ed 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4862,6 +4862,12 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->RequiresSpellFocus = 0; }); + // Booming Voice + ApplySpellFix({ 40080 }, [](SpellInfo* spellInfo) + { + spellInfo->Effects[EFFECT_0].RealPointsPerLevel = 0; + }); + for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i) { SpellInfo* spellInfo = mSpellInfoMap[i]; From 0594a8f5180701e33c52a6f69525a2314acf8348 Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Thu, 2 Jan 2025 00:25:39 +0100 Subject: [PATCH 33/35] fix(Scripts/ZulAman): reset Nalorakk's intro on wipe (#21063) Co-authored-by: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> --- .../EasternKingdoms/ZulAman/boss_nalorakk.cpp | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp index d27394fdf6d2ff..22c405ed6280f0 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp @@ -72,10 +72,11 @@ enum Phases enum NalorakkGroups { GROUP_CHECK_DEAD = 1, - GROUP_MOVE = 2, - GROUP_BERSERK = 3, - GROUP_HUMAN = 4, - GROUP_BEAR = 5 + GROUP_CHECK_EVADE = 2, + GROUP_MOVE = 3, + GROUP_BERSERK = 4, + GROUP_HUMAN = 5, + GROUP_BEAR = 6 }; struct boss_nalorakk : public BossAI @@ -109,7 +110,7 @@ struct boss_nalorakk : public BossAI void MoveInLineOfSight(Unit* who) override { - if (who->IsPlayer() && _phase < PHASE_START_COMBAT && _active) + if (who->IsPlayer() && !who->ToPlayer()->IsGameMaster() && _phase < PHASE_START_COMBAT && _active) { _active = false; switch (_phase) @@ -199,6 +200,25 @@ struct boss_nalorakk : public BossAI me->SetHomePosition(me->GetPosition()); break; } + _introScheduler.Schedule(10s, GROUP_CHECK_EVADE, [this](TaskContext context) + { + if (CheckAnyEvadeGroup(_waveList)) + { + _introScheduler.CancelGroup(GROUP_CHECK_DEAD); + _introScheduler.Schedule(5s, GROUP_CHECK_EVADE, [this](TaskContext context) + { + for (Creature* member : _waveList) + if (member->isMoving()) + { + context.Repeat(1s); + return; + } + _active = true; + }); + } + else + context.Repeat(10s); + }); } BossAI::MoveInLineOfSight(who); } @@ -310,7 +330,7 @@ struct boss_nalorakk : public BossAI BossAI::UpdateAI(diff); } - bool CheckFullyDeadGroup(std::list groupToCheck) + bool CheckFullyDeadGroup(std::list groupToCheck) { for (Creature* member : groupToCheck) { @@ -322,6 +342,14 @@ struct boss_nalorakk : public BossAI return true; } + bool CheckAnyEvadeGroup(std::list groupToCheck) + { + for (Creature* member : groupToCheck) + if (member->IsAlive() && !member->IsInCombat()) + return true; + return false; + } + void JustDied(Unit* killer) override { BossAI::JustDied(killer); From 3c19ab5fde0b110472f666c48ecf514a1fc84866 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Fri, 3 Jan 2025 14:28:56 -0300 Subject: [PATCH 34/35] fix(Scripts/ZulAman): Fix Jan'lai teleport spells (#21083) --- .../rev_1735913324331119200.sql | 4 ++ .../EasternKingdoms/ZulAman/boss_janalai.cpp | 42 ++++++++++++++++--- 2 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1735913324331119200.sql diff --git a/data/sql/updates/pending_db_world/rev_1735913324331119200.sql b/data/sql/updates/pending_db_world/rev_1735913324331119200.sql new file mode 100644 index 00000000000000..8e5c898bb63993 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1735913324331119200.sql @@ -0,0 +1,4 @@ +-- +DELETE FROM `spell_script_names` WHERE `spell_id` = 43096; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(43096, 'spell_summon_all_players_dummy'); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp index 401b8f6f511b86..238e94e1e4d4d2 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp @@ -21,6 +21,8 @@ #include "GridNotifiersImpl.h" #include "PassiveAI.h" #include "ScriptedCreature.h" +#include "SpellScript.h" +#include "SpellScriptLoader.h" #include "zulaman.h" enum Yells @@ -42,6 +44,7 @@ enum Spells SPELL_FLAME_BREATH = 43140, SPELL_FIRE_WALL = 43113, SPELL_ENRAGE = 44779, + SPELL_SUMMON_PLAYERS_DUMMY = 43096, SPELL_SUMMON_PLAYERS = 43097, SPELL_TELE_TO_CENTER = 43098, // coord SPELL_HATCH_ALL = 43144, @@ -323,11 +326,9 @@ struct boss_janalai : public BossAI SpawnBombs(); _isBombing = true; - me->GetMap()->DoForAllPlayers([&](Player* player) - { - if (player->IsAlive()) - DoTeleportPlayer(player, janalainPos.GetPositionX() - 5 + rand() % 10, janalainPos.GetPositionY() - 5 + rand() % 10, janalainPos.GetPositionZ(), 0.0f); - }); + DoCastSelf(SPELL_TELE_TO_CENTER); + DoCastAOE(SPELL_SUMMON_PLAYERS_DUMMY, true); + //DoCast(Temp, SPELL_SUMMON_PLAYERS, true) // core bug, spell does not work if too far ThrowBombs(); @@ -449,8 +450,39 @@ struct npc_janalai_hatcher : public ScriptedAI bool _isHatching; }; +class spell_summon_all_players_dummy: public SpellScript +{ + PrepareSpellScript(spell_summon_all_players_dummy); + + bool Validate(SpellInfo const* /*spell*/) override + { + return ValidateSpellInfo({ SPELL_SUMMON_PLAYERS }); + } + + void FilterTargets(std::list& targets) + { + Position pos = GetCaster()->GetPosition(); + targets.remove_if([&, pos](WorldObject* target) -> bool + { + return target->IsWithinBox(pos, 18.0f, 18.0f, 18.0f); + }); + } + + void OnHit(SpellEffIndex /*effIndex*/) + { + GetCaster()->CastSpell(GetHitUnit(), SPELL_SUMMON_PLAYERS, true); + } + + void Register() override + { + OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_summon_all_players_dummy::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY); + OnEffectHitTarget += SpellEffectFn(spell_summon_all_players_dummy::OnHit, EFFECT_0, SPELL_EFFECT_DUMMY); + } +}; + void AddSC_boss_janalai() { RegisterZulAmanCreatureAI(boss_janalai); RegisterZulAmanCreatureAI(npc_janalai_hatcher); + RegisterSpellScript(spell_summon_all_players_dummy); } From fd4019c0741c810e3af5feba095e364c70098dfe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 3 Jan 2025 17:29:56 +0000 Subject: [PATCH 35/35] chore(DB): import pending files Referenced commit(s): 3c19ab5fde0b110472f666c48ecf514a1fc84866 --- .../rev_1735913324331119200.sql => db_world/2025_01_03_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1735913324331119200.sql => db_world/2025_01_03_00.sql} (79%) diff --git a/data/sql/updates/pending_db_world/rev_1735913324331119200.sql b/data/sql/updates/db_world/2025_01_03_00.sql similarity index 79% rename from data/sql/updates/pending_db_world/rev_1735913324331119200.sql rename to data/sql/updates/db_world/2025_01_03_00.sql index 8e5c898bb63993..4daf0941f80beb 100644 --- a/data/sql/updates/pending_db_world/rev_1735913324331119200.sql +++ b/data/sql/updates/db_world/2025_01_03_00.sql @@ -1,3 +1,4 @@ +-- DB update 2024_12_31_01 -> 2025_01_03_00 -- DELETE FROM `spell_script_names` WHERE `spell_id` = 43096; INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES