API UO GetY - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.GetY
Оглавление · Алфавитный указатель · World & Geometry
ClassicUO • Runtime API
Читает поле Y загруженного объекта или текущего персонажа.
Точный синтаксис
UO.GetY() -> Integer
UO.GetY(id:String) -> Integer
UO.GetY(id:Integer) -> Integer
UO.GetY(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 — координата Y. Для неизвестного объекта возвращается 0. Ноль также является допустимой координатой. Измеряется в клетках для объектов мира; это не экранные пиксели.
Поведение
- Читаются последние данные, уже известные клиенту; запрос обновления серверу не отправляется.
- Неизвестный объект и ещё не полученное свойство могут иметь нулевое/пустое значение. Проверяйте Exists и условия конкретного действия.
- Для персонажа или предмета на земле это координата мира. У предмета внутри контейнера X/Y задают положение внутри гампа; команда не переводит их в мировые координаты владельца.
- Читается текущая координата объекта. Ожидающие подтверждения шаги не превращаются этой командой в расчёт маршрута.
Примеры
Пример 1. Прочитать свою координату
# Прочитать свою координату
#
# Читает поле Y загруженного объекта или текущего персонажа.
#
# Integer — координата Y. Для неизвестного объекта возвращается 0. Ноль также является
# допустимой координатой. Измеряется в клетках для объектов мира; это не экранные пиксели.
SUB Main()
# Форма без аргумента выбирает self, текущего персонажа.
# position содержит координата Y, а не serial.
VAR position = UO.GetY()
UO.Print('Y: ' + STR(position))
END SUB
Разбор параметров и выполнения:
- Форма без аргумента выбирает self, текущего персонажа.
- position содержит координата Y, а не serial.
Пример 2. Сравнить с выбранным персонажем
# Сравнить с выбранным персонажем
#
# Читает поле Y загруженного объекта или текущего персонажа.
#
# Integer — координата Y. Для неизвестного объекта возвращается 0. Ноль также является
# допустимой координатой. Измеряется в клетках для объектов мира; это не экранные пиксели.
SUB Main()
# lasttarget должен указывать на загруженного персонажа или предмет на земле.
# delta — разность по одной оси. Она не является длиной маршрута; значение может быть
# отрицательным.
VAR other = UO.GetSerial('lasttarget')
IF UO.Exists(other) THEN
VAR delta = UO.GetY(other) - UO.GetY()
UO.Print('Difference: ' + STR(delta))
END IF
END SUB
Разбор параметров и выполнения:
- lasttarget должен указывать на загруженного персонажа или предмет на земле.
- delta — разность по одной оси. Она не является длиной маршрута; значение может быть отрицательным.
Пример 3. Запомнить точку и сравнить позднее
# Запомнить точку и сравнить позднее
#
# Читает поле Y загруженного объекта или текущего персонажа.
#
# Integer — координата Y. Для неизвестного объекта возвращается 0. Ноль также является
# допустимой координатой. Измеряется в клетках для объектов мира; это не экранные пиксели.
SUB Main()
# id="self" — явная форма выбора персонажа. WAIT=500 миллисекунд.
# Сравнение показывает изменение только оси Y. Изменение другой оси или поворот здесь не
# учитываются.
VAR before = UO.GetY('self')
WAIT(500)
VAR after = UO.GetY('self')
IF before <> after THEN
UO.Print('Coordinate changed')
END IF
END SUB
Разбор параметров и выполнения:
- id="self" — явная форма выбора персонажа. WAIT=500 миллисекунд.
- Сравнение показывает изменение только оси Y. Изменение другой оси или поворот здесь не учитываются.