API UO Move - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.Move
Оглавление · Алфавитный указатель · Movement
ClassicUO • Runtime API
Читает, есть ли автоматический маршрут или ещё не завершённые шаги персонажа.
Точный синтаксис
UO.Move() -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
Integer 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 пишутся без кавычек. Вызовите команду один раз и сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся состояние.
Поведение
- Команда только читает состояние. При ненулевом результате обновляется совместимый таймер TicksAnim. Учитываются и шаги, запрошенные мышью/клавишами, пока они остаются в очереди.
- Для остановки автоматического маршрута используйте MoverStop. MoveOff управляет другими, клавишными шагами.
Примеры
Пример 1. Показать состояние
# Показать состояние
#
# Читает, есть ли автоматический маршрут или ещё не завершённые шаги персонажа.
#
# Integer 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()
# Аргументов нет.
# 0 не доказывает, что цель достигнута: маршрут мог быть отменён.
UO.Print('Movement active or queued: ' + STR(UO.Move()))
END SUB
Разбор параметров и выполнения:
- Аргументов нет.
- 0 не доказывает, что цель достигнута: маршрут мог быть отменён.
Пример 2. Ограниченно дождаться остановки
# Ограниченно дождаться остановки
#
# Читает, есть ли автоматический маршрут или ещё не завершённые шаги персонажа.
#
# Integer 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()
# 100 ожиданий по 50 мс задают приблизительный предел 5 секунд.
# Выполнение этой проверки само не запускает и не останавливает движение.
VAR attempts = 0
WHILE UO.Move() AND attempts < 100
WAIT(50)
attempts = attempts + 1
WEND
UO.Print('Still moving: ' + STR(UO.Move()))
END SUB
Разбор параметров и выполнения:
- 100 ожиданий по 50 мс задают приблизительный предел 5 секунд.
- Выполнение этой проверки само не запускает и не останавливает движение.
Пример 3. Остановить активный маршрут
# Остановить активный маршрут
#
# Читает, есть ли автоматический маршрут или ещё не завершённые шаги персонажа.
#
# Integer 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()
# Move() проверяет активность, MoverStop() снимает маршрут.
# Уже отправленные пакеты могут ещё подтверждаться сервером.
IF UO.Move() THEN
UO.MoverStop()
END IF
END SUB
Разбор параметров и выполнения:
- Move() проверяет активность, MoverStop() снимает маршрут.
- Уже отправленные пакеты могут ещё подтверждаться сервером.