API UO Buy - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.Buy

ClassicUO / Basic IDE

Оглавление · Алфавитный указатель · Shops & Vendors

К имени вендора name дописывает ключевое слово покупки из файла injection.ini (обычно это buy) и произносит эту фразу, после чего покупает в меню покупки, которое покажет вендор, вещи согласно списку list.

Синтаксис

UO.Buy(type:Any) -> Unit
UO.Buy(type:Any, color:Any) -> Unit
UO.Buy(type:Any, color:Any, quantity:Any) -> Unit
UO.Buy(type:Any, color:Any, quantity:Any, maxPrice:Any) -> Unit
UO.Buy(type:Any, color:Any, quantity:Any, maxPrice:Any, name:Any) -> Unit

Регистр имени не важен. Any — динамическое значение Basic; Unit — отсутствие возвращаемого значения. Integer — знаковое 32-битное число, Decimal — число с плавающей точкой. Правила типов, serial, индексов и ожиданий.

Параметры

Имя Назначение
type Графика/цвет объекта: десятичное или 0x-число. Маску -1 используйте только в поисковых перегрузках, где она поддерживается.
color Hue/color filter. -1 commonly means any hue where the overload supports wildcard filtering.
quantity Quantity/count. 0 may mean all/default only where explicitly supported.
maxPrice Integer control/count/index value (Integer); exact zero/sentinel meaning is documented by this command.
name Named runtime value (String); use the exact registered/saved name expected by Buy.

Параметры обязательны внутри каждой показанной сигнатуры. Опустить аргумент можно только при наличии более короткой перегрузки; пропуск позиции посередине не подразумевается.

Возвращает: Unit — значения нет. Выполняйте вызов отдельной строкой; его нельзя использовать как проверку успеха. Эффект и ограничения зависят от команды.

Примеры

Каждый блок — самостоятельный скрипт из мануала проекта. Параметры демонстрационного объекта/контейнера и условия действия необходимо сопоставить с вашей игровой ситуацией.

Пример 1

SUB Main()
    VAR result = UO.Buy(0)
END SUB

Пример 2

SUB Main()
    UO.Buy(0x0190, -1, 1, 0, 'example')
END SUB

Пример 3

SUB Main()
    UO.Buy(0x0EED)
END SUB

Пример 4

SUB Main()
    VAR arg1 = 0x0EED # type
    VAR arg2 = -1 # color
    VAR arg3 = 3 # quantity
    VAR arg4 = 4 # maxPrice
    VAR arg5 = 'example' # name
    UO.Buy(arg1, arg2, arg3, arg4, arg5)
END SUB

Пример 5

SUB Main()
    UO.Buy(0x0EED, -1)
END SUB

Пример 6

SUB Main()
    UO.Buy(0x0EED, -1, 3)
END SUB

Пример 7

SUB Main()
    UO.Buy(0x0EED, -1, 3, 4)
END SUB

Пример 8

SUB Main()
    IF UO.Connected THEN
        VAR arg1 = 0x0EED # type
        UO.Buy(arg1)
    END IF
END SUB

Пример 9

SUB RunAction()
    VAR arg1 = 0x0EED # type
    UO.Buy(arg1)
END SUB

SUB Main()
    # Запуск процедуры выполняет действие:
    RunAction()
END SUB
Реализация и проверка контракта
  • InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass62_0.<RegisterLegacyManualAliases>b__1

Соответствующая ветвь совместимого обработчика в InjectionApiUO.cs. Arg(i)/Text(i) читают позицию с нуля; bridge обращается к клиенту. Прямые типизированные перегрузки перечислены выше и могут иметь отдельный маршрут.

bridge.SetAutoBuyRule(Arg(0), arguments.Length > 1 ? Arg(1) : -1, arguments.Length > 2 ? Arg(2) : 1, arguments.Length > 3 ? Arg(3) : 0, arguments.Length > 4 ? Text(4) : string.Empty);
                    break;

Источник реестра и отчёт сверки. Примеры проверяются загрузчиком/парсером включённого runtime. Действия на игровом сервере этой проверкой не исполняются.

⚠️ **GitHub.com Fallback** ⚠️