Skip to content

API UO GetAutoBuyDelay

Codex edited this page Sep 19, 2026 · 5 revisions

UO.GetAutoBuyDelay

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

ClassicUO • Runtime API

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

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

UO.GetAutoBuyDelay() -> Any

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

Параметры

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

Возвращает

Integer — текущая задержка в миллисекундах. Значения, записанные setter, ограничены 0…65535. 0 означает отсутствие дополнительной задержки; это не ошибка. При отсутствии загруженного профиля возвращается 3. Чтение не возвращает количество товаров и не подтверждает сделку.

Поведение

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

Примеры

Пример 1. Вывести действующую задержку

# Вывести действующую задержку
#
# Читает текущую задержку автоматической покупки из профиля клиента.
#
# Integerтекущая задержка в миллисекундах. Значения, записанные setter, ограничены 065535. 0
# означает отсутствие дополнительной задержки; это не ошибка. При отсутствии загруженного
# профиля возвращается 3. Чтение не возвращает количество товаров и не подтверждает сделку.

SUB Main()
    # Аргументов нет. delayвремя в миллисекундах.
    # Значение отражает профиль на момент вызова. Сохранённая VAR позже сама не обновится.

    VAR delay = UO.GetAutoBuyDelay()
    UO.Print('Delay ms: ' + STR(delay))
END SUB

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

  • Аргументов нет. delay — время в миллисекундах.
  • Значение отражает профиль на момент вызова. Сохранённая VAR позже сама не обновится.

Пример 2. Изменить настройку и прочитать ограниченное значение

# Изменить настройку и прочитать ограниченное значение
#
# Читает текущую задержку автоматической покупки из профиля клиента.
#
# Integerтекущая задержка в миллисекундах. Значения, записанные setter, ограничены 065535. 0
# означает отсутствие дополнительной задержки; это не ошибка. При отсутствии загруженного
# профиля возвращается 3. Чтение не возвращает количество товаров и не подтверждает сделку.

SUB Main()
    # setter получает 70000 мс; допустимый максимум65535. Пример изменяет настройку профиля.
    # actual должен содержать 65535 при загруженном профиле. Getter возвращает фактическое
    # ограниченное значение, а не исходный аргумент 70000.

    UO.SetAutoBuyDelay(70000)
    VAR actual = UO.GetAutoBuyDelay()
    UO.Print(STR(actual))
END SUB

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

  • setter получает 70000 мс; допустимый максимум — 65535. Пример изменяет настройку профиля.
  • actual должен содержать 65535 при загруженном профиле. Getter возвращает фактическое ограниченное значение, а не исходный аргумент 70000.

Пример 3. Различить нулевую и ненулевую задержку

# Различить нулевую и ненулевую задержку
#
# Читает текущую задержку автоматической покупки из профиля клиента.
#
# Integerтекущая задержка в миллисекундах. Значения, записанные setter, ограничены 065535. 0
# означает отсутствие дополнительной задержки; это не ошибка. При отсутствии загруженного
# профиля возвращается 3. Чтение не возвращает количество товаров и не подтверждает сделку.

SUB Main()
    # Ноль проверяется явно. Этот пример не меняет профиль.
    # Нулевая задержка не означает, что операция была выполнена. Для результата сделки проверяйте
    # игровые объекты.

    VAR current = UO.GetAutoBuyDelay()
    IF current = 0 THEN
        UO.Print('No additional delay')
    ELSE
        UO.Print('Delay: ' + STR(current) + ' ms')
    END IF
END SUB

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

  • Ноль проверяется явно. Этот пример не меняет профиль.
  • Нулевая задержка не означает, что операция была выполнена. Для результата сделки проверяйте игровые объекты.

Clone this wiki locally