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); }