-
Notifications
You must be signed in to change notification settings - Fork 0
API UO Sell
ClassicUO / Basic IDE
Home · Все команды · Константы и значения
Создаёт, обновляет либо удаляет правило автоматической продажи в основном списке Default текущего профиля Bad Newbie. Команда настраивает будущую обработку предложения NPC-продавца; сама не произносит buy/sell, не открывает магазин и не подтверждает сделку. Полный порядок действий: списки магазина.
UO.Sell(type:Any) -> Unit
UO.Sell(type:Any, color:Any) -> Unit
UO.Sell(type:Any, color:Any, quantity:Any) -> Unit
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
type— Graphic товара 0..65535: например 0x0F7A — Black Pearl, 0x0F51 — кинжал. Это не serial продавца/предмета и не body персонажа. Отрицательное число или число больше 65535 отвергается. Здесь 0xFFFF — конкретный graphic, не маска всех товаров. -
color— Hue товара: отрицательное число либо 0xFFFF — любой; 0 — только неокрашенные предметы. Для точного hue используйте 0..65534. Цвета вне этого диапазона не используйте: положительное значение преобразуется к ushort. По умолчанию -1. -
quantity— Количество ЕДИНИЦ товара на одно полученное предложение магазина, не число стопок и не желаемый остаток в рюкзаке. Положительное ограничивается 65535. 0/отрицательное удаляет совпадающее правило type+color из Default; это не «всё количество». По умолчанию 1.
Unit — значения нет. Вызывайте отдельной строкой, без VAR result = и без IF. Окончание вызова означает окончание настройки, а не успешную сделку. При отсутствии профиля или недопустимом graphic правило не создаётся; числового результата ошибки нет. Фактическую сделку проверяйте по содержимому рюкзака, золоту и ответу сервера.
- Sell принимает от 1 до 3 аргументов; пропущенные справа color=-1, quantity=1.
- Ключ правила — graphic и маска hue в Default. Повторный вызов заменяет количество и остальные поля этого правила; он не добавляет ещё один лимит поверх предыдущего. Без цены/имени прежние ограничения этих полей снимаются.
- Новое/обновлённое правило Enabled=true. Общий переключатель покупки/продажи устанавливается по наличию правил, профиль сохраняется. Сам выключенный Default-список автоматически не включается: в настройках должны быть включены и общий режим, и список. Другие именованные списки не изменяются.
- Обработка начинается при поступлении списка товаров. Лимит расходуется суммарно по строкам, сопоставленным одному правилу. Для каждой позиции используется первое подходящее включённое правило. Повторное открытие магазина даёт новое предложение и новый лимит, пока правило активно.
- Работает в Full с Bad Newbie; в Classic эта автоматизация отключена. Не подставляйте в параметры имя NPC или название сохранённого списка. AutoBuyEx добавляет фильтры цены/имени при покупке; ClearShopList сбрасывает обе автоматизации целиком.
Ниже описана реализация этого движка. Имена внутренних методов не являются дополнительными командами BASIC.
Читает позиционные аргументы и передаёт их в SetAutoBuyRule либо SetAutoSellRule.
Скрипту возвращается Unit; речь и ожидание не вызываются.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ExecuteLegacyManualAlias.
Находит совпадающее правило 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()
# Проверьте товар перед включением: правило сохраняется в профиле.
UO.Sell(0x0F51)
# Теперь откройте Sell у NPC, который покупает этот предмет.
END SUBРазбор параметров и выполнения:
- 0x0F51 — graphic кинжала, любой hue, 1 — единица за одно предложение. Команда не выбирает конкретный serial и не проверяет полезность/ценность вещи. Выберите точный type/color своего товара.
SUB Main()
# Graphic робы, точный hue 0x0044, до 5 единиц за предложение.
UO.Sell(0x1F03, 0x0044, 5)
# Откройте Sell; роба иного hue не подходит этому правилу.
END SUBРазбор параметров и выполнения:
- 0x1F03 — пример стандартного graphic робы, 0x0044 — пример hue. Замените оба на свой товар. 5 — единицы, не цена; параметры минимальной цены и имени Sell/AutoSell не принимают. Сервер должен включить вещь в предложение продажи.
SUB RemoveSaleRule(itemType, hue)
# Нулевое количество удаляет именно совпадающее правило.
UO.Sell(itemType, hue, 0)
END SUB
SUB Main()
RemoveSaleRule(0x0F51, -1) # Кинжалы любого hue.
RemoveSaleRule(0x1F03, 0x0044) # Только заданная окраска робы.
END SUBРазбор параметров и выполнения:
- Имя процедуры произвольное; itemType и hue — её параметры. Другие правила, покупка и пользовательские именованные списки сохраняются. Если другой включённый список тоже продаёт эти предметы, отключите соответствующее правило в нём через настройки.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь