Перейти к содержанию

скрипт для биша


Рекомендуемые сообщения

CLEANSE_ID = 1409;
 ITERATION_DELAY = 100;
  var

   skill: TL2Skill;
    i: Integer;
    begin

     while Engine.Status = lsOnline do
     begin
     if (SkillList.ByID(CLEANSE_ID, skill)) then
     begin for i:=0 to Party.Chars.Count - 1 do
     begin if ((Party.Chars.Items(i).AbnormalID > 0) and (Party.Chars.Items(i).AbnormalID <> 366)) then
     begin Engine.SetTarget(Party.Chars.Items(i)); Engine.UseSkill(CLEANSE_ID, true, true);
     end;
      if ((User.AbnormalID > 0)
      and (Party.Chars.Items(i).AbnormalID <> 366)) and then
      begin Engine.SetTarget(User); Engine.UseSkill(CLEANSE_ID, true, true);
       end;
       end;
        end; Delay(ITERATION_DELAY);
        end;
        end.
 

что тут не так кто подскажет ? и вообще работать он может ?

Ссылка на сообщение
Поделиться на другие сайты

Пофиксил пару багов, ChatGPT вроде правильно ошибку определил (вроде его вывод 😃 ) нужно было and убрать. В игре скрипт не проверял но должен работать. Совет - можно легко форматировать скрипты в Lazarus (выделил и нажал Ctrl-D, у меня по дефолту так).

В теории можно без скрипта настроить, в адрике проверять условия (стан, рут и т.п.) + abnormalid, но вроде там реально проблемно сделать (вроде надо каждый abnormalid прописывать). Можно еще обернуть всё в процедуру и запускать новый тред (как пример - https://adrenalinebot.com/ru/api/example/checking-if-our-character-is-stuck-in-the-thread)

const
    CLEANSE_ID = 1409;     // ID cleanse, можно найти в вкладке Умения в адрике
    ITERATION_DELAY = 100; // как быстро будет происходить проверка пати

var
    skill: TL2Skill;       // Нужно для поиска клинса в списке скилов персонажа
    i: integer;
    
begin
while Engine.Status = lsOnline do
begin
    if (SkillList.ByID(CLEANSE_ID, skill)) then
    begin
        for i := 0 to Party.Chars.Count - 1 do
        // здесь можно игнорировать некоторых чаров или добавить офф-пати чаров (не проверял)
        begin
            // Если нашли дебаф (любой) то кастуем клинс на чара в пати
            if ((Party.Chars.Items(i).AbnormalID > 0) and
                (Party.Chars.Items(i).AbnormalID <> 366)) then
            begin
                Engine.SetTarget(Party.Chars.Items(i)); // лучше обернуть в IF Engine..., но будет работать и так
                Engine.UseSkill(CLEANSE_ID, True, True);
            end;

            // Проверяем себя и кастуем клинс, можно поднять выше, тогда приоритет на себя будет выше 
            if ((User.AbnormalID > 0) and (User.AbnormalID <> 366)) then
            begin
                Engine.SetTarget(User);
                Engine.UseSkill(CLEANSE_ID, True, True);
            end;
        end;
    end;
    Delay(ITERATION_DELAY);
end;
end.

 

Изменено пользователем nixer
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...