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() снимает маршрут.
  • Уже отправленные пакеты могут ещё подтверждаться сервером.