-
Notifications
You must be signed in to change notification settings - Fork 0
Shop Lists
Home · Каталоги · API по задачам
UO.Buy · UO.Sell · UO.AutoBuy · UO.AutoBuyEx · UO.AutoSell · UO.ClearShopList · UO.GetShopList · UO.SendShopReply
- Именованные списки Bad Newbie — ваши наборы правил покупки/продажи в настройках профиля. В разделе покупки либо продажи создайте список, задайте имя, добавьте предметы и включите нужные списки. Название набора выбирает пользователь; общего каталога названий для всех нет.
- Правила Buy/AutoBuy и Sell/AutoSell — изменения основного списка (Default). Аргумент name у Buy/AutoBuyEx — фильтр имени товара, НЕ имя списка. Через эти аргументы нельзя выбрать произвольный именованный набор. Новые правила включаются и сохраняются в профиле.
- GetShopList — строки уже открытого окна NPC-продавца, а не список ваших сохранённых правил. Если окна нет, массив пуст. ShopBuyRestock/Rstk — слой 26 продавца, НЕ правило покупки и не функция открытия магазина.
- AllPrice/MassPriceMove — установка цены товарам личного продавца. Это другой сценарий; см. UO.AllPrice и UO.MassPriceMove.
- Настройте список в Bad Newbie либо добавьте правило скриптом ниже.
- Подойдите к NPC-продавцу и откройте его покупку/продажу доступным на сервере способом (контекстное меню или речь).
- При получении предложения автоматизация сопоставляет type, hue, количество, цену и имя с включёнными правилами. Команды настройки сами не открывают магазин и не создают товары.
- Проверяйте результат по изменению содержимого/золота и сообщениям сервера. Unit у команды настройки не является подтверждением сделки.
- type — graphic товара 0..65535, НЕ serial вещи. Отрицательный type отвергается; 65535 здесь конкретная графика, не маска «всё».
- color — hue; -1 или 65535 означает любой цвет. Для точного цвета используйте 0..65534.
- quantity — количество единиц товара; положительное ограничивается 65535. 0/отрицательное удаляет совпадающее правило type+color основного списка, а НЕ означает «купить всё». У Buy/Sell без количества значение 1.
- maxPrice — максимальная цена одной единицы при покупке; 0/отрицательное означает без ограничения цены. Не общая сумма покупки.
- name — необязательная подстрока имени товара без учёта регистра; пустая строка не фильтрует имя. Это НЕ имя списка и не serial продавца.
Повторное правило с теми же type и цветовой маской обновляет существующее. Количество ограничивает общий подбор по этому правилу в одном ответе магазина; это не команда «довести рюкзак до остатка N». Для каждой позиции выбирается первое подходящее включённое правило. Перекрывающиеся правила не суммируют лимиты для одного товара.
SUB Main()
# Black Pearl graphic; any hue; 20 units; at most 5 gold per unit.
UO.Buy(0x0F7A, -1, 20, 5)
# Now open the vendor's Buy window in the game.
END SUB0x0F7A — пример стандартной графики Black Pearl; проверьте type на своём сервере. 20 — единицы, 5 — цена за единицу. Пустой name не накладывает фильтр по тексту. Скрипт сохраняет правило и завершает работу; автоматизация клиента обрабатывает следующее предложение магазина.
SUB Main()
# Example graphic: dagger. Change it to the item you intend to sell.
UO.Sell(0x0F51, -1, 3)
# Open Sell during this example's 15-second window.
TRY
WAIT(15000)
FINALLY
# Zero removes this matching rule, it does not sell everything.
UO.Sell(0x0F51, -1, 0)
END TRY
END SUBПравило относится к 0x0F51 любого цвета; продаётся до 3 единиц по доступному предложению. 15000 — время примера, не подтверждение сделки. Удаление правила не отменяет уже отправленную серверу продажу. Пример перезаписывает существующее совпадающее правило; не используйте его поверх нужного сохранённого правила.
SUB Main()
# Open the Buy or Sell window before running this example.
VAR rows = UO.GetShopList()
IF GetArrayLength(rows) = 0 THEN
UO.Print("No loaded shop rows; open a vendor window")
RETURN
END IF
FOR VAR i = 0 TO GetArrayLength(rows) - 1
UO.Print(rows[i])
NEXT
END SUBКаждая строка имеет поля serial|graphic|hue|amount|price|name. serial — ID позиции текущего окна, graphic/hue — признаки товара, amount — доступное количество, price — цена единицы, name — текстовое имя. В имени может встретиться разделитель: не считайте произвольное число частей новым форматом. Данные действительны для этого окна; GetShopList ничего не покупает и не продаёт.
ClearShopList очищает оба массива правил покупки и продажи и выключает обе автоматизации. Это массовый сброс, не безобидное начало каждого скрипта. Чтобы убрать одно правило, передайте quantity=0 соответствующей Buy/Sell.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь