Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
MoveBackwardToLocation и ValidatePosition
#1
Собственно сервер птс (:redlolSmile. Пишу свою автоматическую бродилку по точкам.
Отправляю MoveBackwardToLocation однако сервер мне сразу выдает Action Failed или же персонажа начинает "портовать" на месте.

Вообще как это работает?

Добавлено через 11 минут
Цитата:x = CurX + (DestX - CurX)*(cur_time - start_time) * speed / distance

где CurX DestX - значения из пакета MoveToLocation,
cur_time - время отправки ValidatePosition
start_time - время прихода MoveToLocation
speed - скорость персонажа
distance - расстояние перемещения по данным пакета MoveToLocation

при работе клиента с высоким приоритетом среднее расстояние между точкой рассчитаной по этой формуле и отосланой в Validate position составляет 3-5 максимальное 10-15.
Нашел еще вот такое.
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#2
Код:
long timeNow = System.currentTimeMillis();
double speed;
if(actor.isRunning()) {
  if(actor.isInWater())
    speed = actor.getStat().getWalkSpeed() / 2000d;
  else if(actor.isPlayer())
    speed = actor.getTemplate().getBaseRunSpeed() * 70 / 100000d;
  else
    speed = actor.getStat().getWalkSpeed() / 1000d;
} else {
  speed = actor.getStat().getRunSpeed() / 1000d;
}
double complete = speed * (timeNow - prevTime); //prevTime - прошлое время
double modifer = complete / endPoint.getDistance(actor.getLoc()); //getLoc - текущая точка
prevTime = timeNow;

int dx = endPoint.getX() - actor.getX();
int dy = endPoint.getY() - actor.getY();
int dz = endPoint.getZ() - actor.getZ();

int x = actor.getX() + (int)Math.round(modifer * dx);
int y = actor.getY() + (int)Math.round(modifer * dy);
int z = actor.getZ() + (int)Math.round(modifer * dz);
Как сделать без prevTime надеюсь разберешься, изменений будет не много.

При начале движения (если сервер его конечно одобрил), ты должен сразу отослать валидейт, а так же отсылать его каждые 1200мс и в конце движения.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)