Skip to content

Commit 13c184d

Browse files
authored
Merge pull request #129 from acidmanifesto/3.3.5-passive_anticheat
update (passive_anticheat): False hits and reorder
2 parents 3c09e1f + 42d0b39 commit 13c184d

File tree

1 file changed

+31
-4
lines changed

1 file changed

+31
-4
lines changed

src/server/game/Anticheat/AnticheatMgr.cpp

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,19 @@ void AnticheatMgr::JumpHackDetection(Player* player, MovementInfo movementInfo,
537537
if (!distance2D)
538538
return;
539539

540+
// The anticheat is disabled on transports, so we need to be sure that the player is indeed on a transport.
541+
GameObject* transportGobj = player->GetMap()->GetGameObject(movementInfo.transport.guid);
542+
if (transportGobj && transportGobj->IsTransport())
543+
{
544+
return;
545+
}
546+
547+
// The anticheat check is disabled on Elevators, so we need to be sure that the player is indeed on a transport.
548+
if (player->HasUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT))
549+
{
550+
return;
551+
}
552+
540553
if (!player->HasUnitMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY) && movementInfo.jump.zspeed < -10.0f)
541554
return;
542555

@@ -982,17 +995,31 @@ void AnticheatMgr::ZAxisHackDetection(Player* player, MovementInfo movementInfo)
982995
if (player->GetLiquidStatus() == LIQUID_MAP_ABOVE_WATER)
983996
return;
984997

998+
// The anticheat is disabled on transports, so we need to be sure that the player is indeed on a transport.
999+
GameObject* transportGobj = player->GetMap()->GetGameObject(movementInfo.transport.guid);
1000+
if (transportGobj && transportGobj->IsTransport())
1001+
{
1002+
return;
1003+
}
1004+
1005+
// The anticheat check is disabled on Elevators, so we need to be sure that the player is indeed on a transport.
1006+
if (player->HasUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT))
1007+
{
1008+
return;
1009+
}
1010+
9851011
// We exempt select areas found in 335 to prevent false hack hits
9861012
if (player->GetAreaId())
9871013
{
9881014
switch (player->GetAreaId())
9891015
{
990-
case 4273: //Celestial Planetarium Observer Battle has a narrow path that false flags
991-
case 495: //Ring of Judgement just being in the area false flags
992-
case 4161: //Wymrest Temple just being in the area false flags
9931016
case 10: // Duskwood bridge
9941017
case 40: // Westfall bridge
9951018
case 321: // Hammerfall wooden balcony
1019+
case 369: // Thunder Ridge being on the over hang cliff
1020+
case 495: //Ring of Judgement just being in the area false flags
1021+
case 4273: //Celestial Planetarium Observer Battle has a narrow path that false flags
1022+
case 4161: //Wymrest Temple just being in the area false flags
9961023
return;
9971024
}
9981025
}
@@ -1047,7 +1074,7 @@ void AnticheatMgr::ZAxisHackDetection(Player* player, MovementInfo movementInfo)
10471074
}
10481075
if (sWorld->getBoolConfig(CONFIG_ANTICHEAT_CM_ALERTSCREEN))
10491076
{ // display warning at the center of the screen, hacky way?
1050-
std::string str = "|cFFFFFC00[Playername:|cFF00FFFF[|cFF60FF00" + player->GetName() + "|cFF00FFFF] AIGNORE-Z HACK COUNTER MEASURE ALERT";
1077+
std::string str = "|cFFFFFC00[Playername:|cFF00FFFF[|cFF60FF00" + player->GetName() + "|cFF00FFFF] IGNORE-Z HACK COUNTER MEASURE ALERT";
10511078
WorldPacket data(SMSG_NOTIFICATION, (str.size() + 1));
10521079
data << str;
10531080
sWorld->SendGlobalGMMessage(&data);

0 commit comments

Comments
 (0)