Silenci0 / SMAC

Sourcemod Anti-Cheat
Other
152 stars 54 forks source link

[L4D2] False Positive From Eyetest Module When Switching Teams #33

Open Silenci0 opened 4 years ago

Silenci0 commented 4 years ago

From issue https://github.com/Silenci0/SMAC/issues/28 by @lunatixxx

Two examples of false positives on Left 4 Dead 2, these alerts appeared just after the player has switched team from infected to survivors when the second round just started. I don't use the compatibility mode as i don't have any plugin who could cause problems.

12/23/2019 - 22:03:16: [smac_eyetest.smx | 0.8.7.2] Player 1 (ID: STEAM_1:1:000000 | IP: 0000000) is suspected of cheating with their eye angles. Eye Angles: 301 113 0 Map: c8m5_rooftop | Origin: 5581 8445 5536 | Angles: 0 236 0 | Weapon: weapon_pistol | Team: 2 | Latency: 65ms

01/02/2020 - 06:53:52: [smac_eyetest.smx | 0.8.7.2] Player 2 (ID: STEAM_1:1:000000| IP: 0000000) is suspected of cheating with their eye angles. Eye Angles: 355 17 0 Map: c10m2_drainage | Origin: -10966 -9099 -591 | Angles: 0 13 0 | Weapon: weapon_pistol | Team: 2 | Latency: 122ms

Maybe creating a timer to delay to a few seconds the detection at begining of this round will fix the problem ?


This issue was made into it own separate thread for better organizational purposes. The thread it originally came from was sort of a different topic. The initial glance at the problem seems to be a L4D2 specific issue regarding team swapping that is triggering detections from the eyetest module, most likely due to the differences in eye angles between infected and survivors (this is just an educated guess, I cannot confirm this).

Anyway, this will be looked into, but if there is anymore information regarding this specific issue, feel free to post about it here. Thanks!

lunatixxx commented 4 years ago

It could be difficult to reproduce as it happens totally randomly, its not a big deal as i know i have to ignore it when it happens.

Silenci0 commented 4 years ago

Alright, that is good to know. If it happens rarely/randomly and can be ignored without it causing too many issues, then it will be lower on the priority list. I'll still look into it and see what I can find.

lunatixxx commented 3 years ago

"public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3], float angles[3], int& weapon, int& subtype, int& cmdnum, int& tickcount, int& seed, int mouse[2]) { // Ignore bots if (IsFakeClient(client)) { return Plugin_Continue; }

// Ignore if the round did not start
if (L4D_HasAnySurvivorLeftSafeArea() == false)
{
    return Plugin_Continue;
}

" Adding that should higly limit these false detections, no need to check if the round did not start. But is it well placed in the code ?