Runtime API 30 Targeting - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
Runtime API — Прицел и цели
Символов: 26
Новые тематические разделы · Алфавитный указатель · Правила и сценарии
Для каждой команды доступна отдельная карточка: актуальные перегрузки, параметры, ограничения и несколько примеров.
UO.CancelTarget
Отменяет текущий курсор таргета, если он активен.
UO.CancelWaitTarget
Отменяет текущую ловушку на таргет (установленную через WaitTargetObject , WaitTargetXYZ , WaitTargetTile и т.
UO.ClientRequestObjectTarget
Открывает локальный прицел выбора предмета/персонажа пользователем. Сбрасывает предыдущий ответ. Это не ожидание серверного прицела и не автоматическая цель. Результат читайте через ClientTargetResponse после ClientTargetResponsePresent/WaitForClientTargetResponse. Выбор земли не принимается как объект; устаревший callback предыдущего запроса игнорируется.
UO.ClientRequestTileTarget
Открывает локальный прицел пользователя, который допускает выбор тайла и объекта. Ответ берётся через ClientTargetResponse; новый запрос сбрасывает старый ответ.
UO.ClientTargetResponse
Возвращает копию массива [serial, graphic, x, y, z]. У земли/статики serial равен 0. До ответа, при отмене или неподходящем выборе массив пустой. Сначала проверяйте его длину; факт завершения выбора не гарантирует пяти элементов.
UO.ClientTargetResponsePresent
Возвращает 1, если callback последнего пользовательского выбора уже завершился, иначе 0. Завершение может означать отмену; отдельно проверяйте длину ClientTargetResponse().
UO.IsWaitTargetActive
Возвращает True , если ловушка таргета сейчас взведена, то есть предыдущий вызов WaitTargetObject , WaitTargetSelf , WaitTargetLast , WaitTargetTile , WaitTargetXYZ , WaitTargetType или WaitTargetGround поставил в очередь ответ на таргет, который ещё не сработал.
UO.Target
Разные перегрузки выполняют разные операции. Target() отменяет текущий/подготовленный target. Target(object) ставит объект в очередь, как WaitTargetObject. Target(targetKey,target) отправляет протокольный ответ с явным идентификатором прицела; target может быть serial, именованным объектом или строкой 'lasttile'. Семь аргументов задают targetKey, объект, targetType, graphic/type, x,y,z; targetType=0 — объект, 1 — клетка. Для обычного скрипта предпочтительны WaitTargetObject/WaitTargetTile: targetKey для низкоуровневой формы должен соответствовать серверному запросу.
UO.TargetByResource
Отправляет серверу пакет «target by resource», нацеливаясь на указанный объект с типом ресурса.
UO.TargetID
Возвращает ID текущего курсора цели.
UO.Targeting
Возвращает 1, если сейчас активен серверный/клиентский механизм прицела TargetManager, иначе 0. Проверка не выбирает цель и не ставит ответ в очередь.
UO.TargetPresent
Возвращает 1, если сейчас активен серверный/клиентский механизм прицела TargetManager, иначе 0. Проверка не выбирает цель и не ставит ответ в очередь.
UO.TargetToObject
В этой сборке вызывает WaitTargetObject и ставит serial в очередь ответа. Поэтому команда может подготовить ответ и до появления серверного прицела. Возвращаемого значения нет; отправка ответа не гарантирует успех серверного действия.
UO.TargetToTile
Ставит ответ type,x,y,z в очередь серверного target через WaitTargetTile. Название TargetToTile не означает обязательного немедленного ответа: если прицела ещё нет, ответ остаётся подготовленным.
UO.TargetToXYZ
Ставит координаты x,y,z в очередь ответа на серверный прицел с graphic/type=0. Используются координаты игровой карты, не пиксели экрана.
UO.TicksTarget
Возвращает сохранённое значение UO.Timer на момент подготовки target в соответствующих командах. Единица — десятая доля секунды; не является ID прицела.
UO.WaitForClientTargetResponse
Ожидает завершения последнего локального выбора пользователем: 1 — callback получен, 0 — тайм-аут. Параметр в миллисекундах, шаг опроса не более 25 мс. Отмена тоже завершает запрос, поэтому проверяйте массив ClientTargetResponse().
UO.WaitForTarget
Ждёт появления серверного прицела не более указанного количества миллисекунд. Возвращает 1 при наличии прицела и 0 при истечении времени. Нулевой или отрицательный timeout означает проверку без длительного ожидания. Период опроса в этой сборке — не более 25 мс; утверждение старого справочника про 100 мс здесь не применяется. Не выбирает объект и не устанавливает автоматическую цель. Проверяется общий TargetManager: активный локальный курсор выбора тоже может влиять на результат. Не используйте ClientRequestObjectTarget как способ дождаться серверного запроса.
UO.WaitTarget
Компактный выбор автоматической цели. Конкретный serial/именованный объект ставится в очередь напрямую. Значения 0 и -1 включают поиск по загруженным персонажам/предметам с фильтрами type, color, distance, notoriety, nearest и maxZ; учитывается Ignore. При отсутствии совпадения подготовленная цель очищается. Команда не начинает каст или применение предмета.
UO.WaitTargetGround
Ищет загруженный предмет на земле по графике и необязательному цвету, затем ставит его serial в очередь target. Это поиск предмета, не статического тайла карты. При отсутствии результата отменяет следующий автоматический ответ.
UO.WaitTargetLast
Ставит lasttarget в очередь ответа на серверный прицел. Убедитесь, что последняя цель ещё действительна.
UO.WaitTargetObject
Ставит serial в очередь ответа на серверный прицел. Если прицел уже доступен, менеджер может ответить сразу; иначе цель ожидает следующего прицела. Два аргумента задают последовательность из двух объектов. Само действие (каст, применение инструмента или навыка) эта команда не запускает. Строковая форма разрешает именованные объекты, например self и lasttarget.
UO.WaitTargetObjectType
Готовит последовательность из двух целей: явно заданный объект id и найденный на земле предмет графики type/цвета color. Если один из объектов не найден, следующая автоматическая цель отменяется.
UO.WaitTargetSelf
Ставит текущего персонажа в очередь ответа на серверный прицел. Эквивалент WaitTargetObject("self").
UO.WaitTargetTile
Ставит координаты тайла в очередь ответа на серверный прицел. Форма с одним аргументом принимает только строку 'lasttile'. Если последнего тайла нет, следующий автоматический ответ отменяется. Форма x,y,z использует graphic/type=0; форма type,x,y,z позволяет указать графику. Используйте действительные координаты карты и высоту; это не команда выбора местности мышью.
UO.WaitTargetType
Ищет предмет заданной графики в рюкзаке, включая загруженное содержимое вложенных контейнеров, и ставит найденный serial в очередь target. Опущенный color равен -1 (любой цвет). При отсутствии предмета сообщает об этом и отменяет следующий автоматический ответ.