uses SysUtils;
procedure RandomClicksThread(d: integer);
var X, Y, Z: integer;
begin
X:= User.X; // устанавливаем начальные координаты точки
Y:= User.Y; // относительно которой мы будем бегать
Z:= User.Z;
while Delay(1000) do begin // запускаем бесконечный цикл
if (Engine.Status = lsOnline) then begin // если мы в игре, то
if (User.DistTo(X, Y, Z) > 2*d*d) then begin // если мы отдалились от ориентирной точки
Print(Format('[RandomClicksThread] Координаты базовой точки обновлены: (%d, %d) -> (%d, %d)', [X, Y, User.X, User.Y]));
X:= User.X; // обновляем координаты
Y:= User.Y;
Z:= User.Z;
end;
if (not User.Moved) and (not User.Sitting) // если мы не движемся и не сидим
and (not User.InCombat) and (User.Cast.EndTime = 0) // не находимся в бою и ничего не кастуем
and ((User.Target = nil) or (User.Target.Dead)) then begin // и у нас либо нет цели либо цель мертва, то
if Engine.DMoveTo(X+Random(2*d)-d, Y+Random(2*d)-d, User.Z) then // делаем рандомный шаг в сторону
Delay(1000+Random(5000)); // и ждем рандомное кол-во времени
end;
end;
end;
end;
begin
Script.NewThread(@RandomClicksThread, Pointer(150)); // запускаем поток, 2ым аргументом указываем макс дистанцию на которую будем отбегать
// code...
Delay(-1);
end.
- Adrenaline
-
Классы
- TL2Control
- TL2Object
- TL2Spawn
- TL2Live
- TL2Char
- TL2User
- TL2Npc
- TL2Pet
- TL2Drop
- TL2Buff
- TL2Skill
- TLearnItem
- TL2Cast
- TL2Item
- TL2AucItem
- TL2List
- TL2StaticObject
- TSpawnList
- TCharList
- TNpcList
- TPetList
- TDropList
- TItemList
- TSkillList
- TBuffList
- TL2Warehouse
- TL2Auction
- TInventory
- TParty
- TConfirmDlg
- TMessages
- TChatMessage
- TBot
- TPaxEngine
- TGps
- TGpsPoint
- TL2Base
- TBaseList
- TBaseObject
- TBaseItem
- TBaseSkill
- TBaseAction
- TBaseNpc
- Перечисления
- Объекты
- Методы
- Модули
- NexTarget
- TRadar
- Скрипты
- Примеры скриптов
- Каталог скриптов
- Заказать скрипт
- Полезное
- Навигация
- Кабинет
- Сайт бота
- Купить Adrenaline
- Инструкции
- База игровых ID
- Тех. поддержка