API UO TargetToXYZ - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.TargetToXYZ
Оглавление · Алфавитный указатель · Targeting
ClassicUO • Runtime API
Немедленно отвечает на уже активный серверный прицел координатами тайла.
Точный синтаксис
UO.TargetToXYZ(X:Any, Y:Any, Z:Any) -> Unit
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
X / x— Мировая координата X на текущей карте, 0..65535. Это не пиксель экрана или координата гампа.Y / y— Мировая координата Y на текущей карте, 0..65535.Z / z— Высота игровой точки, для сетевого target используйте -128..127. Это не этаж и не слой экипировки.
Возвращает
Unit — возвращаемого значения нет. Вызывайте отдельной строкой; не используйте как true/false, serial или type. Метадата Any у совместимых форм не меняет фактический результат Unit.
Поведение
- Без активного серверного курсора ничего не делает и не создаёт отложенного ответа. Для предварительной подготовки используйте WaitTargetObject/WaitTargetTile/WaitTargetXYZ.
- Локальные ClientRequest* и другие callback-прицелы этой командой не обрабатываются.
- Цель с graphic=0 требует координатного прицела; предметный прицел не принимает землю.
Примеры
Пример 1. Ответить на открытый прицел
# Ответить на открытый прицел
#
# Немедленно отвечает на уже активный серверный прицел координатами тайла.
#
# Unit — возвращаемого значения нет. Вызывайте отдельной строкой; не используйте как true/false,
# serial или type. Метадата Any у совместимых форм не меняет фактический результат Unit.
SUB Main()
# Параметры задают пример реальной точки: замените координаты и graphic нужными значениями.
# В очередь будущих прицелов ничего не добавляется.
IF UO.TargetPresent() THEN
UO.TargetToXYZ(1445, 1690, 0)
END IF
END SUB
Разбор параметров и выполнения:
- Параметры задают пример реальной точки: замените координаты и graphic нужными значениями.
- В очередь будущих прицелов ничего не добавляется.
Пример 2. Сначала дождаться прицела
# Сначала дождаться прицела
#
# Немедленно отвечает на уже активный серверный прицел координатами тайла.
#
# Unit — возвращаемого значения нет. Вызывайте отдельной строкой; не используйте как true/false,
# serial или type. Метадата Any у совместимых форм не меняет фактический результат Unit.
SUB Main()
# 3000 — максимум ожидания в миллисекундах; запросившее прицел действие должно быть выполнено
# ранее.
# Команда вызывается только после появления прицела; игровое действие может затем завершиться
# отказом сервера.
IF UO.WaitForTarget(3000) THEN
UO.TargetToXYZ(1445, 1690, 0)
ELSE
UO.Print('Target timeout')
END IF
END SUB
Разбор параметров и выполнения:
- 3000 — максимум ожидания в миллисекундах; запросившее прицел действие должно быть выполнено ранее.
- Команда вызывается только после появления прицела; игровое действие может затем завершиться отказом сервера.
Пример 3. Проверить отсутствие отложенного ответа
# Проверить отсутствие отложенного ответа
#
# Немедленно отвечает на уже активный серверный прицел координатами тайла.
#
# Unit — возвращаемого значения нет. Вызывайте отдельной строкой; не используйте как true/false,
# serial или type. Метадата Any у совместимых форм не меняет фактический результат Unit.
SUB Main()
# CancelTarget закрывает старый прицел и очищает очередь.
# При отсутствии нового прицела вызов не создаёт ожидание. Вывод очереди остаётся 0, если другой
# скрипт её не изменил.
UO.CancelTarget()
UO.TargetToXYZ(1445, 1690, 0)
UO.Print('Queued: ' + STR(UO.IsWaitTargetActive()))
END SUB
Разбор параметров и выполнения:
- CancelTarget закрывает старый прицел и очищает очередь.
- При отсутствии нового прицела вызов не создаёт ожидание. Вывод очереди остаётся 0, если другой скрипт её не изменил.