API UO InfoGumps - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.InfoGumps
Оглавление · Алфавитный указатель · Diagnostics & Introspection
ClassicUO • Runtime API
Без аргумента открывает список активных серверных гампов; с аргументом — подробный инспектор выбранного гампа.
Точный синтаксис
UO.InfoGumps() -> Unit
UO.InfoGumps(gump:Any) -> Unit
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
gump— Необязательный селектор окна. Integer или числовая строка: сначала ищется точное совпадение GumpID/serial, затем индекс с 0. -1 — выбранный этим скриптом гамп, а если его нет — последний в текущем списке. Другие отрицательные Integer сохраняют 32-битный ID. Это селектор, в отличие от строгого GumpIndex в NumGump*.
Возвращает
Unit — ничего не возвращает. Нельзя интерпретировать результат как подтверждение сервера или Boolean.
Поведение
- Работает с активными серверными гампами. Рюкзак, карта, настройки и другие локальные окна не входят в этот список. Один вызов читает данные в игровом потоке; разные вызовы могут увидеть разные состояния списка.
- Инспектор показывает serial/GumpID, положение, размеры, страницы, кнопки и их ButtonID, переключатели, поля ввода и дерево контролов. Текст можно выделять и копировать.
- InfoGump без аргументов использует выбранное/последнее окно. InfoGumps без аргументов показывает таблицу индексов и ID всех окон. Аргумент у обеих команд открывает подробный инспектор одного окна.
- Открытие подробного инспектора делает исследуемый гамп выбранным для SendGumpSelect(buttonId). При отсутствии окна выводится сообщение; это не возвращает Boolean.
Примеры
Пример 1. Открыть инспектор
# Открыть инспектор
#
# Без аргумента открывает список активных серверных гампов; с аргументом — подробный инспектор
# выбранного гампа.
#
# Unit — ничего не возвращает. Нельзя интерпретировать результат как подтверждение сервера или
# Boolean.
SUB Main()
# Аргументов нет: InfoGump показывает выбранное/последнее окно, InfoGumps — список окон.
UO.InfoGumps()
END SUB
Разбор параметров и выполнения:
- Аргументов нет: InfoGump показывает выбранное/последнее окно, InfoGumps — список окон.
Пример 2. Исследовать конкретный ID
# Исследовать конкретный ID
#
# Без аргумента открывает список активных серверных гампов; с аргументом — подробный инспектор
# выбранного гампа.
#
# Unit — ничего не возвращает. Нельзя интерпретировать результат как подтверждение сервера или
# Boolean.
SUB Main()
# 0x87654321 — пример ID со старшим битом. Он сравнивается точно, а не заменяется последним
# окном.
UO.InfoGumps(0x87654321)
END SUB
Разбор параметров и выполнения:
- 0x87654321 — пример ID со старшим битом. Он сравнивается точно, а не заменяется последним окном.
Пример 3. Посмотреть список, затем конкретное окно
# Посмотреть список, затем конкретное окно
#
# Без аргумента открывает список активных серверных гампов; с аргументом — подробный инспектор
# выбранного гампа.
#
# Unit — ничего не возвращает. Нельзя интерпретировать результат как подтверждение сервера или
# Boolean.
SUB Main()
# Первый вызов показывает список. Затем читается GumpID первого окна и открывается подробный
# инспектор; при одинаковых ID будет выбрано первое совпадение.
UO.InfoGumps()
IF UO.GetGumpsCount() > 0 THEN
VAR id = UO.GetGumpID(0)
UO.InfoGump(id)
END IF
END SUB
Разбор параметров и выполнения:
- Первый вызов показывает список. Затем читается GumpID первого окна и открывается подробный инспектор; при одинаковых ID будет выбрано первое совпадение.