Скорость игрока на серверной стороне

Версия Minecraft
1.7.10

tox1cozZ

aka Agravaine
8,454
598
2,890
Я понимаю что движение игрока почти полностью рассчитывается на клиенте.
Но как мне получить скорость игрока на сервере?
double speed = Math.sqrt(Math.pow(motionX, 2.0) + Math.pow(motionY, 2.0) + Math.pow(motionZ, 2.0));
motionX и motionZ всегда равны нулю. moveStrafing и moveForward тоже.
Как быть?
 

timaxa007

Модератор
5,831
409
672
Есть вроде prevPosX/Y/Z, если они не ноль, то и есть просто posX/Y/Z и высчитывать путь,
Если ноль, то использовать тики игрока, запоминать текущие позицию, чтобы в следующем тике высчитывать путь.
 

timaxa007

Модератор
5,831
409
672
Думаю, не странно, так как это больше нужно для рендера. Но нашёл вот:
Java:
    /** The entity's X coordinate at the previous tick, used to calculate position during rendering routines */
    public double lastTickPosX;
    /** The entity's Y coordinate at the previous tick, used to calculate position during rendering routines */
    public double lastTickPosY;
    /** The entity's Z coordinate at the previous tick, used to calculate position during rendering routines */
    public double lastTickPosZ;
---
И всё равно это не даёт нормального показателя скорости/пути.
 
Последнее редактирование:
Сверху