Players get disconnected due to speedhack detection not working correctly #10
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This can be triggered immediately after a warp, especially when using a mount:
This stems from a naive speed-hack check:
With a bit of cleanup, the code above is de facto equivalent with the following:
Basically, this does three things:
Should any of the latter two be true, the server decides that a speed-hack might be used and disconnects the player. This is stupid as trust is put into the time reported by the client, which could be spoofed.
The false positives are caused by the fact that the client's clock isn't strictly real-time, but is tied to the 3D render process, therefore being susceptible to skew when in debug mode or on a particularly GPU-heavy environment.
We don't even know, assuming the client's clock would be stable and trustworthy, whether this method of detecting a speed-hack is even reliable. Therefore it's nothing but trouble and it should be removed.
This is also true for the neighbouring combo-hack check, which also ties into the client's clock and speed-hack check.
The
dwTime
field in the MOVE packets could also be removed, as it doesn't seem to be used for any operations.Solved in
610c7e7020