From 73eb27001174bc6afc09429ddd276478a26d1605 Mon Sep 17 00:00:00 2001 From: MDIC Date: Fri, 15 Apr 2022 17:43:02 -0400 Subject: [PATCH] Update: Water Hack Detection improvements Water Hack Detection now detects water walking hacks that is not client hack patched. Thanks to Shauren of TC for key information leading to clean detection Co-Authored-By: Sven <36102838+sven295@users.noreply.github.com> Co-Authored-By: Jinnaix <37972361+jinnaix@users.noreply.github.com> --- src/AnticheatMgr.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/AnticheatMgr.cpp b/src/AnticheatMgr.cpp index 095f384..4d95699 100644 --- a/src/AnticheatMgr.cpp +++ b/src/AnticheatMgr.cpp @@ -61,6 +61,22 @@ void AnticheatMgr::WalkOnWaterHackDetection(Player* player, MovementInfo moveme if (!sConfigMgr->GetOption("Anticheat.DetectWaterWalkHack", true)) return; + ObjectGuid key = player->GetGUID(); + + LiquidData liquidData; + + if (player->GetLiquidData().Status == LIQUID_MAP_WATER_WALK) + { + if (!m_Players[key].GetLastMovementInfo().HasMovementFlag(MOVEMENTFLAG_WATERWALKING) && !movementInfo.HasMovementFlag(MOVEMENTFLAG_WATERWALKING)) + { + if (sConfigMgr->GetOption("Anticheat.WriteLog", true)) + { + LOG_INFO("module", "AnticheatMgr:: Walk on Water - Hack detected player {} ({})", player->GetName(), player->GetGUID().ToString()); + } + BuildReport(player, WALK_WATER_HACK_REPORT); + } + } + // ghost can water walk if (player->HasAuraType(SPELL_AURA_GHOST)) return; @@ -70,8 +86,6 @@ void AnticheatMgr::WalkOnWaterHackDetection(Player* player, MovementInfo moveme if (player->HasAuraType(SPELL_AURA_GHOST) && player->HasAura(15007)) return; - ObjectGuid key = player->GetGUID(); - /* Thanks to @LilleCarl */ if (m_Players[key].GetLastMovementInfo().HasMovementFlag(MOVEMENTFLAG_WATERWALKING) && movementInfo.HasMovementFlag(MOVEMENTFLAG_WATERWALKING)) { if (player->HasAuraType(SPELL_AURA_WATER_WALK) || player->HasAuraType(SPELL_AURA_FEATHER_FALL) ||