From 77be5bb19d82a12dc27928c52c4204f37b8bf327 Mon Sep 17 00:00:00 2001 From: Walter Pagani Date: Sat, 29 Jun 2024 00:28:29 -0300 Subject: [PATCH] fix(Spells/SpellInfoCorrections) Remove friendly mask on goblins (#18912) Co-authored-by: Jelle Meeus --- src/server/game/Spells/SpellInfoCorrections.cpp | 8 ++++++++ src/server/scripts/World/npcs_special.cpp | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index ba171bd62..bac4ba7dc 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4925,6 +4925,14 @@ void SpellMgr::LoadSpellInfoCorrections() factionTemplateEntry = const_cast(sFactionTemplateStore.LookupEntry(1921)); // The Taunka factionTemplateEntry->hostileMask |= 8; + // Remove 1 from guards friendly mask, making able to attack players + factionTemplateEntry = const_cast(sFactionTemplateStore.LookupEntry(1857)); // Area 52 Bruiser + factionTemplateEntry->friendlyMask &= ~1; + factionTemplateEntry = const_cast(sFactionTemplateStore.LookupEntry(1806)); // Netherstorm Agent + factionTemplateEntry->friendlyMask &= ~1; + factionTemplateEntry = const_cast(sFactionTemplateStore.LookupEntry(1812)); // K3 Bruiser + factionTemplateEntry->friendlyMask &= ~1; + // Remove vehicles attr, making accessories selectable VehicleSeatEntry* vse = const_cast(sVehicleSeatStore.LookupEntry(4689)); // Siege Engine, Accessory vse->m_flags &= ~VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE; diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index c0fdf07fe..be36753cd 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -572,6 +572,10 @@ public: if (!SpawnAssoc) return; + // check if they're hostile + if (!(me->IsHostileTo(who) || who->IsHostileTo(me))) + return; + if (me->IsValidAttackTarget(who)) { Player* playerTarget = who->ToPlayer();