API UO LastStepQUsedDoor - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.LastStepQUsedDoor

Оглавление · Алфавитный указатель · Movement

ClassicUO • Runtime API

Читает либо вручную изменяет отметку попытки открытия двери последней командой StepQ.

Точный синтаксис

UO.LastStepQUsedDoor() -> Any
UO.LastStepQUsedDoor(value:Any) -> Any

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

  • value — Необязательное целое. С аргументом сохраняется ровно это число; без аргумента выполняется чтение.

Возвращает

Integer — сохранённая отметка. Обычный StepQ сбрасывает её в 0 и при включённом moveOpenDoor записывает результат TryOpenDoorForStep: 1 при обнаруженной попытке, 0 иначе. Ручная форма допускает и другие числа. Это не serial двери и не подтверждение её открытия.

Поведение

  • Проверка не читает состояние двери с сервера. Резервный вызов OpenDoor не меняет нулевую отметку.
  • При раннем отказе StepQ из-за соединения/выносливости сброс ещё не выполняется, поэтому может остаться предыдущее значение.

Примеры

Пример 1. Прочитать отметку

# Прочитать отметку
#
# Читает либо вручную изменяет отметку попытки открытия двери последней командой StepQ.
#
# Integer — сохранённая отметка. Обычный StepQ сбрасывает её в 0 и при включённом moveOpenDoor
# записывает результат TryOpenDoorForStep: 1 при обнаруженной попытке, 0 иначе. Ручная форма
# допускает и другие числа. Это не serial двери и не подтверждение её открытия.

SUB Main()
    # Без аргументов читается сохранённое число.
    # Не используйте его как ID для UseObject.

    UO.Print(STR(UO.LastStepQUsedDoor()))
END SUB

Разбор параметров и выполнения:

  • Без аргументов читается сохранённое число.
  • Не используйте его как ID для UseObject.

Пример 2. Сбросить перед попыткой шага

# Сбросить перед попыткой шага
#
# Читает либо вручную изменяет отметку попытки открытия двери последней командой StepQ.
#
# Integer — сохранённая отметка. Обычный StepQ сбрасывает её в 0 и при включённом moveOpenDoor
# записывает результат TryOpenDoorForStep: 1 при обнаруженной попытке, 0 иначе. Ручная форма
# допускает и другие числа. Это не serial двери и не подтверждение её открытия.

SUB Main()
    # value=0 очищает прежнюю отметку. direction=2 — E; run=FALSE.
    # Результат StepQ и отметка двери имеют разные значения.

    UO.LastStepQUsedDoor(0)
    VAR status = UO.StepQ(2, FALSE)
    UO.Print(STR(UO.LastStepQUsedDoor()))
END SUB

Разбор параметров и выполнения:

  • value=0 очищает прежнюю отметку. direction=2 — E; run=FALSE.
  • Результат StepQ и отметка двери имеют разные значения.

Пример 3. Сохранить и восстановить отметку

# Сохранить и восстановить отметку
#
# Читает либо вручную изменяет отметку попытки открытия двери последней командой StepQ.
#
# Integer — сохранённая отметка. Обычный StepQ сбрасывает её в 0 и при включённом moveOpenDoor
# записывает результат TryOpenDoorForStep: 1 при обнаруженной попытке, 0 иначе. Ручная форма
# допускает и другие числа. Это не serial двери и не подтверждение её открытия.

SUB Main()
    # previous — сохранённое значение.
    # Ручное восстановление не выполняет никаких действий с дверью.

    VAR previous = UO.LastStepQUsedDoor()
    UO.LastStepQUsedDoor(0)
    UO.Print(STR(UO.LastStepQUsedDoor()))
    UO.LastStepQUsedDoor(previous)
END SUB

Разбор параметров и выполнения:

  • previous — сохранённое значение.
  • Ручное восстановление не выполняет никаких действий с дверью.