Skip to content

API UO GetGumpButtonsDescription

Codex edited this page Sep 19, 2026 · 6 revisions

UO.GetGumpButtonsDescription

Оглавление · Алфавитный указатель · Gumps

ClassicUO • Runtime API

Возвращает описания обычных кнопок серверного гампа.

Точный синтаксис

UO.GetGumpButtonsDescription(GumpIndex:Any) -> Array

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

  • GumpIndex — Обязательный Integer — индекс активного серверного гампа, от 0 до GetGumpsCount()-1. Это не GumpID/serial. Отрицательное число и индекс вне списка недействительны. Открытие, закрытие и изменение порядка окон могут изменить индекс; перед действием проверяйте GetGumpID/GetGumpSerial.

Возвращает

Array — описания обычных кнопок. [] — недействительный индекс или отсутствие подходящих элементов. Индекс строки начинается с 0; он не является ID контроля.

Поведение

  • Работает с активными серверными гампами. Рюкзак, карта, настройки и другие локальные окна не входят в этот список. Один вызов читает данные в игровом потоке; разные вызовы могут увидеть разные состояния списка.
  • Каждая строка содержит ButtonID, action, toPage и графику. Радиокнопки не являются обычными кнопками ответа.
  • При SilentMode=0 непустой результат также добавляется в текстовое окно и открывает его. SetSilentMode(1) оставляет только возврат массива.

Примеры

Пример 1. Прочитать первую строку

# Прочитать первую строку
#
# Возвращает описания обычных кнопок серверного гампа.
#
# Array<String>описания обычных кнопок. [] — недействительный индекс или отсутствие
# подходящих элементов. Индекс строки начинается с 0; он не является ID контроля.

SUB Main()
    # 0индекс окна. GetArrayLength проверяет наличие строки до обращения к lines[0].

    VAR lines = UO.GetGumpButtonsDescription(0)
    IF GetArrayLength(lines) > 0 THEN
        UO.Print(lines[0])
    END IF
END SUB

Разбор параметров и выполнения:

  • 0 — индекс окна. GetArrayLength проверяет наличие строки до обращения к lines[0].

Пример 2. Обойти все строки без автоматического окна

# Обойти все строки без автоматического окна
#
# Возвращает описания обычных кнопок серверного гампа.
#
# Array<String>описания обычных кнопок. [] — недействительный индекс или отсутствие
# подходящих элементов. Индекс строки начинается с 0; он не является ID контроля.

SUB Main()
    # SetSilentMode(1) отключает дополнительное текстовое окно. Явный Print в примере всё равно
    # выводит строки.
    # iиндекс массива; ID нужной кнопки/переключателя берите из соответствующего описания.

    UO.SetSilentMode(1)
    VAR lines = UO.GetGumpButtonsDescription(0)
    VAR i = 0
    WHILE i < GetArrayLength(lines)
        UO.Print(lines[i])
        i = i + 1
    WEND
END SUB

Разбор параметров и выполнения:

  • SetSilentMode(1) отключает дополнительное текстовое окно. Явный Print в примере всё равно выводит строки.
  • i — индекс массива; ID нужной кнопки/переключателя берите из соответствующего описания.

Пример 3. Прочитать те же данные одним снимком

# Прочитать те же данные одним снимком
#
# Возвращает описания обычных кнопок серверного гампа.
#
# Array<String>описания обычных кнопок. [] — недействительный индекс или отсутствие
# подходящих элементов. Индекс строки начинается с 0; он не является ID контроля.

SUB Main()
    # GetGumpInfo возвращает согласованные ID и три массива. Поле [4] содержит полные описания; [2]
    #тексты, [3] — кнопки.

    VAR info = UO.GetGumpInfo(0)
    IF GetArrayLength(info) = 5 THEN
        VAR texts = info[2]
        VAR buttons = info[3]
        VAR controls = info[4]
        UO.Print(STR(GetArrayLength(controls)))
    END IF
END SUB

Разбор параметров и выполнения:

  • GetGumpInfo возвращает согласованные ID и три массива. Поле [4] содержит полные описания; [2] — тексты, [3] — кнопки.

Clone this wiki locally