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 — половина секунды.
  • Отсутствие прицела может означать отказ действия или его автоматическую обработку: сверяйте игровой журнал.