API UO Info - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.Info
Оглавление · Алфавитный указатель · Diagnostics & Introspection
ClassicUO • Runtime API
Показывает сведения о загруженном предмете или персонаже: serial, graphic/type, цвет, координаты и свойства объекта.
Точный синтаксис
UO.Info() -> Unit
UO.Info(object:Any) -> Unit
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
object— Serial конкретного предмета/персонажа: число, hex/десятичная строка, self/backpack/lasttarget/lastobject/lastcontainer/lastcorpse/finditem/laststatus либо сохранённое имя AddObject. Это не type. Объект должен быть загружен; перед действием проверяйте Exists. В форме без аргумента обычная процедура использует lasttarget; интерактивная команда предлагает выбрать объект мышью.
Возвращает
Unit — возвращаемого значения нет. Результат нельзя присвоить как serial, graphic/type, количество или true/false. Информация выводится в интерфейс/журнал, а не возвращается скрипту.
Поведение
- В командной строке/командном макросе info без аргумента открывает прицел, затем окно Basic Object Information и сообщение. info serial сразу открывает окно и выводит сведения без прицела.
- В обычном SUB/FUNCTION, в том числе из AutoLoad, Info выводит текст в журнал и не создаёт окно или ручной прицел. Для программного чтения отдельных значений используйте GetSerial/GetGraphic/GetX/GetQuantity и другие getters.
- Тип объекта определяет дополнительные поля: у предмета есть Container, Layer, Amount; у персонажа — HP/Mana/Stamina, notoriety и другие состояния. Недоступный объект даёт сообщение, а не сведения о другом объекте.
- Info относится к объектам; InfoGump/InfoGumps — к серверным окнам, InfoTile — к земле/статике.
Примеры
Пример 1. Сведения о себе из скрипта
# Сведения о себе из скрипта
#
# Показывает сведения о загруженном предмете или персонаже: serial, graphic/type, цвет,
# координаты и свойства объекта.
#
# Unit — возвращаемого значения нет. Результат нельзя присвоить как serial, graphic/type,
# количество или true/false. Информация выводится в интерфейс/журнал, а не возвращается скрипту.
SUB Main()
# object=self — собственный персонаж.
# Текст выводится в журнал. У Info нет возвращаемой строки.
UO.Info('self')
END SUB
Разбор параметров и выполнения:
- object=self — собственный персонаж.
- Текст выводится в журнал. У Info нет возвращаемой строки.
Пример 2. Проверить именованный объект
# Проверить именованный объект
#
# Показывает сведения о загруженном предмете или персонаже: serial, graphic/type, цвет,
# координаты и свойства объекта.
#
# Unit — возвращаемого значения нет. Результат нельзя присвоить как serial, graphic/type,
# количество или true/false. Информация выводится в интерфейс/журнал, а не возвращается скрипту.
SUB Main()
# chest должен быть задан через AddObject; это serial сундука.
# Exists предотвращает запрос сведений об отсутствующем объекте.
IF UO.Exists('chest') THEN
UO.Info('chest')
ELSE
UO.Print('Chest is not loaded')
END IF
END SUB
Разбор параметров и выполнения:
- chest должен быть задан через AddObject; это serial сундука.
- Exists предотвращает запрос сведений об отсутствующем объекте.
Пример 3. Последняя цель и отдельное чтение type
# Последняя цель и отдельное чтение type
#
# Показывает сведения о загруженном предмете или персонаже: serial, graphic/type, цвет,
# координаты и свойства объекта.
#
# Unit — возвращаемого значения нет. Результат нельзя присвоить как serial, graphic/type,
# количество или true/false. Информация выводится в интерфейс/журнал, а не возвращается скрипту.
SUB Main()
# Info() в этой процедуре выбирает lasttarget.
# GetGraphic отдельно возвращает числовой graphic/type. Сам Info ничего не возвращает.
IF UO.Exists('lasttarget') THEN
UO.Info()
VAR graphic = UO.GetGraphic('lasttarget')
UO.Print(UO.Int2Hex(graphic))
END IF
END SUB
Разбор параметров и выполнения:
- Info() в этой процедуре выбирает lasttarget.
- GetGraphic отдельно возвращает числовой graphic/type. Сам Info ничего не возвращает.