Перейти к содержимому

Фотография
- - - - -

Нужна помощь в объединении 2 скриптов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1
Kotov222

Kotov222
  • 1
    0
    Не выбрано
    • Гремлин
    • Пользователь

Помогите пожалуйста объединить 2 скрипта

Первый на рандомное передвижение

Второй на нажатие ячейки при условии нахождения в пати

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)                  // не находимся в бою и ничего не кастуем
      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.
function InParty(): boolean;
begin
  result:= Party.Chars.Count > 0;
  end;
  
begin
while InParty() do begin
Engine.UseKey($71);
Delay (100);
end;
end.

  • 0

#2
vvfrc33

vvfrc33
  • 111
    26
    Горит!
    • Lvl 40
    • Пользователь
    Skype
    teodor2475
    Город
    СПБ

Kotov222, NewThread в поиск вбей тут на форуме/ перенеси код из 2 скрипта в 1 (после NewThread)


Сообщение отредактировал vvfrc33: 19 Апрель 2020 - 13:45

  • 0

Пишу скрипты на заказ 

Discord neowhite#3259


#3
dsp68rus

dsp68rus
  • 41
    4
    Кривляюсь
    • Lvl 23
    • Пользователь
Такой вариант например :
 
Добавить в скрипт процедуру 
 
procedure InParty;
begin
  if Party.Chars.Count > 0 then begin 
    Engine.UseKey($71);
    Delay (200);
  end;
end;
а тело основной программы сделать так :
 
begin
  Script.NewThread(@RandomClicksThread, Pointer(150));       // запускаем поток, 2ым аргументом указываем макс дистанцию на которую будем отбегать
  Script.NewThread(@InParty);
  // code...

  Delay(-1);
end.  
Будет параллельно крутиться две потока бег вокруг точки и долбилка на кнопку.

  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Rawr.pro - Сделано с для игроков.