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 пуст, если окно исчезло до чтения.