-
Notifications
You must be signed in to change notification settings - Fork 22
Description
Videos
- Super slow motion troll going from up to down and comparing with real gif and sprites:
https://streamable.com/2xek1 - Super slow motion troll going from right to left:
https://streamable.com/wmv6e - Gif and sprites of troll going from up to down:
https://ezgif.com/split/ezgif-1-1c80fb2cf982.gif
Description
There are 3 big issues on moving animations on client:
- local player walking and idle animations
- creatures being pushed diagonally
- creatures on screen appears to be dashing/teleporting to next tile when walking
The first two can be fixed to work almost like real tibia 10.98, and the fixes are different things.
The third I don't know how to solve.
My guess is that creatures that aren't the local player are being drawn with wrong position or wrong speed and then when the creature reach the next tile position on server side the creature position on client side is refreshed (you can see that Troll's name and health bar teleports too, so its not a problem on skipping frames, its skipping positions) without the sprite reaching it.
I've seen that the information sent from server to client is just the oldPos and the newPos, on client the sprites are rendered using the oldPos + newPos + gettingStepDuration() + totalPixelsWalked (something like that) and I verified the getStepDuration() formula from client sources and server sources and they look almost the same thing... I'm kind of lost here
Edit:
I've counted frames and it looks like 5 frames are being used and then the creature teleports to the next tile and reset to the first frame.
To Reproduce
See monsters or players walking on screen
Expected behavior
A smooth and continuous movement without skipping positions.
Environment
- Latest OTClient
- Protocol 10.98
- Windows 10
Additional context
- Monster dash edubart/otclient#937
- https://otland.net/threads/animations-lets-give-it-a-try.262781/
- https://github.com/otland/otclient/compare/master...otland:WalkAnimation?expand=1 @ninjalulz solution for local player walking animation (I changed it a little to my client)
I fixed the local player walking and idle animation issue using ninjalulz's solution and fixed the pushing diagonal laggy issue (https://i.gyazo.com/412d93e4a799cdc93fd098c04001d7e2.mp4) setting the factor from getStepDuration() (in creature.cpp in client sources) to 1.