Looks like there is regression with MoveInTime method after patch 1.21. Now animation is delayed few seconds on client. On server everything is is ok and reported position is animated correctly. Probably some optimization side effect of 1.21 as method is not used in vanilla Dayz.
I noticed it with my Will-o'-the-Wisp https://steamcommunity.com/sharedfiles/filedetails/?id=2943755582 mod. Creature now kick player, bump sound is heard and movement animation is played few seconds later completly diconnecting player perception what's going on. Nothing is changed and it was working fine pre 1.21 version. Retested on vanilla Chernarus without any other mods.
Code in question is in ab_willowisp_model_base.c:
override void EOnSimulate( IEntity owner, float dt ) { if (GetGame() && GetGame().IsServer()) { . . . vector movePos = Vector(x, y, z); vector transform[4]; GetTransform(transform); transform[3] = movePos; MoveInTime(transform, dt); . . . } }
As quick fix to prevent players to be killed by something that they cannot see I just replaced MoveInTime(transform, dt) with SetPosition(movePos) and all works as should again except not so smooth animation ofc. Of course, I call MoveInTime only on server.
code repository at: https://github.com/ataribaby42/DayzWillowisps