API UO IsMoving - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.IsMoving
Оглавление · Алфавитный указатель · Movement
ClassicUO • Runtime API
Проверяет движение своего персонажа.
Точный синтаксис
UO.IsMoving() -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
Integer Boolean (1/0): 1 — активен автоматический Pathfinder либо в очереди персонажа ещё есть шаги; 0 — оба отсутствуют или персонаж не загружен. Это не подтверждение достижения цели и не количество шагов.
Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся состояние.
Поведение
- Читаются уже полученные локальные данные. Запрос не открывает status и не заставляет сервер прислать обновление. После смерти, перехода карты или удаления объекта значения могут измениться между двумя вызовами.
- Это функции чтения: присваивание результата переменной сохраняет снимок. Оно не изменяет характеристику персонажа. Имена нечувствительны к регистру; используйте именно показанную форму с нужным числом аргументов.
Примеры
Пример 1. Проверить собственное состояние
# Проверить собственное состояние
#
# Проверяет движение своего персонажа.
#
# Integer Boolean (1/0): 1 — активен автоматический Pathfinder либо в очереди персонажа ещё есть
# шаги; 0 — оба отсутствуют или персонаж не загружен. Это не подтверждение достижения цели и не
# количество шагов.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.
SUB Main()
# Пустые скобки читают self. active — число 1 или 0; текст сообщения служит примером обработки
# ветвей.
# 1 — активен автоматический Pathfinder либо в очереди персонажа ещё есть шаги; 0 — оба
# отсутствуют или персонаж не загружен. Это не подтверждение достижения цели и не количество
# шагов.
VAR active = UO.IsMoving()
IF active THEN
UO.Print('State is active')
ELSE
UO.Print('State is inactive or unavailable')
END IF
END SUB
Разбор параметров и выполнения:
- Пустые скобки читают self. active — число 1 или 0; текст сообщения служит примером обработки ветвей.
- 1 — активен автоматический Pathfinder либо в очереди персонажа ещё есть шаги; 0 — оба отсутствуют или персонаж не загружен. Это не подтверждение достижения цели и не количество шагов.
Пример 2. Проверка с учётом наличия персонажа
# Проверка с учётом наличия персонажа
#
# Проверяет движение своего персонажа.
#
# Integer Boolean (1/0): 1 — активен автоматический Pathfinder либо в очереди персонажа ещё есть
# шаги; 0 — оба отсутствуют или персонаж не загружен. Это не подтверждение достижения цели и не
# количество шагов.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.
SUB Main()
# У команды нет аргумента объекта: даже после Exists(self) она читает только собственное
# состояние.
# Exists(self) проверяет загруженность игрока отдельно от запрашиваемого флага. Между проверками
# мир может измениться.
IF UO.Exists('self') THEN
VAR state = UO.IsMoving()
UO.Print('State 1/0: ' + STR(state))
END IF
END SUB
Разбор параметров и выполнения:
- У команды нет аргумента объекта: даже после Exists(self) она читает только собственное состояние.
- Exists(self) проверяет загруженность игрока отдельно от запрашиваемого флага. Между проверками мир может измениться.
Пример 3. Заметить изменение состояния без бесконечного ожидания
# Заметить изменение состояния без бесконечного ожидания
#
# Проверяет движение своего персонажа.
#
# Integer Boolean (1/0): 1 — активен автоматический Pathfinder либо в очереди персонажа ещё есть
# шаги; 0 — оба отсутствуют или персонаж не загружен. Это не подтверждение достижения цели и не
# количество шагов.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.
SUB Main()
# Два вызова без аргументов читают self; WAIT(500) — пауза полсекунды.
# Сравниваются два снимка флага. Переходы между снимками могут быть пропущены; это не подписка
# на все серверные события.
VAR before = UO.IsMoving()
WAIT(500)
VAR after = UO.IsMoving()
IF before <> after THEN
UO.Print('State changed from ' + STR(before) + ' to ' + STR(after))
END IF
END SUB
Разбор параметров и выполнения:
- Два вызова без аргументов читают self; WAIT(500) — пауза полсекунды.
- Сравниваются два снимка флага. Переходы между снимками могут быть пропущены; это не подписка на все серверные события.