From 4d2284cecbea5ba08cc94decd4d7bd5b259fb200 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sat, 17 Aug 2024 15:19:32 -0300 Subject: [PATCH 01/41] fix(DB/Creature): High Nethermancer Zerevor taunt & interrupt immunity (#19646) --- data/sql/updates/pending_db_world/rev_1723822265566661700.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1723822265566661700.sql diff --git a/data/sql/updates/pending_db_world/rev_1723822265566661700.sql b/data/sql/updates/pending_db_world/rev_1723822265566661700.sql new file mode 100644 index 00000000000000..e1da308cb186b4 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1723822265566661700.sql @@ -0,0 +1,2 @@ +-- +UPDATE `creature_template` SET `flags_extra` = `flags_extra` |256, `mechanic_immune_mask` = `mechanic_immune_mask`|33554432 WHERE `entry` = 22950; From 29f528cb4f61a9a0acd6afc279915492793ccf2a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 17 Aug 2024 18:20:24 +0000 Subject: [PATCH 02/41] chore(DB): import pending files Referenced commit(s): 4d2284cecbea5ba08cc94decd4d7bd5b259fb200 --- .../rev_1723822265566661700.sql => db_world/2024_08_17_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1723822265566661700.sql => db_world/2024_08_17_00.sql} (77%) diff --git a/data/sql/updates/pending_db_world/rev_1723822265566661700.sql b/data/sql/updates/db_world/2024_08_17_00.sql similarity index 77% rename from data/sql/updates/pending_db_world/rev_1723822265566661700.sql rename to data/sql/updates/db_world/2024_08_17_00.sql index e1da308cb186b4..3ecba4eb80a9a1 100644 --- a/data/sql/updates/pending_db_world/rev_1723822265566661700.sql +++ b/data/sql/updates/db_world/2024_08_17_00.sql @@ -1,2 +1,3 @@ +-- DB update 2024_08_13_03 -> 2024_08_17_00 -- UPDATE `creature_template` SET `flags_extra` = `flags_extra` |256, `mechanic_immune_mask` = `mechanic_immune_mask`|33554432 WHERE `entry` = 22950; From 1c8576ff15769611b0ee07c6f7c41fe4efa204fa Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sat, 17 Aug 2024 15:20:35 -0300 Subject: [PATCH 03/41] fix(DB/Creature): Gathios the Shatterer taunt immunity (#19639) --- data/sql/updates/pending_db_world/rev_1723769203579692900.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1723769203579692900.sql diff --git a/data/sql/updates/pending_db_world/rev_1723769203579692900.sql b/data/sql/updates/pending_db_world/rev_1723769203579692900.sql new file mode 100644 index 00000000000000..15662f5d50ffd5 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1723769203579692900.sql @@ -0,0 +1,2 @@ +-- +UPDATE `creature_template` SET `flags_extra` = `flags_extra` |256 WHERE `entry` = 22949; From 682c053416c2bb6eb949b8ecddb65bb9984e9823 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 17 Aug 2024 18:21:17 +0000 Subject: [PATCH 04/41] chore(DB): import pending files Referenced commit(s): 29f528cb4f61a9a0acd6afc279915492793ccf2a --- .../rev_1723769203579692900.sql => db_world/2024_08_17_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1723769203579692900.sql => db_world/2024_08_17_01.sql} (67%) diff --git a/data/sql/updates/pending_db_world/rev_1723769203579692900.sql b/data/sql/updates/db_world/2024_08_17_01.sql similarity index 67% rename from data/sql/updates/pending_db_world/rev_1723769203579692900.sql rename to data/sql/updates/db_world/2024_08_17_01.sql index 15662f5d50ffd5..4549e1bf8b1728 100644 --- a/data/sql/updates/pending_db_world/rev_1723769203579692900.sql +++ b/data/sql/updates/db_world/2024_08_17_01.sql @@ -1,2 +1,3 @@ +-- DB update 2024_08_17_00 -> 2024_08_17_01 -- UPDATE `creature_template` SET `flags_extra` = `flags_extra` |256 WHERE `entry` = 22949; From 50b7de64e3ecc9e58f04228c430d9c0343a37459 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sat, 17 Aug 2024 15:21:55 -0300 Subject: [PATCH 05/41] fix(DB/Creature): Remove Veras Darkshadow stun immunity (#19642) fix(DB/Creature): Remove Veras stun immunity --- data/sql/updates/pending_db_world/rev_1723780227197753900.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1723780227197753900.sql diff --git a/data/sql/updates/pending_db_world/rev_1723780227197753900.sql b/data/sql/updates/pending_db_world/rev_1723780227197753900.sql new file mode 100644 index 00000000000000..a5559b45b69d7e --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1723780227197753900.sql @@ -0,0 +1,2 @@ +-- +UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask`&~2048 WHERE `entry` = 22952; From 6e3dba840edba68db6b558e7d83e4662c9eaadf6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 17 Aug 2024 18:22:13 +0000 Subject: [PATCH 06/41] chore(DB): import pending files Referenced commit(s): 682c053416c2bb6eb949b8ecddb65bb9984e9823 --- .../rev_1723780227197753900.sql => db_world/2024_08_17_02.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1723780227197753900.sql => db_world/2024_08_17_02.sql} (71%) diff --git a/data/sql/updates/pending_db_world/rev_1723780227197753900.sql b/data/sql/updates/db_world/2024_08_17_02.sql similarity index 71% rename from data/sql/updates/pending_db_world/rev_1723780227197753900.sql rename to data/sql/updates/db_world/2024_08_17_02.sql index a5559b45b69d7e..aa01248aad8e98 100644 --- a/data/sql/updates/pending_db_world/rev_1723780227197753900.sql +++ b/data/sql/updates/db_world/2024_08_17_02.sql @@ -1,2 +1,3 @@ +-- DB update 2024_08_17_01 -> 2024_08_17_02 -- UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask`&~2048 WHERE `entry` = 22952; From a691ad3f4ddb43120a7be318352fc2789b5a47c4 Mon Sep 17 00:00:00 2001 From: Marcus Schommer Date: Sat, 17 Aug 2024 20:27:36 +0200 Subject: [PATCH 07/41] chore(APPS/installer): Detection of BSD* OS (#19285) Installer output is wrong for BSD*. "acore.sh install-deps" says "This platform is not supported" should be "BSD is not supported yet" --- apps/installer/includes/functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/installer/includes/functions.sh b/apps/installer/includes/functions.sh index b9bdd95500bcb0..7e95f78fcaf8e5 100644 --- a/apps/installer/includes/functions.sh +++ b/apps/installer/includes/functions.sh @@ -39,7 +39,7 @@ function inst_configureOS() { # TODO: implement different configurations by distro source "$AC_PATH_INSTALLER/includes/os_configs/$DISTRO.sh" ;; - bsd*) echo "BSD is not supported yet" ;; + *bsd*) echo "BSD is not supported yet" ;; msys*) source "$AC_PATH_INSTALLER/includes/os_configs/windows.sh" ;; *) echo "This platform is not supported" ;; esac From adff3c3846b3f65a58dbb50a1cac188b7c8a888e Mon Sep 17 00:00:00 2001 From: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> Date: Sat, 17 Aug 2024 19:29:21 -0400 Subject: [PATCH 08/41] fix(Core/Spells): Revert ownership and follow logic adjustment for guardian summons. (#19664) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Revert "fix(Core/Spells): Adjust ownership and follow logic for guardian summ…" This reverts commit cc2ef9d6dd133c3855cb0ac4c4c61bbd768b1cdb. --- src/server/game/Spells/SpellEffects.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 0995d515f9f702..9e1d22a081c691 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -5935,6 +5935,9 @@ void Spell::SummonGuardian(uint32 i, uint32 entry, SummonPropertiesEntry const* if (!caster) return; + if (caster->IsTotem()) + caster = caster->ToTotem()->GetOwner(); + // in another case summon new uint8 summonLevel = caster->GetLevel(); @@ -6048,6 +6051,14 @@ void Spell::SummonGuardian(uint32 i, uint32 entry, SummonPropertiesEntry const* //else if (summon->HasUnitTypeMask(UNIT_MASK_MINION) && m_targets.HasDst()) // ((Minion*)summon)->SetFollowAngle(m_caster->GetAngle(summon)); + // xinef: move this here, some auras are added in initstatsforlevel! + if (!summon->IsInCombat() && !summon->IsTrigger()) + { + // summon->AI()->EnterEvadeMode(); + summon->GetMotionMaster()->Clear(false); + summon->GetMotionMaster()->MoveFollow(caster, PET_FOLLOW_DIST, summon->GetFollowAngle(), MOTION_SLOT_ACTIVE); + } + if (properties && properties->Category == SUMMON_CATEGORY_ALLY) summon->SetFaction(caster->GetFaction()); From af1a6f3521b4925cf8151c647979817e2c043f18 Mon Sep 17 00:00:00 2001 From: Mike Delago <32778141+michaeldelago@users.noreply.github.com> Date: Sun, 18 Aug 2024 00:17:30 -0400 Subject: [PATCH 09/41] apps(docker): Fix Warnings in Dockerfile (#19537) --- apps/docker/Dockerfile | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/docker/Dockerfile b/apps/docker/Dockerfile index da2bcea152a08f..e62b6b354b3d81 100644 --- a/apps/docker/Dockerfile +++ b/apps/docker/Dockerfile @@ -8,7 +8,6 @@ FROM ubuntu:$UBUNTU_VERSION AS skeleton ARG DOCKER=1 ARG DEBIAN_FRONTEND=noninteractive -ENV TZ=$TZ ENV AC_FORCE_CREATE_DB=1 RUN mkdir -pv \ @@ -29,11 +28,12 @@ RUN mkdir -pv \ /azerothcore/build # Configure Timezone -RUN apt-get update \ - && apt-get install -y tzdata ca-certificates \ - && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \ - && echo $TZ > /etc/timezone \ - && dpkg-reconfigure --frontend noninteractive tzdata +RUN apt-get update \ + && apt-get install -y --no-install-recommends tzdata ca-certificates \ + && ln -snf "/usr/share/zoneinfo/$TZ" /etc/localtime \ + && echo "$TZ" > /etc/timezone \ + && dpkg-reconfigure --frontend noninteractive tzdata \ + && rm -rf /var/lib/apt/lists/* WORKDIR /azerothcore @@ -145,7 +145,7 @@ ENTRYPOINT ["/usr/bin/env", "bash", "/azerothcore/entrypoint.sh"] ############### FROM runtime AS authserver -LABEL description "AzerothCore Auth Server" +LABEL description="AzerothCore Auth Server" ENV ACORE_COMPONENT=authserver # Don't run database migrations. We can leave that up to the db-import container @@ -167,7 +167,7 @@ CMD ["authserver"] FROM runtime AS worldserver -LABEL description "AzerothCore World Server" +LABEL description="AzerothCore World Server" ENV ACORE_COMPONENT=worldserver # Don't run database migrations. We can leave that up to the db-import container @@ -190,7 +190,7 @@ CMD ["worldserver"] FROM runtime AS db-import -LABEL description "AzerothCore Database Import tool" +LABEL description="AzerothCore Database Import tool" USER $DOCKER_USER @@ -203,7 +203,7 @@ COPY --chown=$DOCKER_USER:$DOCKER_USER\ --from=build \ /azerothcore/env/dist/bin/dbimport /azerothcore/env/dist/bin/dbimport -CMD /azerothcore/env/dist/bin/dbimport +CMD [ "/azerothcore/env/dist/bin/dbimport" ] ############### # Client Data # @@ -225,7 +225,7 @@ VOLUME /azerothcore/env/dist/data USER $DOCKER_USER -CMD bash -c "source /azerothcore/apps/installer/includes/functions.sh && inst_download_client_data" +CMD ["bash", "-c", "source /azerothcore/apps/installer/includes/functions.sh && inst_download_client_data" ] ################## # Map Extractors # @@ -233,7 +233,7 @@ CMD bash -c "source /azerothcore/apps/installer/includes/functions.sh && inst_do FROM runtime AS tools -LABEL description "AzerothCore Tools" +LABEL description="AzerothCore Tools" WORKDIR /azerothcore/env/dist/ From adc9f4e7abe4ff29de806a3a8f20c7fd248fa661 Mon Sep 17 00:00:00 2001 From: sudlud Date: Sun, 18 Aug 2024 10:57:02 +0200 Subject: [PATCH 10/41] fix(Core/Spell): check for player before dereferencing (#19666) --- src/server/game/Spells/Spell.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 9bd266e11aa18e..ea4c3383ea3c6c 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3739,8 +3739,9 @@ void Spell::cancel(bool bySelf) if (Unit* unit = m_caster->GetGUID() == ihit->targetGUID ? m_caster : ObjectAccessor::GetUnit(*m_caster, ihit->targetGUID)) unit->RemoveOwnedAura(m_spellInfo->Id, m_originalCasterGUID, 0, AURA_REMOVE_BY_CANCEL); - if (m_spellInfo->HasAttribute(SPELL_ATTR0_COOLDOWN_ON_EVENT)) - m_caster->ToPlayer()->RemoveSpellCooldown(m_spellInfo->Id, true); + if (m_caster->GetTypeId() == TYPEID_PLAYER) + if (m_spellInfo->HasAttribute(SPELL_ATTR0_COOLDOWN_ON_EVENT)) + m_caster->ToPlayer()->RemoveSpellCooldown(m_spellInfo->Id, true); SendChannelUpdate(0); SendInterrupted(SPELL_FAILED_INTERRUPTED); From 167e06e287ef7ab54e85733f39e4c6a80e30c049 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sun, 18 Aug 2024 05:57:32 -0300 Subject: [PATCH 11/41] fix(Scripts/BlackTemple): Gathios Judgment spell should consume seals (#19640) --- src/server/scripts/Outland/BlackTemple/illidari_council.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp index 93e559147c37bc..eeff38ecc6cea3 100644 --- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp @@ -659,13 +659,14 @@ class spell_illidari_council_judgement : public SpellScript void HandleScriptEffect(SpellEffIndex /*effIndex*/) { - Unit::AuraEffectList const& auras = GetCaster()->GetAuraEffectsByType(SPELL_AURA_DUMMY); - for (Unit::AuraEffectList::const_iterator i = auras.begin(); i != auras.end(); ++i) + auto const& auras = GetCaster()->GetAuraEffectsByType(SPELL_AURA_DUMMY); + for (auto i = auras.begin(); i != auras.end(); ++i) { if ((*i)->GetSpellInfo()->GetSpellSpecific() == SPELL_SPECIFIC_SEAL && (*i)->GetEffIndex() == EFFECT_2) if (sSpellMgr->GetSpellInfo((*i)->GetAmount())) { GetCaster()->CastSpell(GetHitUnit(), (*i)->GetAmount(), true); + GetCaster()->RemoveAurasDueToSpell((*i)->GetSpellInfo()->Id); break; } } From e33a56d89b25064af896427e678529a15565eb6e Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Sun, 18 Aug 2024 11:41:18 +0200 Subject: [PATCH 12/41] fix(Core/Creature): Nullcheck for questgreeting greeting (#19669) * fix(Core/Creature): Nullcheck for questgreeting greeting * closes https://github.com/azerothcore/azerothcore-wotlk/issues/19659 * Update GossipDef.cpp --- src/server/game/Entities/Creature/GossipDef.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp index d85dbdfdbfc88f..0ec2ffa3542297 100644 --- a/src/server/game/Entities/Creature/GossipDef.cpp +++ b/src/server/game/Entities/Creature/GossipDef.cpp @@ -319,10 +319,16 @@ void PlayerMenu::SendQuestGiverQuestList(QEmote const& eEmote, std::string const if (QuestGreeting const* questGreeting = sObjectMgr->GetQuestGreeting(guid.GetTypeId(), guid.GetEntry())) { - LocaleConstant locale = _session->GetSessionDbLocaleIndex(); - std::string strGreeting = questGreeting->Greeting[DEFAULT_LOCALE]; - if (questGreeting->Greeting.size() > size_t(locale) && !questGreeting->Greeting.empty()) - strGreeting = questGreeting->Greeting[locale]; + std::string strGreeting; + // Check if greeting exists. Blizzlike that some creatures have empty greeting + if (!questGreeting->Greeting.empty()) + { + LocaleConstant locale = _session->GetSessionDbLocaleIndex(); + if (questGreeting->Greeting.size() > size_t(locale)) + strGreeting = questGreeting->Greeting[locale]; + else + strGreeting = questGreeting->Greeting[DEFAULT_LOCALE]; + } data << strGreeting; data << uint32(questGreeting->EmoteDelay); From a0689fb4ef112f7bd74d8cc1e859a171d7ed2ce5 Mon Sep 17 00:00:00 2001 From: Grimdhex <176165533+Grimdhex@users.noreply.github.com> Date: Sun, 18 Aug 2024 13:39:06 +0200 Subject: [PATCH 13/41] fix(Dep/Boost): corrects a warning about path changes in boost process (#19629) --- src/common/Utilities/StartProcess.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/common/Utilities/StartProcess.cpp b/src/common/Utilities/StartProcess.cpp index a8b35578beaed2..7f745d6ffcff8f 100644 --- a/src/common/Utilities/StartProcess.cpp +++ b/src/common/Utilities/StartProcess.cpp @@ -22,13 +22,7 @@ #include "Util.h" #include #include -#include -#include -#include -#include -#include -#include -#include +#include "boost/process.hpp" #include using namespace boost::process; From d436f97ea2fec84258a5e34f374c20b032e9a670 Mon Sep 17 00:00:00 2001 From: Yunfan Li <56597220+liyunfan1223@users.noreply.github.com> Date: Mon, 19 Aug 2024 01:28:56 +0800 Subject: [PATCH 14/41] =?UTF-8?q?fix(Script/Vehicles):=20The=20next=20play?= =?UTF-8?q?er=20entering=20Salvaged=20Siege=20Engine=20=E2=80=A6=20(#19674?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(Script/Vehicles): The next player entering Salvaged Siege Engine should control turret if it's not occupied. --- src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp index b43119631a7337..90890f2f1fd052 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp @@ -546,7 +546,7 @@ struct npc_salvaged_siege_engine : public VehicleAI { if (Unit* turret = vehicle->GetPassenger(7)) { - if (Vehicle* turretVehicle = me->GetVehicleKit()) + if (Vehicle* turretVehicle = turret->GetVehicleKit()) { if (!turretVehicle->IsVehicleInUse()) { From 23f58016d078e922ebbc378f28223d6d0a19693d Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sun, 18 Aug 2024 14:56:38 -0300 Subject: [PATCH 15/41] fix(Core/Map): Exempt raids from the hourly limit (#19650) --- src/server/game/Maps/MapMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/Maps/MapMgr.cpp b/src/server/game/Maps/MapMgr.cpp index 9e89d64e219daa..423f5ac5d8d5f0 100644 --- a/src/server/game/Maps/MapMgr.cpp +++ b/src/server/game/Maps/MapMgr.cpp @@ -223,7 +223,7 @@ Map::EnterState MapMgr::PlayerCannotEnter(uint32 mapid, Player* player, bool log } // players are only allowed to enter 5 instances per hour - if (entry->IsDungeon() && (!group || !group->isLFGGroup() || !group->IsLfgRandomInstance())) + if (entry->IsNonRaidDungeon() && (!group || !group->isLFGGroup() || !group->IsLfgRandomInstance())) { uint32 instaceIdToCheck = 0; if (InstanceSave* save = sInstanceSaveMgr->PlayerGetInstanceSave(player->GetGUID(), mapid, player->GetDifficulty(entry->IsRaid()))) From b0f77eb39b4453d1b2a3224402925f52fc608cac Mon Sep 17 00:00:00 2001 From: Grimdhex <176165533+Grimdhex@users.noreply.github.com> Date: Mon, 19 Aug 2024 01:31:55 +0200 Subject: [PATCH 16/41] fix(DB/SAI): Aether Ray spells and timers (#19620) --- .../sql/updates/pending_db_world/rev_1723619543080521000.sql | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1723619543080521000.sql diff --git a/data/sql/updates/pending_db_world/rev_1723619543080521000.sql b/data/sql/updates/pending_db_world/rev_1723619543080521000.sql new file mode 100644 index 00000000000000..59d76c18f4ecdd --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1723619543080521000.sql @@ -0,0 +1,5 @@ +-- fix spells and timer of Aether Ray (22181) +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 22181) AND (`source_type` = 0) AND (`id` IN (0, 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 +(22181, 0, 0, 0, 0, 0, 100, 0, 5000, 15000, 20000, 20000, 0, 0, 11, 35333, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Aether Ray - In Combat - Cast \'Tail Swipe\''), +(22181, 0, 2, 0, 3, 0, 100, 0, 0, 75, 20000, 20000, 0, 0, 11, 17008, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Aether Ray - Between 0-75% Mana - Cast \'Mana Drain\''); From 1908ede1b5acbfddda8a3f1c633324de8ae9738b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 18 Aug 2024 23:32:50 +0000 Subject: [PATCH 17/41] chore(DB): import pending files Referenced commit(s): b0f77eb39b4453d1b2a3224402925f52fc608cac --- .../rev_1723619543080521000.sql => db_world/2024_08_18_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1723619543080521000.sql => db_world/2024_08_18_00.sql} (95%) diff --git a/data/sql/updates/pending_db_world/rev_1723619543080521000.sql b/data/sql/updates/db_world/2024_08_18_00.sql similarity index 95% rename from data/sql/updates/pending_db_world/rev_1723619543080521000.sql rename to data/sql/updates/db_world/2024_08_18_00.sql index 59d76c18f4ecdd..87c2922155585d 100644 --- a/data/sql/updates/pending_db_world/rev_1723619543080521000.sql +++ b/data/sql/updates/db_world/2024_08_18_00.sql @@ -1,3 +1,4 @@ +-- DB update 2024_08_17_02 -> 2024_08_18_00 -- fix spells and timer of Aether Ray (22181) DELETE FROM `smart_scripts` WHERE (`entryorguid` = 22181) AND (`source_type` = 0) AND (`id` IN (0, 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 From 79a653b13e699866f9c9bb31d68081433947742e Mon Sep 17 00:00:00 2001 From: Tereneckla Date: Sun, 18 Aug 2024 23:34:56 +0000 Subject: [PATCH 18/41] fix (Core/Spells): remove object size for hit calculation of aoe aura spells that target enemies (#19529) remove object size for aoe on enemy spells --- src/server/game/Grids/Notifiers/GridNotifiers.h | 2 +- src/server/game/Spells/Spell.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index 3440bf8affc5b0..9d6b36a0b5726f 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -1104,7 +1104,7 @@ namespace Acore } - if (i_funit->_IsValidAttackTarget(u, _spellInfo, i_obj->GetTypeId() == TYPEID_DYNAMICOBJECT ? i_obj : nullptr) && i_obj->IsWithinDistInMap(u, i_range)) + if (i_funit->_IsValidAttackTarget(u, _spellInfo, i_obj->GetTypeId() == TYPEID_DYNAMICOBJECT ? i_obj : nullptr) && i_obj->IsWithinDistInMap(u, i_range,true,false)) return true; return false; diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index ea4c3383ea3c6c..4429a9be46f97c 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -9035,7 +9035,7 @@ namespace Acore if (!target->ToGameObject()->IsInRange(_position->GetPositionX(), _position->GetPositionY(), _position->GetPositionZ(), _range)) return false; } - else if (!target->IsWithinDist3d(_position, _range)) + else if (!target->IsInDist(_position, _range)) return false; else if (target->GetTypeId() == TYPEID_UNIT && target->ToCreature()->IsAvoidingAOE()) // pussywizard return false; From 01c8344cc8df536255e2d501acb59ca6437f35e4 Mon Sep 17 00:00:00 2001 From: Carriola-wotlk <148633595+Carriola-wotlk@users.noreply.github.com> Date: Mon, 19 Aug 2024 02:06:45 +0200 Subject: [PATCH 19/41] fix(Scripts/BlackTemple): Gathios the Shatterer shouldnt use Hammer of Justice on random players (#19653) * fix: SelectTargetMethod Random replaced with MaxThreat * restore like origin * fix: cast Hammer Of Justice on current target instead random target * refactor: case EVENT_SPELL_HAMMER_OF_JUSTICE statement refactored * refactor: if statement splitted * refactor: last space removed * Update src/server/scripts/Outland/BlackTemple/illidari_council.cpp Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> * fix redundant check and new line --------- Co-authored-by: MattiaBallarini Co-authored-by: Andrew <47818697+Nyeriah@users.noreply.github.com> Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> --- .../Outland/BlackTemple/illidari_council.cpp | 28 +++++-------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp index eeff38ecc6cea3..f77b4d63936833 100644 --- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp @@ -103,20 +103,6 @@ enum Misc EVENT_KILL_TALK = 100 }; -struct HammerOfJusticeSelector -{ -public: - HammerOfJusticeSelector(Unit* me) : _me(me) { } - - bool operator()(Unit const* target) const - { - return target && target->GetTypeId() == TYPEID_PLAYER && _me->IsInRange(target, 10.0f, 40.0f, true); - } - -private: - Unit const* _me; -}; - class VerasEnvenom : public BasicEvent { public: @@ -337,12 +323,13 @@ class boss_gathios_the_shatterer : public CreatureScript events.ScheduleEvent(EVENT_SPELL_AURA, 30000); break; case EVENT_SPELL_HAMMER_OF_JUSTICE: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, HammerOfJusticeSelector(me))) - { - me->CastSpell(target, SPELL_HAMMER_OF_JUSTICE, false); - events.ScheduleEvent(EVENT_SPELL_HAMMER_OF_JUSTICE, 20000); - break; - } + if (Unit* target = me->GetVictim()) + if (target->IsPlayer() && me->IsInRange(target, 10.0f, 40.0f, true)) + { + me->CastSpell(target, SPELL_HAMMER_OF_JUSTICE); + events.ScheduleEvent(EVENT_SPELL_HAMMER_OF_JUSTICE, 20s); + break; + } events.ScheduleEvent(EVENT_SPELL_HAMMER_OF_JUSTICE, 0); break; case EVENT_SPELL_SEAL: @@ -711,4 +698,3 @@ void AddSC_boss_illidari_council() RegisterSpellScript(spell_illidari_council_judgement); RegisterSpellScript(spell_illidari_council_deadly_strike_aura); } - From cccd8005e865925e6f2f9541fd23e4ed67d995db Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Mon, 19 Aug 2024 01:29:44 -0300 Subject: [PATCH 20/41] =?UTF-8?q?fix(DB/Creature):=20Essence=20of=20Desire?= =?UTF-8?q?=20&=20Essence=20of=20Suffering=20taunt=20immu=E2=80=A6=20(#196?= =?UTF-8?q?82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/sql/updates/pending_db_world/rev_1724025497789221500.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1724025497789221500.sql diff --git a/data/sql/updates/pending_db_world/rev_1724025497789221500.sql b/data/sql/updates/pending_db_world/rev_1724025497789221500.sql new file mode 100644 index 00000000000000..d44f5b8faf91bf --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1724025497789221500.sql @@ -0,0 +1,2 @@ +-- +UPDATE `creature_template` SET `flags_extra` = `flags_extra` |256 WHERE `entry` IN (23418, 23419); From 1275b64ef0dfd17971fb02ef4f4ab3359de427f9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 19 Aug 2024 04:30:38 +0000 Subject: [PATCH 21/41] chore(DB): import pending files Referenced commit(s): cccd8005e865925e6f2f9541fd23e4ed67d995db --- .../rev_1724025497789221500.sql => db_world/2024_08_19_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1724025497789221500.sql => db_world/2024_08_19_00.sql} (69%) diff --git a/data/sql/updates/pending_db_world/rev_1724025497789221500.sql b/data/sql/updates/db_world/2024_08_19_00.sql similarity index 69% rename from data/sql/updates/pending_db_world/rev_1724025497789221500.sql rename to data/sql/updates/db_world/2024_08_19_00.sql index d44f5b8faf91bf..4e6abb46fd03a2 100644 --- a/data/sql/updates/pending_db_world/rev_1724025497789221500.sql +++ b/data/sql/updates/db_world/2024_08_19_00.sql @@ -1,2 +1,3 @@ +-- DB update 2024_08_18_00 -> 2024_08_19_00 -- UPDATE `creature_template` SET `flags_extra` = `flags_extra` |256 WHERE `entry` IN (23418, 23419); From 337135bf9e409d97628f6f8778d32433991058fc Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Mon, 19 Aug 2024 10:17:02 +0200 Subject: [PATCH 22/41] refactor(Core/Misc): Use NpcFlag helpers (#19676) * chore(Core/Misc): Use HasNpcFlag instead of HasFlag * extend to all npcflag helpers --- src/server/game/AI/CoreAI/PassiveAI.cpp | 2 +- src/server/game/AI/SmartScripts/SmartScript.cpp | 6 +++--- src/server/game/Entities/Unit/Unit.h | 5 ++--- .../CavernsOfTime/BattleForMountHyjal/hyjal.cpp | 10 +++++----- .../scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp | 4 ++-- 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/server/game/AI/CoreAI/PassiveAI.cpp b/src/server/game/AI/CoreAI/PassiveAI.cpp index 080827f1a0acfe..796231e410e3a3 100644 --- a/src/server/game/AI/CoreAI/PassiveAI.cpp +++ b/src/server/game/AI/CoreAI/PassiveAI.cpp @@ -25,7 +25,7 @@ NullCreatureAI::NullCreatureAI(Creature* c) : CreatureAI(c) { me->SetReactState( int32 NullCreatureAI::Permissible(Creature const* creature) { - if (creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK)) + if (creature->HasNpcFlag(UNIT_NPC_FLAG_SPELLCLICK)) return PERMIT_BASE_PROACTIVE + 50; if (creature->IsTrigger()) diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index efac02f808eba5..c680cc4cc37849 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -2061,21 +2061,21 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u { for (WorldObject* target : targets) if (IsCreature(target)) - target->ToUnit()->SetUInt32Value(UNIT_NPC_FLAGS, e.action.unitFlag.flag); + target->ToUnit()->ReplaceAllNpcFlags(NPCFlags(e.action.unitFlag.flag)); break; } case SMART_ACTION_ADD_NPC_FLAG: { for (WorldObject* target : targets) if (IsCreature(target)) - target->ToUnit()->SetFlag(UNIT_NPC_FLAGS, e.action.unitFlag.flag); + target->ToUnit()->SetNpcFlag(NPCFlags(e.action.unitFlag.flag)); break; } case SMART_ACTION_REMOVE_NPC_FLAG: { for (WorldObject* target : targets) if (IsCreature(target)) - target->ToUnit()->RemoveFlag(UNIT_NPC_FLAGS, e.action.unitFlag.flag); + target->ToUnit()->RemoveNpcFlag(NPCFlags(e.action.unitFlag.flag)); break; } case SMART_ACTION_CROSS_CAST: diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index bdd01d23054417..97efd9c2f69f38 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1003,13 +1003,12 @@ class Unit : public WorldObject [[nodiscard]] bool IsInnkeeper() const { return HasNpcFlag(UNIT_NPC_FLAG_INNKEEPER); } [[nodiscard]] bool IsSpiritHealer() const { return HasNpcFlag(UNIT_NPC_FLAG_SPIRITHEALER); } [[nodiscard]] bool IsSpiritGuide() const { return HasNpcFlag(UNIT_NPC_FLAG_SPIRITGUIDE); } - [[nodiscard]] bool IsTabardDesigner()const { return HasNpcFlag(UNIT_NPC_FLAG_TABARDDESIGNER); } + [[nodiscard]] bool IsTabardDesigner() const { return HasNpcFlag(UNIT_NPC_FLAG_TABARDDESIGNER); } [[nodiscard]] bool IsAuctioner() const { return HasNpcFlag(UNIT_NPC_FLAG_AUCTIONEER); } [[nodiscard]] bool IsArmorer() const { return HasNpcFlag(UNIT_NPC_FLAG_REPAIR); } [[nodiscard]] bool IsServiceProvider() const { - return HasFlag(UNIT_NPC_FLAGS, - UNIT_NPC_FLAG_VENDOR | UNIT_NPC_FLAG_TRAINER | UNIT_NPC_FLAG_FLIGHTMASTER | + return HasNpcFlag(UNIT_NPC_FLAG_VENDOR | UNIT_NPC_FLAG_TRAINER | UNIT_NPC_FLAG_FLIGHTMASTER | UNIT_NPC_FLAG_PETITIONER | UNIT_NPC_FLAG_BATTLEMASTER | UNIT_NPC_FLAG_BANKER | UNIT_NPC_FLAG_INNKEEPER | UNIT_NPC_FLAG_SPIRITHEALER | UNIT_NPC_FLAG_SPIRITGUIDE | UNIT_NPC_FLAG_TABARDDESIGNER | UNIT_NPC_FLAG_AUCTIONEER); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp index b527b96b718b7f..01b12a9ef8931c 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp @@ -113,7 +113,7 @@ class npc_hyjal_jaina : public CreatureScript scheduler.CancelAll(); if (InstanceScript* hyjal = me->GetInstanceScript()) if (!hyjal->GetData(DATA_WAVE_STATUS)) - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); } void JustEngagedWith(Unit* /*who*/) override @@ -138,7 +138,7 @@ class npc_hyjal_jaina : public CreatureScript void IsSummonedBy(WorldObject* /*summoner*/) override { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); DoCastSelf(SPELL_SIMPLE_TELEPORT, true); // Should wait 2400ms @@ -176,7 +176,7 @@ class npc_hyjal_jaina : public CreatureScript bool OnGossipSelect(Player* /*player*/ , Creature* creature, uint32 /*sender*/, uint32 /*action*/) override { - creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); if (InstanceScript* hyjal = creature->GetInstanceScript()) { @@ -213,7 +213,7 @@ class npc_hyjal_thrall : public CreatureScript scheduler.CancelAll(); if (InstanceScript* hyjal = me->GetInstanceScript()) if (!hyjal->GetData(DATA_WAVE_STATUS)) - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); } void JustEngagedWith(Unit* /*who*/) override @@ -251,7 +251,7 @@ class npc_hyjal_thrall : public CreatureScript bool OnGossipSelect(Player* /*player*/, Creature* creature, uint32 /*sender*/, uint32 /*action*/) override { - creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); if (InstanceScript* hyjal = creature->GetInstanceScript()) { diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp index b9f4f71f340070..dc2e9c641b8062 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp @@ -1790,7 +1790,7 @@ class boss_yoggsaron_descend_portal : public CreatureScript if (!spellClickHandled) return; - if (!me->GetUInt32Value(UNIT_NPC_FLAGS)) + if (!me->GetNpcFlags()) return; switch (me->GetArmor()) @@ -1806,7 +1806,7 @@ class boss_yoggsaron_descend_portal : public CreatureScript break; } - me->SetUInt32Value(UNIT_NPC_FLAGS, 0); + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); me->DespawnOrUnsummon(1000); } From 087acc58bf2a107461ce6b01d9ff209c7d74acca Mon Sep 17 00:00:00 2001 From: Saqra1 <161769195+Saqra1@users.noreply.github.com> Date: Mon, 19 Aug 2024 11:15:39 -0500 Subject: [PATCH 23/41] fix(Core/PetHandler): Allow PetAI to handle flags (#19446) When a pet ability was cast, PetHandler reset all CharmInfo flags before calling PetAI methods, setting the attack flag to true every time. This commands the pet to go and chase the target which is not correct when the state is COMMAND_STAY. PetAI already handles the scenario, it just wasn't getting the actual pet attack state. --- src/server/game/Entities/Pet/Pet.cpp | 5 ----- src/server/game/Handlers/PetHandler.cpp | 7 ------- 2 files changed, 12 deletions(-) diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 117b8f6a505a3d..535a85186c2484 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -754,17 +754,12 @@ void Pet::Update(uint32 diff) GetMotionMaster()->Clear(false); GetMotionMaster()->MoveIdle(); - bool oldCmdAttack = GetCharmInfo()->IsCommandAttack(); - - GetCharmInfo()->SetIsCommandAttack(false); GetCharmInfo()->SetIsAtStay(true); GetCharmInfo()->SetIsCommandFollow(false); GetCharmInfo()->SetIsFollowing(false); GetCharmInfo()->SetIsReturning(false); GetCharmInfo()->SaveStayPosition(true); - GetCharmInfo()->SetIsCommandAttack(oldCmdAttack); - AddSpellCooldown(tempspell, 0, spellInfo->IsCooldownStartedOnEvent() ? infinityCooldownDelay : 0); CastSpell(tempspellTarget, tempspell, false); diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 2f313c7011063c..c0f66a02bdebca 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -355,13 +355,6 @@ void WorldSession::HandlePetActionHelper(Unit* pet, ObjectGuid guid1, uint32 spe return; } - // Clear the flags as if owner clicked 'attack'. AI will reset them - // after AttackStart, even if spell failed - charmInfo->SetIsAtStay(false); - charmInfo->SetIsCommandAttack(true); - charmInfo->SetIsReturning(false); - charmInfo->SetIsFollowing(false); - TriggerCastFlags triggerCastFlags = TRIGGERED_NONE; if (spellInfo->IsPassive()) From 9d76ec6c0930d43ec0fecf8f8c9b5e9ec8d44c5b Mon Sep 17 00:00:00 2001 From: Grimdhex <176165533+Grimdhex@users.noreply.github.com> Date: Tue, 20 Aug 2024 00:08:39 +0200 Subject: [PATCH 24/41] fix(DB/SAI): Hemathion spells and timers (#19621) * fix(DB/SAI): Hemathion spells and timers * correct the devour spell cast condition * forget to delete the old devour line --- .../updates/pending_db_world/rev_1723613411731670300.sql | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1723613411731670300.sql diff --git a/data/sql/updates/pending_db_world/rev_1723613411731670300.sql b/data/sql/updates/pending_db_world/rev_1723613411731670300.sql new file mode 100644 index 00000000000000..ca73596764891b --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1723613411731670300.sql @@ -0,0 +1,6 @@ +-- Fix spells timers for Hemathion (18692) +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 18692) 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 +(18692, 0, 0, 0, 0, 0, 100, 0, 5000, 15000, 5000, 35000, 0, 0, 11, 9573, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Hemathion - In Combat - Cast Flame Breath'), +(18692, 0, 1, 0, 0, 0, 100, 0, 5000, 15000, 40000, 60000, 0, 0, 11, 14100, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Hemathion - In Combat - Cast Terrifying Roar'), +(18692, 0, 2, 0, 12, 0, 100, 1, 0, 20, 0, 0, 0, 0, 11, 38895, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Hemathion - Between 0-20% Health - Cast Devour (No Repeat)'); From 0d0b0a387a4906bcebaa6e74c5cb0408ecbd4515 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 19 Aug 2024 22:09:34 +0000 Subject: [PATCH 25/41] chore(DB): import pending files Referenced commit(s): 9d76ec6c0930d43ec0fecf8f8c9b5e9ec8d44c5b --- .../rev_1723613411731670300.sql => db_world/2024_08_19_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1723613411731670300.sql => db_world/2024_08_19_01.sql} (96%) diff --git a/data/sql/updates/pending_db_world/rev_1723613411731670300.sql b/data/sql/updates/db_world/2024_08_19_01.sql similarity index 96% rename from data/sql/updates/pending_db_world/rev_1723613411731670300.sql rename to data/sql/updates/db_world/2024_08_19_01.sql index ca73596764891b..cd941d7bad198b 100644 --- a/data/sql/updates/pending_db_world/rev_1723613411731670300.sql +++ b/data/sql/updates/db_world/2024_08_19_01.sql @@ -1,3 +1,4 @@ +-- DB update 2024_08_19_00 -> 2024_08_19_01 -- Fix spells timers for Hemathion (18692) DELETE FROM `smart_scripts` WHERE (`entryorguid` = 18692) 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 From bc5ae023d54e77968747cfb8362f3ddca75055a5 Mon Sep 17 00:00:00 2001 From: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> Date: Mon, 19 Aug 2024 18:10:03 -0400 Subject: [PATCH 26/41] fix(DB/Creature): Correct Greater Fire Elemental template values. (#19686) * Init. * Add additional sniffed values. * Add damage modifier default. --- data/sql/updates/pending_db_world/ele-class.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 data/sql/updates/pending_db_world/ele-class.sql diff --git a/data/sql/updates/pending_db_world/ele-class.sql b/data/sql/updates/pending_db_world/ele-class.sql new file mode 100644 index 00000000000000..47b3e615df8a8c --- /dev/null +++ b/data/sql/updates/pending_db_world/ele-class.sql @@ -0,0 +1 @@ +UPDATE `creature_template` SET `minlevel` = 68, `maxlevel` = 80, `exp` = 0, `DamageModifier` = 1, `unit_class` = 2 WHERE `entry` = 15438; From c08aad63034ee316c3c68f56d2498dd67cc5f0d7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 19 Aug 2024 22:10:27 +0000 Subject: [PATCH 27/41] chore(DB): import pending files Referenced commit(s): 0d0b0a387a4906bcebaa6e74c5cb0408ecbd4515 --- .../ele-class.sql => db_world/2024_08_19_02.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/ele-class.sql => db_world/2024_08_19_02.sql} (75%) diff --git a/data/sql/updates/pending_db_world/ele-class.sql b/data/sql/updates/db_world/2024_08_19_02.sql similarity index 75% rename from data/sql/updates/pending_db_world/ele-class.sql rename to data/sql/updates/db_world/2024_08_19_02.sql index 47b3e615df8a8c..cbe8eedf76babe 100644 --- a/data/sql/updates/pending_db_world/ele-class.sql +++ b/data/sql/updates/db_world/2024_08_19_02.sql @@ -1 +1,2 @@ +-- DB update 2024_08_19_01 -> 2024_08_19_02 UPDATE `creature_template` SET `minlevel` = 68, `maxlevel` = 80, `exp` = 0, `DamageModifier` = 1, `unit_class` = 2 WHERE `entry` = 15438; From 82db30868b18bc47cc035b616d1fd86d9d90e222 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Mon, 19 Aug 2024 23:17:17 -0300 Subject: [PATCH 28/41] fix(Scripts/BlackTemple): Fatal Attraction (#19641) * Fix it not being cast if no valid targets are available * Apply Patch 2.2 nerfs --- .../rev_1723778762924716800.sql | 2 + .../BlackTemple/boss_mother_shahraz.cpp | 39 ++++++------------- 2 files changed, 13 insertions(+), 28 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1723778762924716800.sql diff --git a/data/sql/updates/pending_db_world/rev_1723778762924716800.sql b/data/sql/updates/pending_db_world/rev_1723778762924716800.sql new file mode 100644 index 00000000000000..96e26fafdabb32 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1723778762924716800.sql @@ -0,0 +1,2 @@ +-- +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_mother_shahraz_fatal_attraction_aura'; diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp index 634699d8998b88..043e71ebcb5bcc 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp @@ -208,8 +208,6 @@ class spell_mother_shahraz_fatal_attraction : public SpellScript void FilterTargets(std::list& targets) { targets.remove_if(Acore::UnitAuraCheck(true, SPELL_SABER_LASH_IMMUNITY)); - if (targets.size() <= 1) - FinishCast(SPELL_FAILED_DONT_REPORT); } void SetDest(SpellDestination& dest) @@ -249,12 +247,17 @@ class spell_mother_shahraz_fatal_attraction_dummy : public SpellScript void HandleDummy(SpellEffIndex /*effIndex*/) { - if (Unit* target = GetHitUnit()) - { - target->CastSpell(target, SPELL_FATAL_ATTRACTION_DAMAGE, true); - if (AuraEffect* aurEff = target->GetAuraEffect(SPELL_FATAL_ATTRACTION_AURA, EFFECT_1)) - aurEff->SetAmount(aurEff->GetTickNumber()); - } + if (Unit* caster = GetCaster()) + if (AuraEffect* aurEff = caster->GetAuraEffect(SPELL_FATAL_ATTRACTION_AURA, EFFECT_1)) + { + if (aurEff->GetTickNumber() <= 2) + { + int32 damage = 1000 * aurEff->GetTickNumber(); + caster->CastCustomSpell(caster, SPELL_FATAL_ATTRACTION_DAMAGE, &damage, 0, 0, true); + } + else + caster->CastSpell(caster, SPELL_FATAL_ATTRACTION_DAMAGE, true); + } } void Register() override @@ -263,25 +266,6 @@ class spell_mother_shahraz_fatal_attraction_dummy : public SpellScript } }; -class spell_mother_shahraz_fatal_attraction_aura : public AuraScript -{ - PrepareAuraScript(spell_mother_shahraz_fatal_attraction_aura); - - void Update(AuraEffect const* effect) - { - if (effect->GetTickNumber() > uint32(effect->GetAmount() + 1)) - { - PreventDefaultAction(); - SetDuration(0); - } - } - - void Register() override - { - OnEffectPeriodic += AuraEffectPeriodicFn(spell_mother_shahraz_fatal_attraction_aura::Update, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL); - } -}; - void AddSC_boss_mother_shahraz() { RegisterBlackTempleCreatureAI(boss_mother_shahraz); @@ -290,6 +274,5 @@ void AddSC_boss_mother_shahraz() RegisterSpellScript(spell_mother_shahraz_saber_lash_aura); RegisterSpellScript(spell_mother_shahraz_fatal_attraction); RegisterSpellScript(spell_mother_shahraz_fatal_attraction_dummy); - RegisterSpellScript(spell_mother_shahraz_fatal_attraction_aura); } From 0f80a41cb64dea1b00c28a84e441503e179ea154 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Aug 2024 02:18:09 +0000 Subject: [PATCH 29/41] chore(DB): import pending files Referenced commit(s): 82db30868b18bc47cc035b616d1fd86d9d90e222 --- .../rev_1723778762924716800.sql => db_world/2024_08_20_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1723778762924716800.sql => db_world/2024_08_20_00.sql} (70%) diff --git a/data/sql/updates/pending_db_world/rev_1723778762924716800.sql b/data/sql/updates/db_world/2024_08_20_00.sql similarity index 70% rename from data/sql/updates/pending_db_world/rev_1723778762924716800.sql rename to data/sql/updates/db_world/2024_08_20_00.sql index 96e26fafdabb32..3e3d66e13c2513 100644 --- a/data/sql/updates/pending_db_world/rev_1723778762924716800.sql +++ b/data/sql/updates/db_world/2024_08_20_00.sql @@ -1,2 +1,3 @@ +-- DB update 2024_08_19_02 -> 2024_08_20_00 -- DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_mother_shahraz_fatal_attraction_aura'; From ef4e0c0d4abe92ee3d1c2d3e2298555a2492b63e Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Wed, 21 Aug 2024 06:36:05 -0300 Subject: [PATCH 30/41] fix(Core/Spells): Power of the Guardian should persist through death (#19638) --- 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 c2dea2e6632f22..46f31c6f4db563 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4806,6 +4806,12 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->Effects[EFFECT_0].MiscValue = 124; }); + // Power of the Guardian + ApplySpellFix({ 28142, 28143, 28144, 28145 }, [](SpellInfo* spellInfo) + { + spellInfo->AttributesEx3 |= SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD; + }); + for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i) { SpellInfo* spellInfo = mSpellInfoMap[i]; From db7183a5737646773a2f240f01b5891c1e4a4fe8 Mon Sep 17 00:00:00 2001 From: Grimdhex <176165533+Grimdhex@users.noreply.github.com> Date: Wed, 21 Aug 2024 13:13:20 +0200 Subject: [PATCH 31/41] chore(Debug/Scripting): improve debug errors during the unloading scripts (#19643) * chore(Debug/Scripting): improve debug errors during script unloading * add the script name to increase debug informations and ensure to derefence script pointers --- src/server/game/Scripting/ScriptMgr.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 9ec3ffeea13936..d97e568bfec954 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -30,9 +30,24 @@ namespace template inline void SCR_CLEAR() { - for (auto const& [scriptID, script] : ScriptRegistry::ScriptPointerList) + for (auto& [scriptID, script] : ScriptRegistry::ScriptPointerList) { - delete script; + try + { + if(script) + { + delete script; + script = nullptr; + } + } + catch (const std::exception& e) + { + LOG_ERROR("scripts.unloading", "Failed to unload script {} with ID: {}. Error: {}", script->GetName(), scriptID, e.what()); + } + catch (...) + { + LOG_ERROR("scripts.unloading", "Failed to unload script {} with ID: {}. Unknown error occurred.", script->GetName(), scriptID); + } } ScriptRegistry::ScriptPointerList.clear(); From 793213051563213f8cef36fc39f3621218d51076 Mon Sep 17 00:00:00 2001 From: brankkoo <65973684+brankkoo@users.noreply.github.com> Date: Wed, 21 Aug 2024 18:29:47 +0200 Subject: [PATCH 32/41] fix(sql): added end RP for Harlan Needs a Resupply Quest (#18897) --- .../rev_1715685551507749400.sql | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1715685551507749400.sql diff --git a/data/sql/updates/pending_db_world/rev_1715685551507749400.sql b/data/sql/updates/pending_db_world/rev_1715685551507749400.sql new file mode 100644 index 00000000000000..41721272aa78c3 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1715685551507749400.sql @@ -0,0 +1,106 @@ +-- . +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=1428; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22, 1, 1428, 0, 0, 29, 0, 1433, 100, 0, 1, 0, 0, "", "Execute Rema Schneider's SAI only if Corbett Schneider is not nearby"); + +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry` IN (1428, 1433); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (1428, 1433, 143300, 143301, 143302); +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`, `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 +(1428, 0, 0, 0, 20, 0, 100, 0, 333, 0, 0, 0, 12, 1433, 8, 0, 0, 0, 0, 8, 0, 0, 0, -8773.6504, 717.4009, 99.5340, 3.8705, "Rema Schneider - On Quest Turn-in - Summon Corbett Schneider"), + +(1433, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 80, 143300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Spawn - Run Actionlist"), +(1433, 0, 1, 0, 40, 0, 100, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On WP 4 Reached - Talk 1"), +(1433, 0, 2, 0, 40, 0, 100, 0, 31, 0, 0, 0, 80, 143301, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On WP 31 Reached - Run Actionlist"), +(1433, 0, 3, 0, 40, 0, 100, 0, 34, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On WP 34 Reached - Talk 4"), +(1433, 0, 4, 0, 40, 0, 100, 0, 41, 0, 0, 0, 80, 143302, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On WP 41 Reached - Run Actionlist"), +(1433, 0, 5, 0, 40, 0, 100, 0, 44, 0, 0, 0, 1, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On WP 44 Reached - Talk 8"), +(1433, 0, 6, 0, 40, 0, 100, 0, 64, 0, 0, 0, 1, 9, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On WP 64 Reached - Talk 9"), +(1433, 0, 7, 0, 40, 0, 100, 0, 70, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On WP 70 Reached - Despawn"), + +(143300, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 1428, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Talk 0 (Rema Schneider)"), +(143300, 9, 1, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Talk 0"), +(143300, 9, 2, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 53, 0, 1433, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Start Waypoint"), + +(143301, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 54, 16000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Pause WP for 15 seconds"), +(143301, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Talk 2"), +(143301, 9, 2, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 1427, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Talk 0 (Harlan Bagley)"), +(143301, 9, 3, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Talk 3"), + +(143302, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 54, 21000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Pause WP for 15 seconds"), +(143302, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Talk 5"), +(143302, 9, 2, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 483, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Talk 0 (Elaine Trias)"), +(143302, 9, 3, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Talk 6"), +(143302, 9, 4, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Corbett Schneider - On Script - Talk 7"); + +DELETE FROM `waypoints` WHERE `entry`=1433; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(1433, 1, -8766.4648, 716.7565, 99.5340, "Corbett Schneider"), +(1433, 2, -8756.1455, 726.3924, 98.1680, "Corbett Schneider"), +(1433, 3, -8736.9951, 700.4968, 98.6993, "Corbett Schneider"), +(1433, 4, -8752.06, 687.8629, 100.4303, "Corbett Schneider"), +(1433, 5, -8762.08, 680.5356, 101.7102, "Corbett Schneider"), +(1433, 6, -8772.759, 671.8912, 103.0923, "Corbett Schneider"), +(1433, 7, -8772.768, 667.782, 103.4332, "Corbett Schneider"), +(1433, 8, -8773.276, 664.1729, 103.2741, "Corbett Schneider"), +(1433, 9, -8768.034, 657.9344, 103.6037, "Corbett Schneider"), +(1433, 10, -8761.147, 647.2188, 103.86, "Corbett Schneider"), +(1433, 11, -8759.447, 638.8893, 103.3162, "Corbett Schneider"), +(1433, 12, -8758.039, 628.078, 102.0694, "Corbett Schneider"), +(1433, 13, -8761.208, 620.6109, 99.95255, "Corbett Schneider"), +(1433, 14, -8767.146, 612.2792, 97.46174, "Corbett Schneider"), +(1433, 15, -8777.32, 603.8011, 97.09476, "Corbett Schneider"), +(1433, 16, -8793.533, 591.5438, 97.66048, "Corbett Schneider"), +(1433, 17, -8798.256, 589.9958, 97.36029, "Corbett Schneider"), +(1433, 18, -8803.463, 592.6121, 97.25187, "Corbett Schneider"), +(1433, 19, -8808.244, 598.1001, 96.85836, "Corbett Schneider"), +(1433, 20, -8813.239, 605.8572, 96.07804, "Corbett Schneider"), +(1433, 21, -8819.136, 613.8248, 95.15321, "Corbett Schneider"), +(1433, 22, -8821.637, 620.8274, 94.33056, "Corbett Schneider"), +(1433, 23, -8820.776, 625.7927, 93.82214, "Corbett Schneider"), +(1433, 24, -8816.414, 628.6717, 94.11055, "Corbett Schneider"), +(1433, 25, -8809.802, 631.7798, 94.22869, "Corbett Schneider"), +(1433, 26, -8801.114, 634.4752, 94.22869, "Corbett Schneider"), +(1433, 27, -8793.909, 634.5373, 94.32002, "Corbett Schneider"), +(1433, 28, -8788.455, 635.6047, 94.8966, "Corbett Schneider"), +(1433, 29, -8783.56, 636.822, 97.24657, "Corbett Schneider"), +(1433, 30, -8781.598, 636.8708, 97.22314, "Corbett Schneider"), +(1433, 31, -8781.735, 638.8378, 97.22314, "Corbett Schneider"), +(1433, 32, -8781.778, 636.7758, 97.22314, "Corbett Schneider"), +(1433, 33, -8795.15, 634.1953, 94.28103, "Corbett Schneider"), +(1433, 34, -8801.708, 633.1341, 94.22869, "Corbett Schneider"), +(1433, 35, -8817.858, 626.8513, 93.98212, "Corbett Schneider"), +(1433, 36, -8828.889, 622.524, 93.88631, "Corbett Schneider"), +(1433, 37, -8840.156, 612.7209, 92.8798, "Corbett Schneider"), +(1433, 38, -8847.144, 604.3766, 92.36099, "Corbett Schneider"), +(1433, 39, -8852.638, 595.577, 92.37487, "Corbett Schneider"), +(1433, 40, -8863.147, 582.9686, 93.46239, "Corbett Schneider"), +(1433, 41, -8848.96, 570.478, 96.0, "Corbett Schneider"), +(1433, 42, -8859.677, 580.5781, 94.49109, "Corbett Schneider"), +(1433, 43, -8862.987, 584.5252, 93.1463, "Corbett Schneider"), +(1433, 44, -8840.954, 607.2128, 93.16522, "Corbett Schneider"), +(1433, 45, -8837.177, 617.1418, 93.02146, "Corbett Schneider"), +(1433, 46, -8839.63, 632.0125, 94.44655, "Corbett Schneider"), +(1433, 47, -8845.286, 644.3653, 96.2437, "Corbett Schneider"), +(1433, 48, -8849.153, 651.5832, 96.53387, "Corbett Schneider"), +(1433, 49, -8851.61, 661.0834, 97.05186, "Corbett Schneider"), +(1433, 50, -8845.611, 665.9679, 97.63871, "Corbett Schneider"), +(1433, 51, -8837.404, 671.1436, 98.19347, "Corbett Schneider"), +(1433, 52, -8825.113, 679.1154, 97.53572, "Corbett Schneider"), +(1433, 53, -8830.587, 690.738, 97.36238, "Corbett Schneider"), +(1433, 54, -8841.896, 715.2056, 97.55064, "Corbett Schneider"), +(1433, 55, -8842.827, 723.2777, 97.29913, "Corbett Schneider"), +(1433, 56, -8834.735, 728.9673, 97.85699, "Corbett Schneider"), +(1433, 57, -8819.055, 738.2991, 97.92567, "Corbett Schneider"), +(1433, 58, -8803.791, 745.3076, 97.57478, "Corbett Schneider"), +(1433, 59, -8787.081, 745.6882, 98.51132, "Corbett Schneider"), +(1433, 60, -8773.176, 740.5723, 99.45663, "Corbett Schneider"), +(1433, 61, -8764.434, 735.3757, 98.88588, "Corbett Schneider"), +(1433, 62, -8758.341, 726.0469, 98.21922, "Corbett Schneider"), +(1433, 63, -8762.695, 720.631, 99.53365, "Corbett Schneider"), +(1433, 64, -8767.639, 715.3578, 99.53385, "Corbett Schneider"), +(1433, 65, -8773.21, 714.8073, 99.53385, "Corbett Schneider"), +(1433, 66, -8777.759, 715.541, 99.52771, "Corbett Schneider"), +(1433, 67, -8780.018, 717.4185, 99.53414, "Corbett Schneider"), +(1433, 68, -8776.452, 719.8099, 101.5017, "Corbett Schneider"), +(1433, 69, -8773.681, 722.051, 104.1553, "Corbett Schneider"), +(1433, 70, -8771.129, 724.3008, 105.9132, "Corbett Schneider"); From de1e42bd83fe149b9d24239df05e4d5ae7f72d38 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 21 Aug 2024 16:30:43 +0000 Subject: [PATCH 33/41] chore(DB): import pending files Referenced commit(s): 793213051563213f8cef36fc39f3621218d51076 --- .../rev_1715685551507749400.sql => db_world/2024_08_21_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1715685551507749400.sql => db_world/2024_08_21_00.sql} (99%) diff --git a/data/sql/updates/pending_db_world/rev_1715685551507749400.sql b/data/sql/updates/db_world/2024_08_21_00.sql similarity index 99% rename from data/sql/updates/pending_db_world/rev_1715685551507749400.sql rename to data/sql/updates/db_world/2024_08_21_00.sql index 41721272aa78c3..a4c0589e244b85 100644 --- a/data/sql/updates/pending_db_world/rev_1715685551507749400.sql +++ b/data/sql/updates/db_world/2024_08_21_00.sql @@ -1,3 +1,4 @@ +-- DB update 2024_08_20_00 -> 2024_08_21_00 -- . DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=1428; INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES From eb410d6ab2f65d3d4b5bb27eadc269c213ad24c5 Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Thu, 22 Aug 2024 19:24:08 +0200 Subject: [PATCH 34/41] refactor(Core/Battleground): rewrite SpiritOfCompetitionEvent() (#19675) * Use DoForAllPlayers * Change to void - we don't need to return a value * Better readability --- .../game/Battlegrounds/Battleground.cpp | 50 +++++++------------ src/server/game/Battlegrounds/Battleground.h | 2 +- 2 files changed, 20 insertions(+), 32 deletions(-) diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 87a09f99342619..d9c5c02dea5fb3 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -917,46 +917,34 @@ void Battleground::EndBattleground(PvPTeamId winnerTeamId) } if (IsEventActive(EVENT_SPIRIT_OF_COMPETITION) && isBattleground()) - SpiritofCompetitionEvent(winnerTeamId); + SpiritOfCompetitionEvent(winnerTeamId); sScriptMgr->OnBattlegroundEnd(this, GetTeamId(winnerTeamId)); } -bool Battleground::SpiritofCompetitionEvent(PvPTeamId winnerTeamId) +void Battleground::SpiritOfCompetitionEvent(PvPTeamId winnerTeamId) const { - // Everyone is eligible for tabard reward - for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) - { - Player* player = itr->second; - bool questStatus = player->GetQuestStatus(QUEST_FLAG_PARTICIPANT) != QUEST_STATUS_REWARDED; - - if (player && questStatus) - player->CastSpell(player, SPELL_SPIRIT_OF_COMPETITION_PARTICIPANT, true); - } - - // In case of a draw nobody get rewarded - if (winnerTeamId == PVP_TEAM_NEUTRAL) - return false; + bool isDraw = winnerTeamId == PVP_TEAM_NEUTRAL; std::vector filteredPlayers; - - for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) - { - Player* player = itr->second; - bool playerTeam = player->GetBgTeamId() == GetTeamId(winnerTeamId); - bool questStatus = player->GetQuestStatus(QUEST_FLAG_WINNER) != QUEST_STATUS_REWARDED; - - if (player && playerTeam && questStatus) - filteredPlayers.push_back(player); - } - - if (filteredPlayers.size()) + GetBgMap()->DoForAllPlayers([&](Player* player) + { + // Reward all eligible players the participant reward + if (player->GetQuestStatus(QUEST_FLAG_PARTICIPANT) != QUEST_STATUS_REWARDED) + player->CastSpell(player, SPELL_SPIRIT_OF_COMPETITION_PARTICIPANT, true); + + // Collect players of the winning team who has yet to recieve the winner reward + if (!isDraw && player->GetBgTeamId() == GetTeamId(winnerTeamId) && + player->GetQuestStatus(QUEST_FLAG_WINNER) != QUEST_STATUS_REWARDED) + filteredPlayers.push_back(player); + }); + + // Randomly select one player from winners team to recieve the reward, if any eligible + if (!filteredPlayers.empty()) { - if (Player* wPlayer = filteredPlayers[rand() % filteredPlayers.size()]) - wPlayer->CastSpell(wPlayer, SPELL_SPIRIT_OF_COMPETITION_WINNER, true); + Player* wPlayer = filteredPlayers[rand() % filteredPlayers.size()]; + wPlayer->CastSpell(wPlayer, SPELL_SPIRIT_OF_COMPETITION_WINNER, true); } - - return true; } uint32 Battleground::GetBonusHonorFromKill(uint32 kills) const diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h index 65eaeaf7605349..bf4bf29bbb3a88 100644 --- a/src/server/game/Battlegrounds/Battleground.h +++ b/src/server/game/Battlegrounds/Battleground.h @@ -343,7 +343,7 @@ class Battleground [[nodiscard]] uint32 GetBonusHonorFromKill(uint32 kills) const; // Spirit of Competition event - bool SpiritofCompetitionEvent(PvPTeamId winnerTeamId); + void SpiritOfCompetitionEvent(PvPTeamId winnerTeamId) const; bool IsRandom() { return m_IsRandom; } From dd41692a8e2e388c9bd18f75d8fb511187c0e612 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Thu, 22 Aug 2024 14:27:15 -0300 Subject: [PATCH 35/41] fix(Scripts/SethekkHalls): Prevent multiple spawns of Anzu (#19636) * fix(Scripts/SethekkHalls): Prevent multiple spawns of Anzu * Update instance_sethekk_halls.cpp * Update instance_sethekk_halls.cpp * Update rev_1723763212128826500.sql --- .../rev_1723763212128826500.sql | 2 ++ .../SethekkHalls/instance_sethekk_halls.cpp | 18 +++++++++++++----- .../Auchindoun/SethekkHalls/sethekk_halls.h | 3 ++- 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1723763212128826500.sql diff --git a/data/sql/updates/pending_db_world/rev_1723763212128826500.sql b/data/sql/updates/pending_db_world/rev_1723763212128826500.sql new file mode 100644 index 00000000000000..f556675caeb57e --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1723763212128826500.sql @@ -0,0 +1,2 @@ +-- +DELETE FROM `event_scripts` WHERE `id` = 14797; diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp index 7159dc87083475..4d6f959cea31d2 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp @@ -31,6 +31,14 @@ ObjectData const gameObjectData[] = { 0, 0 } }; +ObjectData const creatureData[] = +{ + { NPC_VOICE_OF_THE_RAVEN_GOD, DATA_VOICE_OF_THE_RAVEN_GOD }, + { 0, 0 } +}; + +const uint32 anzuSummonEventId = 14797; + class instance_sethekk_halls : public InstanceMapScript { public: @@ -48,14 +56,14 @@ class instance_sethekk_halls : public InstanceMapScript SetHeaders(DataHeaders); SetBossNumber(EncounterCount); LoadDoorData(doorData); - LoadObjectData(nullptr, gameObjectData); + LoadObjectData(creatureData, gameObjectData); } - void OnCreatureCreate(Creature* creature) override + void ProcessEvent(WorldObject* /*obj*/, uint32 eventId) override { - if (creature->GetEntry() == NPC_ANZU || creature->GetEntry() == NPC_VOICE_OF_THE_RAVEN_GOD) - if (GetBossState(DATA_ANZU) == DONE) - creature->DespawnOrUnsummon(1); + if (eventId == anzuSummonEventId) + if (!GetCreature(DATA_VOICE_OF_THE_RAVEN_GOD) && GetBossState(DATA_ANZU) != DONE) + instance->SummonCreature(NPC_VOICE_OF_THE_RAVEN_GOD, Position(-88.02f, 288.18f, 75.2f, 6.0f)); } }; }; diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h b/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h index 69bf90cb880478..2d559bacfcf851 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h @@ -41,7 +41,8 @@ enum eTypes enum InstanceData { - DATA_GO_TALON_KING_COFFER + DATA_GO_TALON_KING_COFFER, + DATA_VOICE_OF_THE_RAVEN_GOD }; enum eIds From e7580edfb4d97460acf3fd904a5a7f0ccc237b17 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 22 Aug 2024 17:28:08 +0000 Subject: [PATCH 36/41] chore(DB): import pending files Referenced commit(s): dd41692a8e2e388c9bd18f75d8fb511187c0e612 --- .../rev_1723763212128826500.sql => db_world/2024_08_22_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1723763212128826500.sql => db_world/2024_08_22_00.sql} (53%) diff --git a/data/sql/updates/pending_db_world/rev_1723763212128826500.sql b/data/sql/updates/db_world/2024_08_22_00.sql similarity index 53% rename from data/sql/updates/pending_db_world/rev_1723763212128826500.sql rename to data/sql/updates/db_world/2024_08_22_00.sql index f556675caeb57e..395431400561cf 100644 --- a/data/sql/updates/pending_db_world/rev_1723763212128826500.sql +++ b/data/sql/updates/db_world/2024_08_22_00.sql @@ -1,2 +1,3 @@ +-- DB update 2024_08_21_00 -> 2024_08_22_00 -- DELETE FROM `event_scripts` WHERE `id` = 14797; From 497d1ac0cb98ea2d8d87a555591d8038ebbbc305 Mon Sep 17 00:00:00 2001 From: Blackbird102 <56515187+Blackbird102@users.noreply.github.com> Date: Thu, 22 Aug 2024 19:29:24 +0200 Subject: [PATCH 37/41] fix(DB/Quest): deeprun rat roundup (#19573) added deeprun rat roundup fix for smartscripts --- .../sql/updates/pending_db_world/rev_1722804930814975200.sql | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1722804930814975200.sql diff --git a/data/sql/updates/pending_db_world/rev_1722804930814975200.sql b/data/sql/updates/pending_db_world/rev_1722804930814975200.sql new file mode 100644 index 00000000000000..625499028acfeb --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1722804930814975200.sql @@ -0,0 +1,5 @@ +-- Set RequiredNpcOrGo1 of quest 6661 Deeprun Rat Roundup to 13017 +UPDATE `quest_template` SET `RequiredNpcOrGo1`=13017 WHERE `ID`=6661; + +-- Set quest credit to unit 13017 in 'Deeprun Rat - On Spellhit - Quest Credit' +UPDATE `smart_scripts` SET `action_param1`=13017 WHERE `entryorguid`=13016 AND `source_type`=0 AND `id`=2 AND `link`=3; From 7037108e9c2d1ee615cbc75ed58f53766d7cf19a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 22 Aug 2024 17:30:17 +0000 Subject: [PATCH 38/41] chore(DB): import pending files Referenced commit(s): 497d1ac0cb98ea2d8d87a555591d8038ebbbc305 --- .../rev_1722804930814975200.sql => db_world/2024_08_22_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1722804930814975200.sql => db_world/2024_08_22_01.sql} (88%) diff --git a/data/sql/updates/pending_db_world/rev_1722804930814975200.sql b/data/sql/updates/db_world/2024_08_22_01.sql similarity index 88% rename from data/sql/updates/pending_db_world/rev_1722804930814975200.sql rename to data/sql/updates/db_world/2024_08_22_01.sql index 625499028acfeb..fcee084c82f525 100644 --- a/data/sql/updates/pending_db_world/rev_1722804930814975200.sql +++ b/data/sql/updates/db_world/2024_08_22_01.sql @@ -1,3 +1,4 @@ +-- DB update 2024_08_22_00 -> 2024_08_22_01 -- Set RequiredNpcOrGo1 of quest 6661 Deeprun Rat Roundup to 13017 UPDATE `quest_template` SET `RequiredNpcOrGo1`=13017 WHERE `ID`=6661; From c0b6eae0e1b4ccce0a22829ecae40bc2792601ed Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:09:43 -0300 Subject: [PATCH 39/41] fix(Core/Spells): Fix movement impairment auras not being removed (#19684) --- src/server/game/Entities/Unit/Unit.cpp | 7 +------ src/server/game/Spells/SpellInfo.cpp | 9 +++++++++ src/server/game/Spells/SpellInfo.h | 1 + 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 7f8c1649a7de12..5fbd0a7d8d84bf 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -5185,17 +5185,12 @@ void Unit::RemoveMovementImpairingAuras(bool withRoot) for (AuraApplicationMap::iterator iter = m_appliedAuras.begin(); iter != m_appliedAuras.end();) { Aura const* aura = iter->second->GetBase(); - if (aura->GetSpellInfo()->Mechanic == MECHANIC_SNARE) + if (aura->GetSpellInfo()->Mechanic == MECHANIC_SNARE || aura->GetSpellInfo()->HasEffectMechanic(MECHANIC_SNARE)) { RemoveAura(iter); continue; } - // Xinef: turn off snare auras by setting amount to 0 :) - for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) - if (((1 << i) & iter->second->GetEffectMask()) && aura->GetSpellInfo()->Effects[i].Mechanic == MECHANIC_SNARE) - aura->GetEffect(i)->ChangeAmount(0); - ++iter; } } diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 5c30b040d8cea4..444817c2301d6c 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -880,6 +880,15 @@ bool SpellInfo::HasEffect(SpellEffects effect) const return false; } +bool SpellInfo::HasEffectMechanic(Mechanics mechanic) const +{ + for (auto const& effect : Effects) + if (effect.Mechanic == mechanic) + return true; + + return false; +} + bool SpellInfo::HasAura(AuraType aura) const { for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) diff --git a/src/server/game/Spells/SpellInfo.h b/src/server/game/Spells/SpellInfo.h index 3d649302967dff..534ad254a6d0df 100644 --- a/src/server/game/Spells/SpellInfo.h +++ b/src/server/game/Spells/SpellInfo.h @@ -407,6 +407,7 @@ friend class SpellMgr; uint32 GetCategory() const; bool HasEffect(SpellEffects effect) const; + bool HasEffectMechanic(Mechanics mechanic) const; bool HasAura(AuraType aura) const; bool HasAnyAura() const; bool HasAreaAuraEffect() const; From 3419f0246bff5b2d438cb45fc4c344a2db8bef73 Mon Sep 17 00:00:00 2001 From: Tereneckla Date: Thu, 22 Aug 2024 23:36:39 +0000 Subject: [PATCH 40/41] fix (Core/Spells) partially revert #19529 (#19703) Update Spell.cpp --- src/server/game/Spells/Spell.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 4429a9be46f97c..ea4c3383ea3c6c 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -9035,7 +9035,7 @@ namespace Acore if (!target->ToGameObject()->IsInRange(_position->GetPositionX(), _position->GetPositionY(), _position->GetPositionZ(), _range)) return false; } - else if (!target->IsInDist(_position, _range)) + else if (!target->IsWithinDist3d(_position, _range)) return false; else if (target->GetTypeId() == TYPEID_UNIT && target->ToCreature()->IsAvoidingAOE()) // pussywizard return false; From 30a790117be921ed0eff513322af1793995b2b4d Mon Sep 17 00:00:00 2001 From: sudlud Date: Fri, 23 Aug 2024 06:38:00 +0200 Subject: [PATCH 41/41] =?UTF-8?q?fix(Core/WorldSocketMgr):=20sync=20defaul?= =?UTF-8?q?t=20Network.OutUBuff=20with=20worldser=E2=80=A6=20(#19702)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(Core/WorldSocketMgr): sync default Network.OutUBuff with worldserver.conf.dist * Update WorldSocketMgr.cpp --- src/server/game/Server/WorldSocketMgr.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/game/Server/WorldSocketMgr.cpp b/src/server/game/Server/WorldSocketMgr.cpp index f4afe7ceea7cc4..15e75e188b8191 100644 --- a/src/server/game/Server/WorldSocketMgr.cpp +++ b/src/server/game/Server/WorldSocketMgr.cpp @@ -38,7 +38,7 @@ class WorldSocketThread : public NetworkThread }; WorldSocketMgr::WorldSocketMgr() : - BaseSocketMgr(), _socketSystemSendBufferSize(-1), _socketApplicationSendBufferSize(65536), _tcpNoDelay(true) + BaseSocketMgr(), _socketSystemSendBufferSize(-1), _socketApplicationSendBufferSize(4096), _tcpNoDelay(true) { } @@ -57,7 +57,7 @@ bool WorldSocketMgr::StartWorldNetwork(Acore::Asio::IoContext& ioContext, std::s // -1 means use default _socketSystemSendBufferSize = sConfigMgr->GetOption("Network.OutKBuff", -1); - _socketApplicationSendBufferSize = sConfigMgr->GetOption("Network.OutUBuff", 65536); + _socketApplicationSendBufferSize = sConfigMgr->GetOption("Network.OutUBuff", 4096); if (_socketApplicationSendBufferSize <= 0) {