API UO CloseSimpleGump - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.CloseSimpleGump
Оглавление · Алфавитный указатель · Client UI
ClassicUO • Runtime API
Локально закрывает разрешённый к закрытию серверный гамп по строгому индексу.
Точный синтаксис
UO.CloseSimpleGump(GumpIndex:Any) -> Unit
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
GumpIndex— Обязательный Integer — индекс активного серверного гампа, от 0 до GetGumpsCount()-1. Это не GumpID/serial. Отрицательное число и индекс вне списка недействительны. Открытие, закрытие и изменение порядка окон могут изменить индекс; перед действием проверяйте GetGumpID/GetGumpSerial.
Возвращает
Unit — ничего не возвращает. Нельзя интерпретировать результат как подтверждение сервера или Boolean.
Поведение
- Работает с активными серверными гампами. Рюкзак, карта, настройки и другие локальные окна не входят в этот список. Один вызов читает данные в игровом потоке; разные вызовы могут увидеть разные состояния списка.
- Недействительный индекс и NoClose ничего не меняют. Команда не отправляет ответ кнопки серверу. Для такого ответа используйте SendGumpSelect.
- Закрытие изменяет список и индексы. Для массового закрытия обходите список от последнего индекса к первому.
Примеры
Пример 1. Закрыть первое окно
# Закрыть первое окно
#
# Локально закрывает разрешённый к закрытию серверный гамп по строгому индексу.
#
# Unit — ничего не возвращает. Нельзя интерпретировать результат как подтверждение сервера или
# Boolean.
SUB Main()
# 0 — индекс, а не ID. Если окно запрещает закрытие, оно остаётся открытым.
UO.CloseSimpleGump(0)
END SUB
Разбор параметров и выполнения:
- 0 — индекс, а не ID. Если окно запрещает закрытие, оно остаётся открытым.
Пример 2. Закрыть все разрешённые окна
# Закрыть все разрешённые окна
#
# Локально закрывает разрешённый к закрытию серверный гамп по строгому индексу.
#
# Unit — ничего не возвращает. Нельзя интерпретировать результат как подтверждение сервера или
# Boolean.
SUB Main()
# Обратный обход уменьшает влияние сдвига индексов после закрытия. При параллельном открытии
# новых окон повторно проверьте список.
VAR i = UO.GetGumpsCount() - 1
WHILE i >= 0
UO.CloseSimpleGump(i)
i = i - 1
WEND
END SUB
Разбор параметров и выполнения:
- Обратный обход уменьшает влияние сдвига индексов после закрытия. При параллельном открытии новых окон повторно проверьте список.
Пример 3. Сохранить информацию перед закрытием
# Сохранить информацию перед закрытием
#
# Локально закрывает разрешённый к закрытию серверный гамп по строгому индексу.
#
# Unit — ничего не возвращает. Нельзя интерпретировать результат как подтверждение сервера или
# Boolean.
SUB Main()
# info[1] — сохранённый GumpID. Действие ничего не возвращает, поэтому результат не
# присваивается переменной.
VAR info = UO.GetGumpInfo(0)
IF GetArrayLength(info) = 5 THEN
UO.CloseSimpleGump(0)
UO.Print(Hex(info[1]))
END IF
END SUB
Разбор параметров и выполнения:
- info[1] — сохранённый GumpID. Действие ничего не возвращает, поэтому результат не присваивается переменной.