Skip to content

API UO GetZ

Codex edited this page Sep 19, 2026 · 4 revisions

UO.GetZ

Оглавление · Алфавитный указатель · World & Geometry

ClassicUO • Runtime API

Читает поле Z загруженного объекта или текущего персонажа.

Точный синтаксис

UO.GetZ() -> Integer
UO.GetZ(id:String) -> Integer
UO.GetZ(id:Integer) -> Integer
UO.GetZ(ObjID:Any) -> Any

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

  • id / ObjID — Serial/ID объекта, а не graphic/type. Число, hex-строка, стандартное имя self/backpack/lasttarget/lastobject/lastcontainer/laststatus/finditem/lastcorpse или имя AddObject. Алиас должен быть установлен; существование проверяется Exists. В зарегистрированной форме без аргументов используется self.

Возвращает

Integer — высота Z. Для неизвестного объекта возвращается 0. Ноль также является допустимой координатой. Высота может быть отрицательной; это не слой экипировки и не индекс статики.

Поведение

  • Читаются последние данные, уже известные клиенту; запрос обновления серверу не отправляется.
  • Неизвестный объект и ещё не полученное свойство могут иметь нулевое/пустое значение. Проверяйте Exists и условия конкретного действия.
  • Для персонажа или предмета на земле это координата мира. У предмета внутри контейнера X/Y задают положение внутри гампа; команда не переводит их в мировые координаты владельца.
  • Читается текущая координата объекта. Ожидающие подтверждения шаги не превращаются этой командой в расчёт маршрута.

Примеры

Пример 1. Прочитать свою координату

# Прочитать свою координату
#
# Читает поле Z загруженного объекта или текущего персонажа.
#
# Integerвысота Z. Для неизвестного объекта возвращается 0. Ноль также является допустимой
# координатой. Высота может быть отрицательной; это не слой экипировки и не индекс статики.

SUB Main()
    # Форма без аргумента выбирает self, текущего персонажа.
    # position содержит высота Z, а не serial.

    VAR position = UO.GetZ()
    UO.Print('Z: ' + STR(position))
END SUB

Разбор параметров и выполнения:

  • Форма без аргумента выбирает self, текущего персонажа.
  • position содержит высота Z, а не serial.

Пример 2. Сравнить с выбранным персонажем

# Сравнить с выбранным персонажем
#
# Читает поле Z загруженного объекта или текущего персонажа.
#
# Integerвысота Z. Для неизвестного объекта возвращается 0. Ноль также является допустимой
# координатой. Высота может быть отрицательной; это не слой экипировки и не индекс статики.

SUB Main()
    # lasttarget должен указывать на загруженного персонажа или предмет на земле.
    # deltaразность по одной оси. Она не является длиной маршрута; значение может быть
    # отрицательным.

    VAR other = UO.GetSerial('lasttarget')
    IF UO.Exists(other) THEN
        VAR delta = UO.GetZ(other) - UO.GetZ()
        UO.Print('Difference: ' + STR(delta))
    END IF
END SUB

Разбор параметров и выполнения:

  • lasttarget должен указывать на загруженного персонажа или предмет на земле.
  • delta — разность по одной оси. Она не является длиной маршрута; значение может быть отрицательным.

Пример 3. Запомнить точку и сравнить позднее

# Запомнить точку и сравнить позднее
#
# Читает поле Z загруженного объекта или текущего персонажа.
#
# Integerвысота Z. Для неизвестного объекта возвращается 0. Ноль также является допустимой
# координатой. Высота может быть отрицательной; это не слой экипировки и не индекс статики.

SUB Main()
    # id="self"явная форма выбора персонажа. WAIT=500 миллисекунд.
    # Сравнение показывает изменение только оси Z. Изменение другой оси или поворот здесь не
    # учитываются.

    VAR before = UO.GetZ('self')
    WAIT(500)
    VAR after = UO.GetZ('self')
    IF before <> after THEN
        UO.Print('Coordinate changed')
    END IF
END SUB

Разбор параметров и выполнения:

  • id="self" — явная форма выбора персонажа. WAIT=500 миллисекунд.
  • Сравнение показывает изменение только оси Z. Изменение другой оси или поворот здесь не учитываются.

Clone this wiki locally