API UO Targeting - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.Targeting

Оглавление · Алфавитный указатель · Targeting

ClassicUO • Runtime API

Проверяет наличие активного курсора выбора цели в клиенте.

Точный синтаксис

UO.Targeting() -> Integer

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

Параметров нет.

Возвращает

Integer 1 — TargetManager.IsTargeting установлен; 0 — активного курсора нет. Учитывается и локальный callback-прицел. Это не serial и не состояние очереди 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 пишутся без кавычек. Вызовите команду один раз и сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся состояние.

Поведение

  • Читает состояние один раз; не ждёт появления курсора.
  • Для ожидания серверного прицела после игрового действия используйте WaitForTarget. Для результата локального ClientRequest* — WaitForClientTargetResponse.

Примеры

Пример 1. Показать состояние

# Показать состояние
#
# Проверяет наличие активного курсора выбора цели в клиенте.
#
# Integer 1 — TargetManager.IsTargeting установлен; 0 — активного курсора нет. Учитывается и
# локальный callback-прицел. Это не serial и не состояние очереди 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()
    # Аргументов нет.
    # Выводится 1 или 0.

    UO.Print(STR(UO.Targeting()))
END SUB

Разбор параметров и выполнения:

  • Аргументов нет.
  • Выводится 1 или 0.

Пример 2. Отменить открытый курсор

# Отменить открытый курсор
#
# Проверяет наличие активного курсора выбора цели в клиенте.
#
# Integer 1 — TargetManager.IsTargeting установлен; 0 — активного курсора нет. Учитывается и
# локальный callback-прицел. Это не serial и не состояние очереди 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()
    # Условие проверяет активный курсор.
    # CancelTarget в этом клиенте также очищает подготовленные ответы.

    IF UO.Targeting() THEN
        UO.CancelTarget()
    END IF
END SUB

Разбор параметров и выполнения:

  • Условие проверяет активный курсор.
  • CancelTarget в этом клиенте также очищает подготовленные ответы.

Пример 3. После запроса игрового действия

# После запроса игрового действия
#
# Проверяет наличие активного курсора выбора цели в клиенте.
#
# Integer 1 — TargetManager.IsTargeting установлен; 0 — активного курсора нет. Учитывается и
# локальный callback-прицел. Это не serial и не состояние очереди 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()
    # UseSkill запрашивает навык, WaitForTarget ждёт до 3000 мс.
    # TargetToObject отвечает только на активный серверный target; при тайм-ауте ветка не
    # выполняется.

    UO.UseSkill('Anatomy')
    IF UO.WaitForTarget(3000) THEN
        IF UO.Targeting() THEN
            UO.TargetToObject('self')
        END IF
    END IF
END SUB

Разбор параметров и выполнения:

  • UseSkill запрашивает навык, WaitForTarget ждёт до 3000 мс.
  • TargetToObject отвечает только на активный серверный target; при тайм-ауте ветка не выполняется.