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.