API UO IsGump - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.IsGump
Оглавление · Алфавитный указатель · Gumps
ClassicUO • Runtime API
Проверяет, есть ли хотя бы один активный серверный гамп.
Точный синтаксис
UO.IsGump() -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
Integer — 1, если список непуст; 0, если пуст. Это признак наличия, не число окон.
Поведение
- Работает с активными серверными гампами. Рюкзак, карта, настройки и другие локальные окна не входят в этот список. Один вызов читает данные в игровом потоке; разные вызовы могут увидеть разные состояния списка.
Примеры
Пример 1. Условное чтение
# Условное чтение
#
# Проверяет, есть ли хотя бы один активный серверный гамп.
#
# Integer — 1, если список непуст; 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. Различить количество и наличие
# Различить количество и наличие
#
# Проверяет, есть ли хотя бы один активный серверный гамп.
#
# Integer — 1, если список непуст; 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. Ограниченное ожидание
# Ограниченное ожидание
#
# Проверяет, есть ли хотя бы один активный серверный гамп.
#
# Integer — 1, если список непуст; 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 показывает состояние после ожидания.