Тема: Active Follow
Показать сообщение отдельно
Старый 25.01.2011, 09:45   #1
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 32
Сказал Спасибо: 0
Имеет 14 спасибок в 12 сообщенях
sinles пока неопределено
По умолчанию Active Follow

Формула вычисления точки на векторе:
a + t*(b-a)
где а - начальная точка; b - конечная; t - коэффициент от -1 до 1.
Позволит в скрипте боту следовать не на рандомные координаты вокруг цели, а ему за спину.
Есть проблема с его отставанием при пробежке на большую дистанцию. То есть бот будет не добегать до вас на 10% (для большой дистанции это может быть 300 ярдов)

Вот собственно функция для организации следования:
Код:
procedure TargetMovedTo(tx, ty, tz : integer);
var nX, nY, nZ : integer;
begin
  if not follow then exit; 
  if delta(MyX,MyY,tx,ty) < 150 then exit;
  nX := Round(tx + dist * (MyX - tx));
  nY := Round(ty + dist * (MyY - ty));
  MoveTo(nx, ny, tz);
end;
Её нужно вызывать каждый раз когда мы перехватили координаты цели за которой следуем.

Вот тестовый скрипт, который вешает чара под ником Name за тем кто напишет в чат go
Оффтоп
sinles вне форума   Ответить с цитированием
За это сообщение sinles нажился 2 спасибками от: