Skip to content

API UO AutoBuyEx

Codex edited this page Sep 22, 2026 · 7 revisions

UO.AutoBuyEx

ClassicUO / Basic IDE

Home · Все команды · Константы и значения

Создаёт, обновляет либо удаляет правило автоматической покупки в основном списке Default текущего профиля Bad Newbie. Команда настраивает будущую обработку предложения NPC-продавца; сама не произносит buy/sell, не открывает магазин и не подтверждает сделку. Полный порядок действий: списки магазина.

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

UO.AutoBuyEx(ItemType:Any, ItemColor:Any, Quantity:Any, Price:Any, Name:Any) -> Unit

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

Параметры

  • ItemType — Graphic товара 0..65535: например 0x0F7A — Black Pearl, 0x0F51 — кинжал. Это не serial продавца/предмета и не body персонажа. Отрицательное число или число больше 65535 отвергается. Здесь 0xFFFF — конкретный graphic, не маска всех товаров.
  • ItemColor — Hue товара: отрицательное число либо 0xFFFF — любой; 0 — только неокрашенные предметы. Для точного hue используйте 0..65534. Цвета вне этого диапазона не используйте: положительное значение преобразуется к ushort. Обязателен.
  • Quantity — Количество ЕДИНИЦ товара на одно полученное предложение магазина, не число стопок и не желаемый остаток в рюкзаке. Положительное ограничивается 65535. 0/отрицательное удаляет совпадающее правило type+color из Default; это не «всё количество». Обязателен.
  • Price — Максимальная цена ОДНОЙ единицы, не всей сделки. 0/отрицательное — без потолка цены. Товар дороже положительного лимита пропускается. Цена не торгуется и не меняется на сервере. Обязателен.
  • Name — Подстрока имени ТОВАРА без учёта регистра; пробелы по краям удаляются, пустая строка — без фильтра. Это не имя продавца и не название списка. Например "Black Pearl" проверяет текст позиции магазина, если сервер прислал именно такое имя. Обязателен.

Возвращает

Unit — значения нет. Вызывайте отдельной строкой, без VAR result = и без IF. Окончание вызова означает окончание настройки, а не успешную сделку. При отсутствии профиля или недопустимом graphic правило не создаётся; числового результата ошибки нет. Фактическую сделку проверяйте по содержимому рюкзака, золоту и ответу сервера.

Поведение

  • Все 5 аргументов обязательны. Это настройка правила, не функция ожидания.
  • Ключ правила — graphic и маска hue в Default. Повторный вызов заменяет количество и остальные поля этого правила; он не добавляет ещё один лимит поверх предыдущего. Без цены/имени прежние ограничения этих полей снимаются.
  • Новое/обновлённое правило Enabled=true. Общий переключатель покупки/продажи устанавливается по наличию правил, профиль сохраняется. Сам выключенный Default-список автоматически не включается: в настройках должны быть включены и общий режим, и список. Другие именованные списки не изменяются.
  • Обработка начинается при поступлении списка товаров. Лимит расходуется суммарно по строкам, сопоставленным одному правилу. Для каждой позиции используется первое подходящее включённое правило. Повторное открытие магазина даёт новое предложение и новый лимит, пока правило активно.
  • Работает в Full с Bad Newbie; в Classic эта автоматизация отключена. Не подставляйте в параметры имя NPC или название сохранённого списка. AutoBuyEx добавляет фильтры цены/имени при покупке; ClearShopList сбрасывает обе автоматизации целиком.

Внутренние функции: последовательность выполнения

Ниже описана реализация этого движка. Имена внутренних методов не являются дополнительными командами BASIC.

1. ExecuteClientApiCompatibility

Читает позиционные аргументы и передаёт их в SetAutoBuyRule либо SetAutoSellRule.

Скрипту возвращается Unit; речь и ожидание не вызываются.

Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ExecuteClientApiCompatibility.

2. SetAutoShopRule

Находит совпадающее правило Default, обновляет/удаляет его, сохраняет профиль.

Количество <=0 удаляет, >0 включает правило.

Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция SetAutoShopRule.

3. SelectVendorItems

Позднее сопоставляет полученные от NPC строки включённым правилам с общим лимитом на правило.

Выбирает serial и количество для запроса; результат сделки определяет сервер.

Исходник проекта: src/ClassicUO.Client/Game/Managers/BackNewbieAutomationManager.cs; функция SelectVendorItems.

Настройка и последующая сделка — разные этапы. В скрипте ниже нет ожидания фиктивного результата Buy/Sell.

Примеры

Пример 1. Подготовить покупку одной единицы реагента

SUB Main()
    # Стандартный type Black Pearl; команда сохраняет правило.
    UO.AutoBuyEx(0x0F7A, -1, 1, 5, "")
    # Теперь подойдите к NPC и откройте Buy через его меню/речь.
    # Завершение скрипта не удаляет правило из профиля.
END SUB

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

  • 0x0F7A — graphic реагента, не ID NPC. Количество — 1; цвет — любой. Потолок цены 5 за единицу. Сам скрипт ничего не произносит и не открывает магазин. Правило продолжает действовать при следующих предложениях, пока вы его не измените/отключите.

Пример 2. Настроить запас реагента на одно предложение магазина

SUB Main()
    # Точный hue 0, лимит 20 единиц суммарно по подходящим строкам.
    UO.AutoBuyEx(0x0F7A, 0, 20, 5, "Black Pearl")
    # Для сделки откройте Buy; затем проверьте золото и рюкзак.
END SUB

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

  • 20 — максимум в одном ответе магазина, а не «довести количество до 20». 5 — цена за единицу, "Black Pearl" — подстрока имени товара. Если сервер называет реагент иначе, измените фильтр или передайте "". Отсутствие товара, деньги и правила сервера определяют итог.

Пример 3. Удалить выбранные правила без сброса остальных списков

SUB DisableReagentRule(itemType)
    # 0удалить правило этого type с маской любого hue.
    UO.AutoBuyEx(itemType, -1, 0, 0, "")
END SUB

SUB Main()
    DisableReagentRule(0x0F7A) # Black Pearl.
    DisableReagentRule(0x0F84) # Garlic.
END SUB

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

  • Помощник принимает graphic. Удаляются только правила Default с AnyHue; отдельные правила hue=0 сохраняются. Это не отменяет сделку, уже отправленную серверу. Для удаления точного цвета передайте тот же hue, с которым создавалось правило.

Shop lists / Списки покупки и продажи

Shop lists / Списки покупки и продажи

Clone this wiki locally