API UO WaitForTarget - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.WaitForTarget
Оглавление · Алфавитный указатель · Прицел и цели
ClassicUO • Runtime API
Ждёт появления активного курсора цели в пределах тайм-аута.
Точный синтаксис
UO.WaitForTarget(MaxWaitTimeMS:Any) -> Any
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
MaxWaitTimeMS— Максимальное ожидание в миллисекундах. Ноль и отрицательные значения дают одну немедленную проверку; это не бесконечное ожидание.
Возвращает
Integer 1 — курсор был активен при проверке; 0 — тайм-аут без курсора. Локальный callback-прицел также удовлетворяет этой проверке. Это не подтверждение применения подготовленного WaitTarget: автоматический ответ может уже израсходовать курсор до проверки.
Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся состояние.
Поведение
- Проверка выполняется с паузами до 25 мс в потоке скрипта и может быть прервана его остановкой.
- Сам метод не создаёт прицел и не выбирает цель.
Примеры
Пример 1. Ожидать прицел навыка
# Ожидать прицел навыка
#
# Ждёт появления активного курсора цели в пределах тайм-аута.
#
# Integer 1 — курсор был активен при проверке; 0 — тайм-аут без курсора. Локальный
# callback-прицел также удовлетворяет этой проверке. Это не подтверждение применения
# подготовленного WaitTarget: автоматический ответ может уже израсходовать курсор до проверки.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.
SUB Main()
# MaxWaitTimeMS=3000, затем выбирается self.
# WaitTargetSelf заранее не ставится: этот пример отвечает явно.
UO.UseSkill('Anatomy')
IF UO.WaitForTarget(3000) THEN
UO.TargetToObject('self')
END IF
END SUB
Разбор параметров и выполнения:
- MaxWaitTimeMS=3000, затем выбирается self.
- WaitTargetSelf заранее не ставится: этот пример отвечает явно.
Пример 2. Одна проверка
# Одна проверка
#
# Ждёт появления активного курсора цели в пределах тайм-аута.
#
# Integer 1 — курсор был активен при проверке; 0 — тайм-аут без курсора. Локальный
# callback-прицел также удовлетворяет этой проверке. Это не подтверждение применения
# подготовленного WaitTarget: автоматический ответ может уже израсходовать курсор до проверки.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.
SUB Main()
# MaxWaitTimeMS=0.
# ready — 1 или 0; никакой длительной паузы нет.
VAR ready = UO.WaitForTarget(0)
UO.Print(STR(ready))
END SUB
Разбор параметров и выполнения:
- MaxWaitTimeMS=0.
- ready — 1 или 0; никакой длительной паузы нет.
Пример 3. Обработать тайм-аут
# Обработать тайм-аут
#
# Ждёт появления активного курсора цели в пределах тайм-аута.
#
# Integer 1 — курсор был активен при проверке; 0 — тайм-аут без курсора. Локальный
# callback-прицел также удовлетворяет этой проверке. Это не подтверждение применения
# подготовленного WaitTarget: автоматический ответ может уже израсходовать курсор до проверки.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.
SUB Main()
# 500 — половина секунды.
# Отсутствие прицела может означать отказ действия или его автоматическую обработку: сверяйте
# игровой журнал.
IF UO.WaitForTarget(500) = 0 THEN
UO.CancelWaitTarget()
UO.Print('Cursor did not arrive')
END IF
END SUB
Разбор параметров и выполнения:
- 500 — половина секунды.
- Отсутствие прицела может означать отказ действия или его автоматическую обработку: сверяйте игровой журнал.