API UO TargetPresent - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.TargetPresent
Оглавление · Алфавитный указатель · Targeting
ClassicUO • Runtime API
Проверяет наличие активного курсора выбора цели в клиенте.
Точный синтаксис
UO.TargetPresent() -> Any
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. 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.TargetPresent()))
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.TargetPresent() 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.TargetPresent() THEN
UO.TargetToObject('self')
END IF
END IF
END SUB
Разбор параметров и выполнения:
- UseSkill запрашивает навык, WaitForTarget ждёт до 3000 мс.
- TargetToObject отвечает только на активный серверный target; при тайм-ауте ветка не выполняется.