-
Notifications
You must be signed in to change notification settings - Fork 0
API 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.
Читает позиционные аргументы и передаёт их в SetAutoBuyRule либо SetAutoSellRule.
Скрипту возвращается Unit; речь и ожидание не вызываются.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ExecuteClientApiCompatibility.
Находит совпадающее правило Default, обновляет/удаляет его, сохраняет профиль.
Количество <=0 удаляет, >0 включает правило.
Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция SetAutoShopRule.
Позднее сопоставляет полученные от NPC строки включённым правилам с общим лимитом на правило.
Выбирает serial и количество для запроса; результат сделки определяет сервер.
Исходник проекта: src/ClassicUO.Client/Game/Managers/BackNewbieAutomationManager.cs; функция SelectVendorItems.
Настройка и последующая сделка — разные этапы. В скрипте ниже нет ожидания фиктивного результата Buy/Sell.
SUB Main()
# Стандартный type Black Pearl; команда сохраняет правило.
UO.AutoBuyEx(0x0F7A, -1, 1, 5, "")
# Теперь подойдите к NPC и откройте Buy через его меню/речь.
# Завершение скрипта не удаляет правило из профиля.
END SUBРазбор параметров и выполнения:
- 0x0F7A — graphic реагента, не ID NPC. Количество — 1; цвет — любой. Потолок цены 5 за единицу. Сам скрипт ничего не произносит и не открывает магазин. Правило продолжает действовать при следующих предложениях, пока вы его не измените/отключите.
SUB Main()
# Точный hue 0, лимит 20 единиц суммарно по подходящим строкам.
UO.AutoBuyEx(0x0F7A, 0, 20, 5, "Black Pearl")
# Для сделки откройте Buy; затем проверьте золото и рюкзак.
END SUBРазбор параметров и выполнения:
- 20 — максимум в одном ответе магазина, а не «довести количество до 20». 5 — цена за единицу, "Black Pearl" — подстрока имени товара. Если сервер называет реагент иначе, измените фильтр или передайте "". Отсутствие товара, деньги и правила сервера определяют итог.
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, с которым создавалось правило.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь