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. До первого выбора они могут быть нулевыми: сначала выберите нужную точку в игре. Три или четыре аргумента позволяют задать её явно.