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 будет выбрано первое совпадение.