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; это не выбор последнего окна.