API UO IsGumpCanBeClosed - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.IsGumpCanBeClosed
Оглавление · Алфавитный указатель · Gumps
ClassicUO • Runtime API
Проверяет, разрешено ли локальное закрытие серверного гампа правой кнопкой.
Точный синтаксис
UO.IsGumpCanBeClosed(GumpIndex:Any) -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
GumpIndex— Обязательный Integer — индекс активного серверного гампа, от 0 до GetGumpsCount()-1. Это не GumpID/serial. Отрицательное число и индекс вне списка недействительны. Открытие, закрытие и изменение порядка окон могут изменить индекс; перед действием проверяйте GetGumpID/GetGumpSerial.
Возвращает
Integer — 1, если окно существует и CanCloseWithRightClick включён; иначе 0. Это не результат закрытия и не наличие кнопки Cancel.
Поведение
- Работает с активными серверными гампами. Рюкзак, карта, настройки и другие локальные окна не входят в этот список. Один вызов читает данные в игровом потоке; разные вызовы могут увидеть разные состояния списка.
- NoClose запрещает CloseSimpleGump; возможность отправить серверу ButtonID — отдельное действие.
Примеры
Пример 1. Условное закрытие
# Условное закрытие
#
# Проверяет, разрешено ли локальное закрытие серверного гампа правой кнопкой.
#
# Integer — 1, если окно существует и CanCloseWithRightClick включён; иначе 0. Это не результат
# закрытия и не наличие кнопки Cancel.
SUB Main()
# 0 — индекс окна. Проверка и закрытие — разные вызовы; индекс может измениться между ними.
IF UO.IsGumpCanBeClosed(0) THEN
UO.CloseSimpleGump(0)
END IF
END SUB
Разбор параметров и выполнения:
- 0 — индекс окна. Проверка и закрытие — разные вызовы; индекс может измениться между ними.
Пример 2. Показать запрет закрытия
# Показать запрет закрытия
#
# Проверяет, разрешено ли локальное закрытие серверного гампа правой кнопкой.
#
# Integer — 1, если окно существует и CanCloseWithRightClick включён; иначе 0. Это не результат
# закрытия и не наличие кнопки Cancel.
SUB Main()
# closable=0 у существующего окна означает запрет закрытия, а не отсутствие окна.
IF UO.GetGumpsCount() > 0 THEN
VAR closable = UO.IsGumpCanBeClosed(0)
UO.Print(STR(closable))
END IF
END SUB
Разбор параметров и выполнения:
- closable=0 у существующего окна означает запрет закрытия, а не отсутствие окна.
Пример 3. Недействительный индекс
# Недействительный индекс
#
# Проверяет, разрешено ли локальное закрытие серверного гампа правой кнопкой.
#
# Integer — 1, если окно существует и CanCloseWithRightClick включён; иначе 0. Это не результат
# закрытия и не наличие кнопки Cancel.
SUB Main()
# -1 недействителен для этой индексной команды и даёт 0; это не выбор последнего окна.
VAR result = UO.IsGumpCanBeClosed(-1)
UO.Print(STR(result))
END SUB
Разбор параметров и выполнения:
- -1 недействителен для этой индексной команды и даёт 0; это не выбор последнего окна.