From 8c3c35e5827db9bd2190156f4daada1a3e5215c4 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:38:38 -0300 Subject: [PATCH] fix(Scripts/Ulduar): Freya no longer stuck in combat with Hodir's helpers (#26576) Co-authored-by: Claude Opus 4.8 --- .../updates/pending_db_world/rev_1783886287444094700.sql | 4 ++++ src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp | 6 ++++++ 2 files changed, 10 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1783886287444094700.sql diff --git a/data/sql/updates/pending_db_world/rev_1783886287444094700.sql b/data/sql/updates/pending_db_world/rev_1783886287444094700.sql new file mode 100644 index 000000000..aa6f10949 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1783886287444094700.sql @@ -0,0 +1,4 @@ +-- Hodir helpers (#26330): swap PACIFIED (131072) for IMMUNE_TO_NPC (512) per sniffs, so Freya's +-- instance-wide Ground Tremor can't tag them and block her reset. SWIMMING kept where set; +-- immunity is cleared on Hodir engage (boss_hodir.cpp). +UPDATE `creature_template` SET `unit_flags` = (`unit_flags` & ~131072) | 512 WHERE `entry` IN (32893, 32897, 32900, 32901, 32941, 32946, 32948, 32950, 33325, 33326, 33327, 33328, 33330, 33331, 33332, 33333); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp index 46f9a3367..f8f406e3b 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp @@ -255,6 +255,12 @@ struct boss_hodir : public BossAI events.ScheduleEvent(EVENT_HARD_MODE_MISSED, 3min); Talk(TEXT_AGGRO); + // Helpers spawn IMMUNE_TO_NPC so idle bosses (e.g. Freya's Ground Tremor, #26330) can't tag + // them; drop it on engage. TODO: confirm timing - sniffs may clear it per-helper on unfreeze. + for (uint8 i = 0; i < 8; ++i) + if (Creature* helper = GetHelper(i)) + helper->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); + if (instance->GetBossState(BOSS_HODIR) != DONE) instance->SetBossState(BOSS_HODIR, IN_PROGRESS); }