Well your code is rather long and I dont have too much time today.
However, are you doing c_move only clientsided or on server and client?
What Im doing:
Im doing my whole movement clientsided, gravity, jumping, etc etc.
Im sending my new position all time and the whole vector because it needs less overhead as if I would send every position as soon as it gets changed.
On the server Im lerping with a ping factor, means higher ping more smooth lerping.
Then Im calculating the velocity out of the movement multiply it with the ping and add it to the x and y coordinate:

Code:
vVelocity[pPlayer].x = speedX * ping/1000;
vVelocity[pPlayer].y = speedY * ping/1000;

...

newpos = receive(player.x);
newpos.x += vVelocity[pPlayer].x;
newpos.y += vVelocity[pPlayer].y;
vec_lerp(player, newpos, pingoffset);



I wont predict my z pos because the players would glide into the ground if they fall from high places grin

Last edited by Ch40zzC0d3r; 11/30/13 11:24.