From e1e29e5f14d1ad9f2a2f9fab88967098506d4866 Mon Sep 17 00:00:00 2001 From: M'Dic Date: Tue, 25 Apr 2023 14:43:09 -0400 Subject: [PATCH] update (detection): Change wmotripple to area check somewhere along the lines of blind cherry picking onto azerothcore from who ever, we no have the isseu where the wmobytripple always coming back as true leading to a couple of the anticheat checks from not workingso we move the affected area checks to a area id check. --- src/AnticheatMgr.cpp | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/src/AnticheatMgr.cpp b/src/AnticheatMgr.cpp index 8c73c00..cb3cfe0 100644 --- a/src/AnticheatMgr.cpp +++ b/src/AnticheatMgr.cpp @@ -455,9 +455,15 @@ void AnticheatMgr::JumpHackDetection(Player* player, MovementInfo movementInfo, if (!sConfigMgr->GetOption("Anticheat.StricterDetectJumpHack", true)) return; - //Celestial Planetarium Observer Battle has a narrow path that false flags - if (player && GetWMOAreaTableEntryByTripple(5202, 0, 24083)) - return; + // We exempt select areas found in 335 to prevent false hack hits + if (player->GetAreaId()) + { + switch (player->GetAreaId()) + { + case 4273: //Celestial Planetarium Observer Battle has a narrow path that false flags + return; + } + } if (m_Players[key].GetLastOpcode() == MSG_MOVE_JUMP && !player->IsFalling()) return; @@ -527,9 +533,15 @@ void AnticheatMgr::TeleportPlaneHackDetection(Player* player, MovementInfo movem if (!sConfigMgr->GetOption("Anticheat.DetectTelePlaneHack", true)) return; - //Celestial Planetarium Observer Battle has a narrow path that false flags - if (player && GetWMOAreaTableEntryByTripple(5202, 0, 24083)) - return; + // We exempt select areas found in 335 to prevent false hack hits + if (player->GetAreaId()) + { + switch (player->GetAreaId()) + { + case 4273: //Celestial Planetarium Observer Battle has a narrow path that false flags + return; + } + } if (player->HasAuraType(SPELL_AURA_WATER_WALK)) return; @@ -956,13 +968,18 @@ void AnticheatMgr::ZAxisHackDetection(Player* player, MovementInfo movementInfo) if (movementInfo.HasMovementFlag(MOVEMENTFLAG_WATERWALKING) || player->IsInWater() || !player->IsAlive()) return; - //Celestial Planetarium Observer Battle has a narrow path that false flags - if (player && GetWMOAreaTableEntryByTripple(5202, 0, 24083)) - return; + // We exempt select areas found in 335 to prevent false hack hits + if (player->GetAreaId()) + { + switch (player->GetAreaId()) + { + case 4273: //Celestial Planetarium Observer Battle has a narrow path that false flags + case 495: //Ring of Judgement just being in the area false flags + case 4161: //Wymrest Temple just being in the area false flags + return; + } + } - //Ring of Judgement - if (player && GetWMOAreaTableEntryByTripple(4932, 0, 22984)) - return; // We want to exclude this LiquidStatus from detection because it leads to false positives on boats, docks etc. // Basically everytime you stand on a game object in water