API UO GetGumpFullLines - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
Оглавление · Алфавитный указатель · Gumps
ClassicUO • Runtime API
Возвращает описания всех живых элементов, в том числе вложенных серверного гампа.
UO.GetGumpFullLines(GumpIndex:Any) -> Array
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
GumpIndex— Обязательный Integer — индекс активного серверного гампа, от 0 до GetGumpsCount()-1. Это не GumpID/serial. Отрицательное число и индекс вне списка недействительны. Открытие, закрытие и изменение порядка окон могут изменить индекс; перед действием проверяйте GetGumpID/GetGumpSerial.
Array — описания всех живых элементов, в том числе вложенных. [] — недействительный индекс или отсутствие подходящих элементов. Индекс строки начинается с 0; он не является ID контроля.
- Работает с активными серверными гампами. Рюкзак, карта, настройки и другие локальные окна не входят в этот список. Один вызов читает данные в игровом потоке; разные вызовы могут увидеть разные состояния списка.
- Описания текущего дерева контролов: тип, page, ID, X/Y, размеры и поддерживаемые поля. Это не сырой пакет серверной разметки.
- При SilentMode=0 непустой результат также добавляется в текстовое окно и открывает его. SetSilentMode(1) оставляет только возврат массива.
# Прочитать первую строку
#
# Возвращает описания всех живых элементов, в том числе вложенных серверного гампа.
#
# Array<String> — описания всех живых элементов, в том числе вложенных. [] — недействительный
# индекс или отсутствие подходящих элементов. Индекс строки начинается с 0; он не является ID
# контроля.
SUB Main()
# 0 — индекс окна. GetArrayLength проверяет наличие строки до обращения к lines[0].
VAR lines = UO.GetGumpFullLines(0)
IF GetArrayLength(lines) > 0 THEN
UO.Print(lines[0])
END IF
END SUBРазбор параметров и выполнения:
- 0 — индекс окна. GetArrayLength проверяет наличие строки до обращения к lines[0].
# Обойти все строки без автоматического окна
#
# Возвращает описания всех живых элементов, в том числе вложенных серверного гампа.
#
# Array<String> — описания всех живых элементов, в том числе вложенных. [] — недействительный
# индекс или отсутствие подходящих элементов. Индекс строки начинается с 0; он не является ID
# контроля.
SUB Main()
# SetSilentMode(1) отключает дополнительное текстовое окно. Явный Print в примере всё равно
# выводит строки.
# i — индекс массива; ID нужной кнопки/переключателя берите из соответствующего описания.
UO.SetSilentMode(1)
VAR lines = UO.GetGumpFullLines(0)
VAR i = 0
WHILE i < GetArrayLength(lines)
UO.Print(lines[i])
i = i + 1
WEND
END SUBРазбор параметров и выполнения:
- SetSilentMode(1) отключает дополнительное текстовое окно. Явный Print в примере всё равно выводит строки.
- i — индекс массива; ID нужной кнопки/переключателя берите из соответствующего описания.
# Прочитать те же данные одним снимком
#
# Возвращает описания всех живых элементов, в том числе вложенных серверного гампа.
#
# 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] — кнопки.