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

UO.MoveItems

ClassicUO / Basic IDE

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

Перемещает все предметы с указанным типом и цветом из контейнера-источника в контейнер-получатель.

Синтаксис

UO.MoveItems(Container:Any, ItemsType:Any, ItemsColor:Any, MoveIntoID:Any, X:Any, Y:Any, Z:Any, DelayMS:Any) -> Any

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

Параметры

Имя Назначение
Container Идентификатор объекта/контейнера или селектор, указанный в описании команды. 0 и -1 не являются универсальными заменителями serial.
ItemsType Object/mobile/item serial. Use 0 only when the command explicitly documents 0 as a sentinel.
ItemsColor Object/mobile/item serial. Use 0 only when the command explicitly documents 0 as a sentinel.
MoveIntoID Container/object destination. Use backpack/ground/self/saved object name or a valid hexadecimal/decimal serial where that overload permits it.
X World/tile X coordinate.
Y World/tile Y coordinate.
Z World/tile Z coordinate.
DelayMS Delay/timeout in milliseconds; use a non-negative integer (for example 3000 = 3 seconds).

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

Примеры

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

Пример 1

SUB Main()
    VAR result = UO.MoveItems(backpack, 0x0190, -1, self, UO.GetX(self), UO.GetY(self), UO.GetZ(self), 1000)
END SUB

Пример 2

SUB Main()
    VAR result = UO.MoveItems(backpack, 2, 3, 4, UO.GetX(), UO.GetY(), UO.GetZ(), 100)
    UO.Print(CStr(result))
END SUB

Пример 3

SUB Main()
    VAR arg1 = backpack # Container
    VAR arg2 = 2 # ItemsType
    VAR arg3 = 3 # ItemsColor
    VAR arg4 = 4 # MoveIntoID
    VAR arg5 = UO.GetX() # X
    VAR arg6 = UO.GetY() # Y
    VAR arg7 = UO.GetZ() # Z
    VAR arg8 = 100 # DelayMS
    VAR result = UO.MoveItems(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)
    UO.Print(CStr(result))
END SUB

Пример 4

SUB ReadResult()
    VAR arg1 = backpack # Container
    VAR arg2 = 2 # ItemsType
    VAR arg3 = 3 # ItemsColor
    VAR arg4 = 4 # MoveIntoID
    VAR arg5 = UO.GetX() # X
    VAR arg6 = UO.GetY() # Y
    VAR arg7 = UO.GetZ() # Z
    VAR arg8 = 100 # DelayMS
    VAR result = UO.MoveItems(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)
    UO.Print(CStr(result))
END SUB

SUB Main()
    ReadResult()
END SUB
Реализация и проверка контракта
  • InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass38_0.<RegisterStealthCompatibility>b__0

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

return new InjectionValue(bridge.MoveItems(Arg(0), Arg(1), Arg(2), Arg(3), Arg(4), Arg(5), Arg(6), Arg(7)));

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

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