21:07 | 22.11.2024
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Бегать вокруг при атаке
Sonik · Offline · Дата: Пятница, 04.12.2015, 19:24 | Сообщение # 1

  • Подполковник
  • Сообщений: 143
 
3
 
Скрипт позовляет убегать от атакующих мобов, если это окно бафера к примеру, если его взяли в цель мобы и атакуют персонаж будет бегать вокруг главного персонажа чтобы его не убили мобы.
Код
uses SysUtils;

var CenterX,CenterY,CenterZ,NowRadius,NowAngle: integer;
GuardName:string;
DisableBot:boolean;
Obj:Tl2Live;

procedure GoToPoint(X,Y,Z,Radius,Angle:integer); //Расчёт конечной точки с учетом угла
begin
Engine.MoveTo(X+trunc(Radius*sin(Angle)),Y+trunc(Radius*cos(Angle)),Z+20); //Z чуть добавляем, иначе будет тупить на неровной поверхности и пытаться "закопаться" - спорный момент, можно не добавлять.
end;

function MobAggrToMe:boolean; //Проверка на атакующих меня мобов
var num:integer;
begin
result:=false; //"не пойман-не вор!" (с)
for num:=0 to NpcList.Count - 1 do //Если я хоть у одного из окружающих живых мобов в таргете - пора бежать
if (NpcList.Items(num).Target=User) and not(NpcList.Items(num).Dead) then begin
result:=true; //пора бежать!
exit;
end;
end;

begin
GuardName:='СуперДД'; //Имя защитника (вокруг кого бегать)
NowRadius:=150; //Радиус, по которому бегать вокруг Защитника
NowAngle:=0; //Начальный угол (можно не трогать)
DisableBot:=true; //Отключать остальные функции бота пока бегаем от мобов (хил, бафф и т.п.)

while true do begin //Бесконечный цикл
CharList.ByName(GuardName,Obj); //В каждом цикле обновляем координаты защитника
CenterX:=Obj.X; //X
CenterY:=Obj.Y; //Y
CenterZ:=Obj.Z; //Z
if MobAggrToMe then begin
if DisableBot then Engine.FaceControl(0,false);
GoToPoint(CenterX,CenterY,CenterZ,NowRadius,NowAngle); //Двигаемся вокруг защитника с изменяющимся углом
NowAngle:=NowAngle+20; //Шаг угла
if NowAngle>=340 then NowAngle:=0; //Если перевалило за 340 градусов, обнуляем (360 лучше не ставить)
end
else if DisableBot then Engine.FaceControl(0,true);
end;

end.

  • Страница 1 из 1
  • 1
Поиск: