API UO Z - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.Z
Оглавление · Алфавитный указатель · World & Geometry
ClassicUO • Runtime API
Читает высоту Z из модели клиента.
Точный синтаксис
UO.Z() -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
Integer — высота объекта в единицах мира, обычно -128..127. Это не номер этажа и не слой экипировки. 0 может быть реальной высотой или результатом отсутствия объекта.
Поведение
- Читаются уже полученные локальные данные. Запрос не открывает status и не заставляет сервер прислать обновление. После смерти, перехода карты или удаления объекта значения могут измениться между двумя вызовами.
- Это функции чтения: присваивание результата переменной сохраняет снимок. Оно не изменяет характеристику персонажа. Имена нечувствительны к регистру; используйте именно показанную форму с нужным числом аргументов.
Примеры
Пример 1. Вывести текущее значение своего персонажа
# Вывести текущее значение своего персонажа
#
# Читает высоту Z из модели клиента.
#
# Integer — высота объекта в единицах мира, обычно -128..127. Это не номер этажа и не слой
# экипировки. 0 может быть реальной высотой или результатом отсутствия объекта.
SUB Main()
# Вызов без аргументов относится к self. Высоту z сохраняется в value.
# STR преобразует число для вывода и не меняет смысл результата.
VAR value = UO.Z()
UO.Print('Z: ' + STR(value))
END SUB
Разбор параметров и выполнения:
- Вызов без аргументов относится к self. Высоту z сохраняется в value.
- STR преобразует число для вывода и не меняет смысл результата.
Пример 2. Использовать значение в прикладной проверке
# Использовать значение в прикладной проверке
#
# Читает высоту Z из модели клиента.
#
# Integer — высота объекта в единицах мира, обычно -128..127. Это не номер этажа и не слой
# экипировки. 0 может быть реальной высотой или результатом отсутствия объекта.
SUB Main()
# Значение читается один раз без аргументов. Высоту z используется в показанном расчёте или
# условии.
# Числовые пороги — пример условий скрипта, а не новые пределы клиента. Поле сохраняет серверные
# единицы и ограничения, описанные выше.
VAR value = UO.Z()
VAR land = UO.GetLandscapeTile(UO.GetX(), UO.GetY(), UO.WorldNum())
IF GetArrayLength(land) >= 3 THEN
UO.Print('Height above land: ' + STR(value - land[1]))
END IF
END SUB
Разбор параметров и выполнения:
- Значение читается один раз без аргументов. Высоту z используется в показанном расчёте или условии.
- Числовые пороги — пример условий скрипта, а не новые пределы клиента. Поле сохраняет серверные единицы и ограничения, описанные выше.
Пример 3. Наблюдать изменение за одну секунду
# Наблюдать изменение за одну секунду
#
# Читает высоту Z из модели клиента.
#
# Integer — высота объекта в единицах мира, обычно -128..127. Это не номер этажа и не слой
# экипировки. 0 может быть реальной высотой или результатом отсутствия объекта.
SUB Main()
# Оба вызова без аргумента читают своё текущее значение. WAIT(1000) даёт паузу в миллисекундах
# между снимками.
# Сравнивается изменение: высоту Z. Пример ничего не изменяет в мире и не ждёт бесконечно.
# События внутри этой секунды могут быть пропущены.
VAR before = UO.Z()
WAIT(1000)
VAR after = UO.Z()
IF before <> after THEN
UO.Print('Before: ' + STR(before) + '; after: ' + STR(after))
END IF
END SUB
Разбор параметров и выполнения:
- Оба вызова без аргумента читают своё текущее значение. WAIT(1000) даёт паузу в миллисекундах между снимками.
- Сравнивается изменение: высоту Z. Пример ничего не изменяет в мире и не ждёт бесконечно. События внутри этой секунды могут быть пропущены.