Open derselbst opened 8 years ago
Hi.
I tested CheckFastFire() on many clients with rapidfire support. Also I tested fire with mouse wheel. Warning level does not increases so much in both cases.
If i used fire with mouse wheel warning level was = 0. On some clients with rapidfire it increased very slowly — maximum that I have seen = 20. In practice this is not a problem.
should be 1ms
As I understand 1 tick = 1s. But I am not sure. Whatever 1ms is too small to be true.
I'm also having a ping of 20ms
Try another client (DDnet for example).
1 tick = 1s
Oh, my mistake. 1 tick = 1/50s (or 20ms).
Finally I understood how it works :) It warns only when someone fires at regular intervals. For example last 30 shots should been every 20ms, or every 40/60/80ms. Human clicks not regulary.
Example ticks array for bot that fires every 40ms (2 ticks) and human:
[ 1 3 5 7 9 ] [ 1 4 5 8 9 ]
[ 2 2 2 2 2 ] [ 3 1 3 1 1 ]
[ 0 0 0 0 0 ] [-2 2 -2 0 0 ]
abs(sum()) = 0 abs(sum()) = 2
0 < 1 2 > 1
You need to click at least once per 20ms to warn. I can click only every 110ms.
Also I tested fire with mouse wheel.
Hm, interesting, never thought about that. Do you know anyone actually using this?
Thx for that Tick() clarification, found it too ;)
Example ticks array for bot that fires every 40ms (2 ticks)
Is that a real-world example? Just asking, because firing every 2 ticks is pretty fast. So one could think about introducing another check that really tests for fast-fire (as originally intended), while preserving that test to check for regular fire.
Hm, interesting, never thought about that. Do you know anyone actually using this?
I personally don't know, but Nibiru told me about this "hack".
Is that a real-world example? Just asking, because firing every 2 ticks is pretty fast.
It is from my head :) But you can define any frequency.
So one could think about introducing another check that really tests for fast-fire (as originally intended), while preserving that test to check for regular fire.
I don't want ban people for fast-fire. In my opinion it is not a serious cheat. And we can't differentiate cheats from manual rapid-fire.
you can define any frequency.
That's the freq. on the client side. The question is, does it actually propagate to the server? It's a long way to the server, strange things can happen :)
In my opinion it is not a serious cheat.
Not a serious one, yeah. Well we can just keep it in mind, if such a check ever gets necessary in the future.
Thx for your mail btw ;)
That's the freq. on the client side. The question is, does it actually propagate to the server? It's a long way to the server, strange things can happen :)
Yes, due to ping it can be a problem. However we need to collect 30 samples, which is just 20 * 30 = 600ms. Due to small time intervals detector works quite accurately.
Not a serious one, yeah. Well we can just keep it in mind, if such a check ever gets necessary in the future.
Yes, most likely.
I think makes sense to make a more accurate test for fast-aim (instead of removed CheckFastChange()). Now this check partially replaced with CheckInputPos(), but it does not work as fast as we would like.
Hey Jigglypuff here,
I'm not quite satisfied with the CheckFastFire(). What I hoped to test for is, if some player shoots every Server()->Tick() (should be 1ms). However I only got a minimum diff of 6ms between firings. This is too much, since it can also be manually achieved when trying hard. As a compromise I collect 30 samples and then test how much the timediffs differ from each other (not that correct :/ I know).
I'm also having a ping of 20ms when playing on localhost, so something is twisted with my machine. On occasion maybe you could test what's the smallest timediff for you...