From 23e27f350ea3fbcc06d46878edad61ee29bb40dc Mon Sep 17 00:00:00 2001 From: manstfu <33990720+manstfu@users.noreply.github.com> Date: Thu, 6 Feb 2025 11:54:49 +0100 Subject: [PATCH] fix(Scripts/IcecrownCitadel): Sindragosa P3 Exploit (#20938) Co-authored-by: Jelle Meeus --- .../scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index 263b636d4..08932e308 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -1114,10 +1114,9 @@ public: return !_caster->IsWithinLOSInMap(unit); // for players and pets check only dynamic los (ice block gameobjects) - float ox, oy, oz; - _caster->GetPosition(ox, oy, oz); - DynamicMapTree const& dTree = unit->GetMap()->GetDynamicMapTree(); - return !dTree.isInLineOfSight(unit->GetPositionX(), unit->GetPositionY(), unit->GetPositionZ() + 2.f, ox, oy, oz + 2.f, unit->GetPhaseMask(), VMAP::ModelIgnoreFlags::Nothing); + if (unit->IsUnit() && unit->ToUnit()->HasUnitState(UNIT_STATE_MELEE_ATTACKING) && unit->ToUnit()->IsWithinMeleeRange(_caster)) + return false; + return !_caster->IsWithinLOSInMap(unit, VMAP::ModelIgnoreFlags::Nothing, LINEOFSIGHT_CHECK_GOBJECT_M2, 0, _caster->GetCombatReach() * 0.7); } private: