API UO GetGumpsCount - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.GetGumpsCount
Оглавление · Алфавитный указатель · Gumps
ClassicUO • Runtime API
Возвращает число активных серверных гампов.
Точный синтаксис
UO.GetGumpsCount() -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
Integer >= 0 — количество окон, не индекс последнего окна. 0 — список пуст.
Поведение
- Работает с активными серверными гампами. Рюкзак, карта, настройки и другие локальные окна не входят в этот список. Один вызов читает данные в игровом потоке; разные вызовы могут увидеть разные состояния списка.
Примеры
Пример 1. Проверить наличие окон
# Проверить наличие окон
#
# Возвращает число активных серверных гампов.
#
# Integer >= 0 — количество окон, не индекс последнего окна. 0 — список пуст.
SUB Main()
# Аргументов нет. count=0 означает отсутствие серверных окон в текущем списке.
VAR count = UO.GetGumpsCount()
IF count = 0 THEN
UO.Print('No server gumps')
END IF
END SUB
Разбор параметров и выполнения:
- Аргументов нет. count=0 означает отсутствие серверных окон в текущем списке.
Пример 2. Перечислить ID
# Перечислить ID
#
# Возвращает число активных серверных гампов.
#
# Integer >= 0 — количество окон, не индекс последнего окна. 0 — список пуст.
SUB Main()
# i — индекс с 0. Полученные ID идентифицируют типы окон, а не позиции в списке.
# Если окна меняются во время обхода, список нужно перечитать; count не блокирует интерфейс.
VAR count = UO.GetGumpsCount()
VAR i = 0
WHILE i < count
UO.Print(Hex(UO.GetGumpID(i)))
i = i + 1
WEND
END SUB
Разбор параметров и выполнения:
- i — индекс с 0. Полученные ID идентифицируют типы окон, а не позиции в списке.
- Если окна меняются во время обхода, список нужно перечитать; count не блокирует интерфейс.
Пример 3. Прочитать крайний элемент списка
# Прочитать крайний элемент списка
#
# Возвращает число активных серверных гампов.
#
# Integer >= 0 — количество окон, не индекс последнего окна. 0 — список пуст.
SUB Main()
# count-1 — последний индекс текущего списка, не гарантия самого нового окна. info пуст, если
# окно исчезло до чтения.
VAR count = UO.GetGumpsCount()
IF count > 0 THEN
VAR info = UO.GetGumpInfo(count - 1)
UO.Print(GetArrayLength(info))
END IF
END SUB
Разбор параметров и выполнения:
- count-1 — последний индекс текущего списка, не гарантия самого нового окна. info пуст, если окно исчезло до чтения.