The delay was seriously annoying when players panic and click rapidly
their input was ignored.
Which lead to annoyed players and a quick death.
With this timer disabled or set to 40ms instead of 600ms then the game
play around walking feels a lot more responsive because it doesn't just
ignore a lot of rapid clicks.
This Walk Delay feature may have been implemented as a way to cut down
the data sent to the server when players click a lot.
A better way to do it would be to take the clicks in a short time slice,
or compare the location of clicks to not send duplicated packets.
At the end of the day the walktoxy packet is like 5 bytes in length.
To find this,
I found the packet ID of walktoxy (0x437)
Searched for it in the game.
Found a place it was moved into a structure
Looked above and found a call to timeGetTime
Which moved eax somewhere [esi+dx]
Found that address with a breakpoint and found what accessed it.
Found what was setting it on click.
timeGetTime()
add eax, 258
The delay was seriously annoying when players panic and click rapidly their input was ignored. Which lead to annoyed players and a quick death.
With this timer disabled or set to 40ms instead of 600ms then the game play around walking feels a lot more responsive because it doesn't just ignore a lot of rapid clicks.
This Walk Delay feature may have been implemented as a way to cut down the data sent to the server when players click a lot.
A better way to do it would be to take the clicks in a short time slice, or compare the location of clicks to not send duplicated packets.
At the end of the day the walktoxy packet is like 5 bytes in length.
To find this,
I found the packet ID of walktoxy (0x437) Searched for it in the game. Found a place it was moved into a structure Looked above and found a call to timeGetTime Which moved eax somewhere [esi+dx] Found that address with a breakpoint and found what accessed it. Found what was setting it on click. timeGetTime() add eax, 258
I think that is 600ms. Quite the delay.