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, прежде чем переходить к другому действию.