6200xs 1 Опубликовано 23 октября, 2023 Жалоба Поделиться Опубликовано 23 октября, 2023 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. что тут не так кто подскажет ? и вообще работать он может ? Ссылка на сообщение Поделиться на другие сайты
Admin 360 Опубликовано 23 октября, 2023 Жалоба Поделиться Опубликовано 23 октября, 2023 Ссылка на сообщение Поделиться на другие сайты
6200xs 1 Опубликовано 24 октября, 2023 Автор Жалоба Поделиться Опубликовано 24 октября, 2023 это для меня сложно Ссылка на сообщение Поделиться на другие сайты
nixer 2 Опубликовано 24 октября, 2023 Жалоба Поделиться Опубликовано 24 октября, 2023 (изменено) Пофиксил пару багов, 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. Изменено 24 октября, 2023 пользователем nixer Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти