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

UO.TicksTarget

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

ClassicUO • Runtime API

Читает отметку времени последней подготовки цели через WaitTargetObject/WaitTargetTile и их вызывающие оболочки.

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

UO.TicksTarget() -> Integer

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

Параметры

Параметров нет.

Возвращает

Integer — значение UO.Timer в момент подготовки, в десятых долях секунды от запуска runtime. До первой такой подготовки — 0. Это отметка, не длительность ожидания, не миллисекунды и не ID цели.

Поведение

  • Непосредственные TargetToObject/TargetToTile/TargetToXYZ не подготавливают очередь и эту отметку не обновляют.
  • Некоторые команды поиска ставят ответ напрямую через bridge; TicksTarget не является универсальным временем любого изменения target.

Примеры

Пример 1. Запомнить момент подготовки

# Запомнить момент подготовки
#
# Читает отметку времени последней подготовки цели через WaitTargetObject/WaitTargetTile и их
# вызывающие оболочки.
#
# Integer — значение UO.Timer в момент подготовки, в десятых долях секунды от запуска runtime.
# До первой такой подготовки — 0. Это отметка, не длительность ожидания, не миллисекунды и не ID
# цели.

SUB Main()
    # Аргументов нет; WaitTargetSelf обновляет отметку.
    # stamp измеряется десятыми долями секунды.

    UO.WaitTargetSelf()
    VAR stamp = UO.TicksTarget()
    UO.Print(STR(stamp))
    UO.CancelWaitTarget()
END SUB

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

  • Аргументов нет; WaitTargetSelf обновляет отметку.
  • stamp измеряется десятыми долями секунды.

Пример 2. Вычислить прошедшее время

# Вычислить прошедшее время
#
# Читает отметку времени последней подготовки цели через WaitTargetObject/WaitTargetTile и их
# вызывающие оболочки.
#
# Integer — значение UO.Timer в момент подготовки, в десятых долях секунды от запуска runtime.
# До первой такой подготовки — 0. Это отметка, не длительность ожидания, не миллисекунды и не ID
# цели.

SUB Main()
    # WAIT=250 миллисекунд.
    # Из-за дискретности отметки elapsed обычно 2 или 3, а не 250.

    UO.WaitTargetObject('self')
    WAIT(250)
    VAR elapsed = UO.Timer() - UO.TicksTarget()
    UO.Print('Tenths: ' + STR(elapsed))
    UO.CancelWaitTarget()
END SUB

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

  • WAIT=250 миллисекунд.
  • Из-за дискретности отметки elapsed обычно 2 или 3, а не 250.

Пример 3. Убедиться в одинаковом времени для числового serial

# Убедиться в одинаковом времени для числового serial
#
# Читает отметку времени последней подготовки цели через WaitTargetObject/WaitTargetTile и их
# вызывающие оболочки.
#
# Integer — значение UO.Timer в момент подготовки, в десятых долях секунды от запуска runtime.
# До первой такой подготовки — 0. Это отметка, не длительность ожидания, не миллисекунды и не ID
# цели.

SUB Main()
    # selfId — Integer serial своего персонажа.
    # Числовая форма обновляет отметку, как строковая; параметров у TicksTarget нет.

    VAR selfId = UO.Hex2Int(UO.GetSerial('self'))
    UO.WaitTargetObject(selfId)
    UO.Print(STR(UO.TicksTarget()))
    UO.CancelWaitTarget()
END SUB

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

  • selfId — Integer serial своего персонажа.
  • Числовая форма обновляет отметку, как строковая; параметров у TicksTarget нет.