API UO GetDir - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.GetDir
Оглавление · Алфавитный указатель · Movement
ClassicUO • Runtime API
Читает направление персонажа из модели клиента.
Точный синтаксис
UO.GetDir() -> Integer
UO.GetDir(id:String) -> Integer
UO.GetDir(id:Integer) -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
id— Необязательный объект только в указанных однопараметрических формах: serial числом/hex-строкой, "self", "lasttarget" или имя AddObject. Это не graphic/type. Без аргумента читается собственный персонаж. Перед чтением другого объекта проверяйте UO.Exists; неизвестное имя не открывает прицел.
Возвращает
Integer — направление mobile без бита бега: 0=N, 1=NE, 2=E, 3=SE, 4=S, 5=SW, 6=W, 7=NW. Для неизвестного mobile возвращается 0, которое также означает север.
Поведение
- Читаются уже полученные локальные данные. Запрос не открывает status и не заставляет сервер прислать обновление. После смерти, перехода карты или удаления объекта значения могут измениться между двумя вызовами.
- Это функции чтения: присваивание результата переменной сохраняет снимок. Оно не изменяет характеристику персонажа. Имена нечувствительны к регистру; используйте именно показанную форму с нужным числом аргументов.
Примеры
Пример 1. Вывести текущее значение своего персонажа
# Вывести текущее значение своего персонажа
#
# Читает направление персонажа из модели клиента.
#
# Integer — направление mobile без бита бега: 0=N, 1=NE, 2=E, 3=SE, 4=S, 5=SW, 6=W, 7=NW. Для
# неизвестного mobile возвращается 0, которое также означает север.
SUB Main()
# Вызов без аргументов относится к self. Направление персонажа сохраняется в value.
# STR преобразует число для вывода и не меняет смысл результата.
VAR value = UO.GetDir()
UO.Print('GetDir: ' + STR(value))
END SUB
Разбор параметров и выполнения:
- Вызов без аргументов относится к self. Направление персонажа сохраняется в value.
- STR преобразует число для вывода и не меняет смысл результата.
Пример 2. Использовать значение в прикладной проверке
# Использовать значение в прикладной проверке
#
# Читает направление персонажа из модели клиента.
#
# Integer — направление mobile без бита бега: 0=N, 1=NE, 2=E, 3=SE, 4=S, 5=SW, 6=W, 7=NW. Для
# неизвестного mobile возвращается 0, которое также означает север.
SUB Main()
# Значение читается один раз без аргументов. Направление персонажа используется в показанном
# расчёте или условии.
# Числовые пороги — пример условий скрипта, а не новые пределы клиента. Поле сохраняет серверные
# единицы и ограничения, описанные выше.
VAR value = UO.GetDir()
IF value = 2 THEN
UO.Print('Facing east')
END IF
END SUB
Разбор параметров и выполнения:
- Значение читается один раз без аргументов. Направление персонажа используется в показанном расчёте или условии.
- Числовые пороги — пример условий скрипта, а не новые пределы клиента. Поле сохраняет серверные единицы и ограничения, описанные выше.
Пример 3. Прочитать свойство выбранного объекта
# Прочитать свойство выбранного объекта
#
# Читает направление персонажа из модели клиента.
#
# Integer — направление mobile без бита бега: 0=N, 1=NE, 2=E, 3=SE, 4=S, 5=SW, 6=W, 7=NW. Для
# неизвестного mobile возвращается 0, которое также означает север.
SUB Main()
# Единственный аргумент выбирает объект lasttarget; его serial должен быть известен клиенту.
# Graphic/type сюда не передаётся.
# Данные другого объекта могут быть неизвестны даже при положительном Exists. Для координат
# предмета в сумке получается позиция контейнера, а не точка мира.
IF UO.Exists('lasttarget') THEN
VAR targetValue = UO.GetDir('lasttarget')
UO.Print('Selected value: ' + STR(targetValue))
ELSE
UO.Print('Target is not loaded')
END IF
END SUB
Разбор параметров и выполнения:
- Единственный аргумент выбирает объект lasttarget; его serial должен быть известен клиенту. Graphic/type сюда не передаётся.
- Данные другого объекта могут быть неизвестны даже при положительном Exists. Для координат предмета в сумке получается позиция контейнера, а не точка мира.