API UO GetAutoSellDelay - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.GetAutoSellDelay
Оглавление · Алфавитный указатель · Shops & Vendors
ClassicUO • Runtime API
Читает текущую задержку автоматической продажи из профиля клиента.
Точный синтаксис
UO.GetAutoSellDelay() -> Any
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
Integer — текущая задержка в миллисекундах. Значения, записанные setter, ограничены 0…65535. 0 означает отсутствие дополнительной задержки; это не ошибка. При отсутствии загруженного профиля возвращается 3. Чтение не возвращает количество товаров и не подтверждает сделку.
Поведение
- Настройка общая для текущего профиля: изменения в другом скрипте или UI видны при следующем чтении. Ноль — действующая настройка, не признак отсутствия данных и не повод возвращать старый кэш скрипта.
- Значение по умолчанию — 3 мс. После отправки автоматической операции менеджер задаёт время следующей разрешённой операции. Списки вендора, пришедшие раньше, не обрабатываются этим проходом; getter не запускает ожидание и сам не отправляет покупку/продажу.
- Это не задержка MassMove, Drag/Drop или ручной торговли. Новое значение применяется при планировании следующей задержки; уже назначенный момент не пересчитывается.
- Первичные справочники: https://stealth.od.ua/api/GetAutoSellDelay/ и https://stealth.od.ua/api/SetAutoSellDelay/ .
Примеры
Пример 1. Вывести действующую задержку
# Вывести действующую задержку
#
# Читает текущую задержку автоматической продажи из профиля клиента.
#
# Integer — текущая задержка в миллисекундах. Значения, записанные setter, ограничены 0…65535. 0
# означает отсутствие дополнительной задержки; это не ошибка. При отсутствии загруженного
# профиля возвращается 3. Чтение не возвращает количество товаров и не подтверждает сделку.
SUB Main()
# Аргументов нет. delay — время в миллисекундах.
# Значение отражает профиль на момент вызова. Сохранённая VAR позже сама не обновится.
VAR delay = UO.GetAutoSellDelay()
UO.Print('Delay ms: ' + STR(delay))
END SUB
Разбор параметров и выполнения:
- Аргументов нет. delay — время в миллисекундах.
- Значение отражает профиль на момент вызова. Сохранённая VAR позже сама не обновится.
Пример 2. Изменить настройку и прочитать ограниченное значение
# Изменить настройку и прочитать ограниченное значение
#
# Читает текущую задержку автоматической продажи из профиля клиента.
#
# Integer — текущая задержка в миллисекундах. Значения, записанные setter, ограничены 0…65535. 0
# означает отсутствие дополнительной задержки; это не ошибка. При отсутствии загруженного
# профиля возвращается 3. Чтение не возвращает количество товаров и не подтверждает сделку.
SUB Main()
# setter получает 70000 мс; допустимый максимум — 65535. Пример изменяет настройку профиля.
# actual должен содержать 65535 при загруженном профиле. Getter возвращает фактическое
# ограниченное значение, а не исходный аргумент 70000.
UO.SetAutoSellDelay(70000)
VAR actual = UO.GetAutoSellDelay()
UO.Print(STR(actual))
END SUB
Разбор параметров и выполнения:
- setter получает 70000 мс; допустимый максимум — 65535. Пример изменяет настройку профиля.
- actual должен содержать 65535 при загруженном профиле. Getter возвращает фактическое ограниченное значение, а не исходный аргумент 70000.
Пример 3. Различить нулевую и ненулевую задержку
# Различить нулевую и ненулевую задержку
#
# Читает текущую задержку автоматической продажи из профиля клиента.
#
# Integer — текущая задержка в миллисекундах. Значения, записанные setter, ограничены 0…65535. 0
# означает отсутствие дополнительной задержки; это не ошибка. При отсутствии загруженного
# профиля возвращается 3. Чтение не возвращает количество товаров и не подтверждает сделку.
SUB Main()
# Ноль проверяется явно. Этот пример не меняет профиль.
# Нулевая задержка не означает, что операция была выполнена. Для результата сделки проверяйте
# игровые объекты.
VAR current = UO.GetAutoSellDelay()
IF current = 0 THEN
UO.Print('No additional delay')
ELSE
UO.Print('Delay: ' + STR(current) + ' ms')
END IF
END SUB
Разбор параметров и выполнения:
- Ноль проверяется явно. Этот пример не меняет профиль.
- Нулевая задержка не означает, что операция была выполнена. Для результата сделки проверяйте игровые объекты.