API UO WaitTargetXYZ - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.WaitTargetXYZ
Оглавление · Алфавитный указатель · Targeting
ClassicUO • Runtime API
Готовит координатную цель с graphic=0 для следующего серверного прицела.
Точный синтаксис
UO.WaitTargetXYZ(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.
Поведение
- Команда только готовит ответ: сама не применяет предмет, навык или заклинание. Следующий серверный прицел получает подготовленную цель при обработке кадра клиента.
- Последовательные вызовы образуют общую очередь клиента. Объекты и координатные цели обрабатываются по одному прицелу; локальные окна выбора ClientRequest*/Info/контейнера её не потребляют.
- CancelWaitTarget очищает очередь. TerminateAll очищает её целиком; остановка ещё работающей процедуры также делает недействительными её собственные отложенные ответы. Обычное завершение короткой процедуры не отменяет подготовленную цель.
- Отправка ответа не гарантирует действие на сервере: тот проверяет дальность, доступность объекта, видимость и правила действия. Для контроля используйте игровой результат и журнал.
Примеры
Пример 1. Указать точку мира
# Указать точку мира
#
# Готовит координатную цель с graphic=0 для следующего серверного прицела.
#
# Unit — возвращаемого значения нет. Вызывайте отдельной строкой; не используйте как true/false,
# serial или type. Метадата Any у совместимых форм не меняет фактический результат Unit.
SUB Main()
# X=1445, Y=1690, Z=0. Graphic равен 0.
# Ответ будет отправлен при появлении серверного координатного прицела.
UO.WaitTargetXYZ(1445, 1690, 0)
END SUB
Разбор параметров и выполнения:
- X=1445, Y=1690, Z=0. Graphic равен 0.
- Ответ будет отправлен при появлении серверного координатного прицела.
Пример 2. Использовать точку под персонажем
# Использовать точку под персонажем
#
# Готовит координатную цель с graphic=0 для следующего серверного прицела.
#
# Unit — возвращаемого значения нет. Вызывайте отдельной строкой; не используйте как true/false,
# serial или type. Метадата Any у совместимых форм не меняет фактический результат Unit.
SUB Main()
# X/Y/Z считываются с собственного персонажа.
# Это координатная цель, а не object target на serial персонажа. Для последнего нужна
# WaitTargetSelf.
VAR x = UO.GetX()
VAR y = UO.GetY()
VAR z = UO.GetZ()
UO.WaitTargetXYZ(x, y, z)
END SUB
Разбор параметров и выполнения:
- X/Y/Z считываются с собственного персонажа.
- Это координатная цель, а не object target на serial персонажа. Для последнего нужна WaitTargetSelf.
Пример 3. Подготовить точку для инструмента
# Подготовить точку для инструмента
#
# Готовит координатную цель с graphic=0 для следующего серверного прицела.
#
# Unit — возвращаемого значения нет. Вызывайте отдельной строкой; не используйте как true/false,
# serial или type. Метадата Any у совместимых форм не меняет фактический результат Unit.
SUB Main()
# Координаты замените точкой добычи. UseType ищет лопату type=0x0F39 любого цвета в рюкзаке.
# Если подходящего инструмента нет, уберите подготовку через CancelWaitTarget, прежде чем
# переходить к другому действию.
UO.CancelWaitTarget()
UO.WaitTargetXYZ(1445, 1690, 0)
UO.UseType(0x0F39, -1)
END SUB
Разбор параметров и выполнения:
- Координаты замените точкой добычи. UseType ищет лопату type=0x0F39 любого цвета в рюкзаке.
- Если подходящего инструмента нет, уберите подготовку через CancelWaitTarget, прежде чем переходить к другому действию.