-
Notifications
You must be signed in to change notification settings - Fork 0
API UO GetZ
Codex edited this page Sep 19, 2026
·
4 revisions
Оглавление · Алфавитный указатель · 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 задают положение внутри гампа; команда не переводит их в мировые координаты владельца.
- Читается текущая координата объекта. Ожидающие подтверждения шаги не превращаются этой командой в расчёт маршрута.
# Прочитать свою координату
#
# Читает поле 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.
# Сравнить с выбранным персонажем
#
# Читает поле 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 — разность по одной оси. Она не является длиной маршрута; значение может быть отрицательным.
# Запомнить точку и сравнить позднее
#
# Читает поле 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. Изменение другой оси или поворот здесь не учитываются.
ClassicUO - Bad Newbie & Basic IDE Edition