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

UO.WaitTargetTile

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

ClassicUO • Runtime API

Готовит координатную цель с необязательной графикой тайла.

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

UO.WaitTargetTile(selector:Any) -> Unit
UO.WaitTargetTile(x:Any, y:Any, z:Any) -> Unit
UO.WaitTargetTile(type:Any, x:Any, y:Any, z:Any) -> Unit

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

Параметры

  • selector — Только в форме с одним аргументом: строка "lasttile", повторяющая сохранённую точку.
  • type — Graphic/type тайла, 0..65535, не serial. Ноль обозначает координатную цель без указанной графики. Присутствует в форме с четырьмя аргументами; в форме x/y/z равен 0.
  • 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

# Координаты без graphic
#
# Готовит координатную цель с необязательной графикой тайла.
#
# Unit — возвращаемого значения нет. Вызывайте отдельной строкой; не используйте как true/false,
# serial или type. Метадата Any у совместимых форм не меняет фактический результат Unit.

SUB Main()
    # x=1445, y=1690, z=0; отсутствующий type равен 0.
    # Это точка мира. Команда не перемещает персонажа и не кладёт предмет в гамп.

    UO.CancelWaitTarget()
    UO.WaitTargetTile(1445, 1690, 0)
END SUB

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

  • x=1445, y=1690, z=0; отсутствующий type равен 0.
  • Это точка мира. Команда не перемещает персонажа и не кладёт предмет в гамп.

Пример 2. Явно указать graphic тайла

# Явно указать graphic тайла
#
# Готовит координатную цель с необязательной графикой тайла.
#
# Unit — возвращаемого значения нет. Вызывайте отдельной строкой; не используйте как true/false,
# serial или type. Метадата Any у совместимых форм не меняет фактический результат Unit.

SUB Main()
    # type=0x0CCA — пример графики; используйте реальный type выбранного тайла. x/y/z — его мировая
    # позиция.
    # Graphic и координаты должны описывать нужный объект карты; сервер проверяет допустимость цели.

    UO.CancelWaitTarget()
    UO.WaitTargetTile(0x0CCA, 1445, 1690, 0)
END SUB

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

  • type=0x0CCA — пример графики; используйте реальный type выбранного тайла. x/y/z — его мировая позиция.
  • Graphic и координаты должны описывать нужный объект карты; сервер проверяет допустимость цели.

Пример 3. Повторить сохранённую точку последнего target

# Повторить сохранённую точку последнего target
#
# Готовит координатную цель с необязательной графикой тайла.
#
# Unit — возвращаемого значения нет. Вызывайте отдельной строкой; не используйте как true/false,
# serial или type. Метадата Any у совместимых форм не меняет фактический результат Unit.

SUB Main()
    # selector допускает только строку lasttile без учёта регистра. Другая строка или число в
    # одноаргументной форме вызывают ошибку.
    # Используются последние поля тайла в TargetManager. До первого выбора они могут быть нулевыми:
    # сначала выберите нужную точку в игре. Три или четыре аргумента позволяют задать её явно.

    UO.WaitTargetTile('lasttile')
END SUB

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

  • selector допускает только строку lasttile без учёта регистра. Другая строка или число в одноаргументной форме вызывают ошибку.
  • Используются последние поля тайла в TargetManager. До первого выбора они могут быть нулевыми: сначала выберите нужную точку в игре. Три или четыре аргумента позволяют задать её явно.