Skip to content

API UO IsGump

Codex edited this page Sep 19, 2026 · 6 revisions

UO.IsGump

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

ClassicUO • Runtime API

Проверяет, есть ли хотя бы один активный серверный гамп.

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

UO.IsGump() -> Integer

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

Параметры

Параметров нет.

Возвращает

Integer — 1, если список непуст; 0, если пуст. Это признак наличия, не число окон.

Поведение

  • Работает с активными серверными гампами. Рюкзак, карта, настройки и другие локальные окна не входят в этот список. Один вызов читает данные в игровом потоке; разные вызовы могут увидеть разные состояния списка.

Примеры

Пример 1. Условное чтение

# Условное чтение
#
# Проверяет, есть ли хотя бы один активный серверный гамп.
#
# Integer1, если список непуст; 0, если пуст. Это признак наличия, не число окон.

SUB Main()
    # Аргументов нет. GetGumpInfo(0) читает первый элемент и может вернуть пустой массив, если окно
    # уже закрыли.

    IF UO.IsGump() THEN
        VAR info = UO.GetGumpInfo(0)
        UO.Print(GetArrayLength(info))
    END IF
END SUB

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

  • Аргументов нет. GetGumpInfo(0) читает первый элемент и может вернуть пустой массив, если окно уже закрыли.

Пример 2. Различить количество и наличие

# Различить количество и наличие
#
# Проверяет, есть ли хотя бы один активный серверный гамп.
#
# Integer1, если список непуст; 0, если пуст. Это признак наличия, не число окон.

SUB Main()
    # При трёх стабильных окнах present=1, count=3.

    VAR present = UO.IsGump()
    VAR count = UO.GetGumpsCount()
    UO.Print(STR(present) + '/' + STR(count))
END SUB

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

  • При трёх стабильных окнах present=1, count=3.

Пример 3. Ограниченное ожидание

# Ограниченное ожидание
#
# Проверяет, есть ли хотя бы один активный серверный гамп.
#
# Integer1, если список непуст; 0, если пуст. Это признак наличия, не число окон.

SUB Main()
    # Ожидание не дольше примерно 3000 мс, проверка каждые 50 мс. Финальный present показывает
    # состояние после ожидания.

    VAR started = Now()
    WHILE UO.IsGump() = 0 AND Now() - started < 3000
        WAIT(50)
    WEND
    VAR present = UO.IsGump()
END SUB

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

  • Ожидание не дольше примерно 3000 мс, проверка каждые 50 мс. Финальный present показывает состояние после ожидания.

Clone this wiki locally