[FilterScript] Cheat detector (health-hack + no-spread)
#8

Quote:

1) Lag / Desync is a big factor at SA-MP, you will face false positives.

The delayer is there to prevent false detections caused by lag, it has to be adjusted properly depending on the server as I stated in the comment within the script.


Quote:

2) There are cheats that can set back the health to its old value showing as they got hit but as soon as they are hit, it is restored (as the "shot" package is sent to the server)

The "delayer" is not there to check health at a certain time after hit. It's there to prevent counting shots if they are too close to the first one.


Quote:

4) This will clearly give false positives for idle players. If I'm right, onplayerweaponshot is called when a player is AFK aswell, however their health will decrease when they are back from idling.

There's a comment in the code notifying you that there needs to be an AFK check to avoid false detections.
"if(isDead[hitid] == true || afterSpawnCover[hitid] == true) // + here must be a check for AFK to avoid false detections"


Quote:

5) If not idle, the players who are not sending enough packets to the server (for example the same second they died) if the script checks a bit late, which is likely to happen because you have a delayer over there. The player is shot, the delayer fires off, the same second the player dies, then your delayer eventually checks what's the player's health after they died, usually when the player is dead the server can give false information about the player's health, that would send false positives aswell.

As I stated regarding 2nd point of your message, the "delayer" is not there to check health after certain time, it's there to prevent potential checks. After the "delayer" time comes to the end there is no check until the player is hit again. + That's why there is a death check.


Quote:

3) OnPlayerWeaponShot callback can be spoofed and can be avoided to be called.

6) Most of these will be caused from desync, it will declare desynced players as health hacking. Don't forget the SA-MP server is not multi-threaded so is the client, it can not process all the data at once.

7) As above, it will really change the results you give on a full server, because there's the server's networking systems and packetloss, delays on the client's screen, delays from the server itself, server lag, code constantly running at the background, if the server hangs up even for 200ms the results would be noticeable on your detector and will cause for it to give false positives, not one or two, but many because the server players overall will feel this.

8 ) Sorry but some cute test you do on localhost will not prove anything, your ping on localhost is 1 and you never have packetloss, some bot you spawn in the game to shoot at will clearly be on the same network as you are so there would be absolutely no false positives ofcourse because you are already connected to the server pretty fine.

Shit happens, that's why it's called "cheat detector" not "anti-cheat". I wish I had an option to check how it works with large number of players online but I don't have. No one forces you to set auto-ban for detected players, check it, assess it, adjust it, use it as you wish.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 4 Guest(s)