API UO GetGumpSerial - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.GetGumpSerial
Оглавление · Алфавитный указатель · Gumps
ClassicUO • Runtime API
Читает serial экземпляра/владельца окна по индексу серверного гампа.
Точный синтаксис
UO.GetGumpSerial(GumpIndex:Any) -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
GumpIndex— Обязательный Integer — индекс активного серверного гампа, от 0 до GetGumpsCount()-1. Это не GumpID/serial. Отрицательное число и индекс вне списка недействительны. Открытие, закрытие и изменение порядка окон могут изменить индекс; перед действием проверяйте GetGumpID/GetGumpSerial.
Возвращает
Integer — 32-битный serial экземпляра/владельца окна. 0 — недействительный индекс (serial=0 также может присутствовать в самом окне). При установленном старшем бите Integer отрицателен: используйте Hex(value) для отображения. Это не type предмета и не индекс.
Поведение
- Работает с активными серверными гампами. Рюкзак, карта, настройки и другие локальные окна не входят в этот список. Один вызов читает данные в игровом потоке; разные вызовы могут увидеть разные состояния списка.
- Для согласованной пары serial/GumpID используйте один GetGumpInfo: поля info[0] и info[1].
Примеры
Пример 1. Показать ID в hex
# Показать ID в hex
#
# Читает serial экземпляра/владельца окна по индексу серверного гампа.
#
# Integer — 32-битный serial экземпляра/владельца окна. 0 — недействительный индекс (serial=0
# также может присутствовать в самом окне). При установленном старшем бите Integer отрицателен:
# используйте Hex(value) для отображения. Это не type предмета и не индекс.
SUB Main()
# 0 — первый индекс серверного списка. Hex сохраняет битовое представление отрицательного
# Integer.
VAR value = UO.GetGumpSerial(0)
UO.Print(Hex(value))
END SUB
Разбор параметров и выполнения:
- 0 — первый индекс серверного списка. Hex сохраняет битовое представление отрицательного Integer.
Пример 2. Прочитать поле из снимка
# Прочитать поле из снимка
#
# Читает serial экземпляра/владельца окна по индексу серверного гампа.
#
# Integer — 32-битный serial экземпляра/владельца окна. 0 — недействительный индекс (serial=0
# также может присутствовать в самом окне). При установленном старшем бите Integer отрицателен:
# используйте Hex(value) для отображения. Это не type предмета и не индекс.
SUB Main()
# Поле [0] содержит serial экземпляра/владельца окна; снимок одновременно содержит оба ID и
# элементы окна.
VAR info = UO.GetGumpInfo(0)
IF GetArrayLength(info) = 5 THEN
VAR value = info[0]
UO.Print(Hex(value))
END IF
END SUB
Разбор параметров и выполнения:
- Поле [0] содержит serial экземпляра/владельца окна; снимок одновременно содержит оба ID и элементы окна.
Пример 3. Проверить границу списка
# Проверить границу списка
#
# Читает serial экземпляра/владельца окна по индексу серверного гампа.
#
# Integer — 32-битный serial экземпляра/владельца окна. 0 — недействительный индекс (serial=0
# также может присутствовать в самом окне). При установленном старшем бите Integer отрицателен:
# используйте Hex(value) для отображения. Это не type предмета и не индекс.
SUB Main()
# При неизменном списке count находится за последним индексом, поэтому missing=0. Последний
# допустимый индекс — count-1.
VAR count = UO.GetGumpsCount()
VAR missing = UO.GetGumpSerial(count)
UO.Print(Hex(missing))
END SUB
Разбор параметров и выполнения:
- При неизменном списке count находится за последним индексом, поэтому missing=0. Последний допустимый индекс — count-1.