diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 2 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp | 6 |
3 files changed, 6 insertions, 5 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 926e986a606..e2d744f9b26 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -23135,7 +23135,8 @@ bool Player::IsAlwaysDetectableFor(WorldObject const* seer) const return false; if (Player const* seerPlayer = seer->ToPlayer()) - if (IsGroupVisibleFor(seerPlayer)) + if (IsGroupVisibleFor(seerPlayer) + && std::ranges::none_of(GetAuraEffectsByType(SPELL_AURA_MOD_INVISIBILITY), [](AuraEffect const* invis) { return invis->GetSpellInfo()->HasAttribute(SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY); })) return true; return false; diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 64517a6a572..0953db0b799 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -763,7 +763,7 @@ enum SpellAttr8 : uint32 enum SpellAttr9 : uint32 { SPELL_ATTR9_FORCE_DEST_LOCATION = 0x00000001, // TITLE Force Dest Location DESCRIPTION Ignores collision with terrain (unsure if it also ignores terrain height and can go under map) - SPELL_ATTR9_UNK1 = 0x00000002, // TITLE Unknown attribute 1@Attr9 + SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY = 0x00000002, // TITLE Mod Invis Includes Party 1@Attr9 DESCRIPTION Causes invisibility auras to ignore "can always see party member invis" rule SPELL_ATTR9_RESTRICTED_FLIGHT_AREA = 0x00000004, // TITLE Only When Illegally Mounted SPELL_ATTR9_UNK3 = 0x00000008, // TITLE Unknown attribute 3@Attr9 SPELL_ATTR9_SPECIAL_DELAY_CALCULATION = 0x00000010, // TITLE Missile Speed is Delay (in sec) diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp index d8b08acca1f..996a6feea37 100644 --- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp +++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp @@ -1439,7 +1439,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr9>::ToString(SpellAttr9 value) switch (value) { case SPELL_ATTR9_FORCE_DEST_LOCATION: return { "SPELL_ATTR9_FORCE_DEST_LOCATION", "Force Dest Location", "Ignores collision with terrain (unsure if it also ignores terrain height and can go under map)" }; - case SPELL_ATTR9_UNK1: return { "SPELL_ATTR9_UNK1", "Unknown attribute 1@Attr9", "" }; + case SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY: return { "SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY", "Mod Invis Includes Party 1@Attr9", "Causes invisibility auras to ignore \042can always see party member invis\042 rule" }; case SPELL_ATTR9_RESTRICTED_FLIGHT_AREA: return { "SPELL_ATTR9_RESTRICTED_FLIGHT_AREA", "Only When Illegally Mounted", "" }; case SPELL_ATTR9_UNK3: return { "SPELL_ATTR9_UNK3", "Unknown attribute 3@Attr9", "" }; case SPELL_ATTR9_SPECIAL_DELAY_CALCULATION: return { "SPELL_ATTR9_SPECIAL_DELAY_CALCULATION", "Missile Speed is Delay (in sec)", "" }; @@ -1483,7 +1483,7 @@ TC_API_EXPORT SpellAttr9 EnumUtils<SpellAttr9>::FromIndex(size_t index) switch (index) { case 0: return SPELL_ATTR9_FORCE_DEST_LOCATION; - case 1: return SPELL_ATTR9_UNK1; + case 1: return SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY; case 2: return SPELL_ATTR9_RESTRICTED_FLIGHT_AREA; case 3: return SPELL_ATTR9_UNK3; case 4: return SPELL_ATTR9_SPECIAL_DELAY_CALCULATION; @@ -1524,7 +1524,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr9>::ToIndex(SpellAttr9 value) switch (value) { case SPELL_ATTR9_FORCE_DEST_LOCATION: return 0; - case SPELL_ATTR9_UNK1: return 1; + case SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY: return 1; case SPELL_ATTR9_RESTRICTED_FLIGHT_AREA: return 2; case SPELL_ATTR9_UNK3: return 3; case SPELL_ATTR9_SPECIAL_DELAY_CALCULATION: return 4; |