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

UO.SetAutoBuyDelay

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

ClassicUO • Runtime API

Устанавливает задержку автоматической покупки и сохраняет текущий профиль.

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

UO.SetAutoBuyDelay(Value:Any) -> Unit

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

Параметры

  • Value — Обязательное число миллисекунд. Отрицательное значение ограничивается 0, значение больше 65535 — числом 65535. 0 отключает дополнительную задержку, но не отключает саму автоматическую торговлю.

Возвращает

Unit — нет возвращаемого значения. Вызывайте отдельной строкой, затем используйте GetAutoBuyDelay() для чтения действующей настройки. При отсутствии профиля setter ничего не сохраняет; getter в этом состоянии даёт стандартные 3 мс.

Поведение

  • Настройка общая для текущего профиля: изменения в другом скрипте или UI видны при следующем чтении. Ноль — действующая настройка, не признак отсутствия данных и не повод возвращать старый кэш скрипта.
  • Значение по умолчанию — 3 мс. После отправки автоматической операции менеджер задаёт время следующей разрешённой операции. Списки вендора, пришедшие раньше, не обрабатываются этим проходом; getter не запускает ожидание и сам не отправляет покупку/продажу.
  • Это не задержка MassMove, Drag/Drop или ручной торговли. Новое значение применяется при планировании следующей задержки; уже назначенный момент не пересчитывается.
  • Первичные справочники: https://stealth.od.ua/api/GetAutoBuyDelay/ и https://stealth.od.ua/api/SetAutoBuyDelay/ .

Примеры

Пример 1. Установить интервал 350 мс

# Установить интервал 350 мс
#
# Устанавливает задержку автоматической покупки и сохраняет текущий профиль.
#
# Unit — нет возвращаемого значения. Вызывайте отдельной строкой, затем используйте
# GetAutoBuyDelay() для чтения действующей настройки. При отсутствии профиля setter ничего не
# сохраняет; getter в этом состоянии даёт стандартные 3 мс.

SUB Main()
    # Value=350 — миллисекунды между разрешёнными автоматическими операциями.
    # Настройка сохраняется в текущем профиле и видна другим скриптам.

    UO.SetAutoBuyDelay(350)
    UO.Print(STR(UO.GetAutoBuyDelay()))
END SUB

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

  • Value=350 — миллисекунды между разрешёнными автоматическими операциями.
  • Настройка сохраняется в текущем профиле и видна другим скриптам.

Пример 2. Убрать дополнительную задержку

# Убрать дополнительную задержку
#
# Устанавливает задержку автоматической покупки и сохраняет текущий профиль.
#
# Unit — нет возвращаемого значения. Вызывайте отдельной строкой, затем используйте
# GetAutoBuyDelay() для чтения действующей настройки. При отсутствии профиля setter ничего не
# сохраняет; getter в этом состоянии даёт стандартные 3 мс.

SUB Main()
    # Value=0 имеет самостоятельный смысл; не подменяется предыдущим ненулевым значением.
    # Меняется только задержка. Правила, списки и общий выключатель автоматической торговли задаются
    # отдельно.

    UO.SetAutoBuyDelay(0)
    VAR actual = UO.GetAutoBuyDelay()
    IF actual = 0 THEN
        UO.Print('Delay disabled')
    END IF
END SUB

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

  • Value=0 имеет самостоятельный смысл; не подменяется предыдущим ненулевым значением.
  • Меняется только задержка. Правила, списки и общий выключатель автоматической торговли задаются отдельно.

Пример 3. Применить рассчитанное значение

# Применить рассчитанное значение
#
# Устанавливает задержку автоматической покупки и сохраняет текущий профиль.
#
# Unit — нет возвращаемого значения. Вызывайте отдельной строкой, затем используйте
# GetAutoBuyDelay() для чтения действующей настройки. При отсутствии профиля setter ничего не
# сохраняет; getter в этом состоянии даёт стандартные 3 мс.

SUB Main()
    # requested=70000 превышает максимум. applied читает профиль после ограничений setter.
    # При загруженном профиле получится 65535. Для возврата к стандартной задержке явно вызовите
    # setter с 3.

    VAR requested = 70000
    UO.SetAutoBuyDelay(requested)
    VAR applied = UO.GetAutoBuyDelay()
    UO.Print('Requested: ' + STR(requested))
    UO.Print('Applied: ' + STR(applied))
END SUB

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

  • requested=70000 превышает максимум. applied читает профиль после ограничений setter.
  • При загруженном профиле получится 65535. Для возврата к стандартной задержке явно вызовите setter с 3.