API UO TargetByResource - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
ClassicUO / Basic IDE
Оглавление · Алфавитный указатель · Targeting
Отправляет серверу пакет «target by resource», нацеливаясь на указанный объект с типом ресурса.
UO.TargetByResource(ObjID:Any, Resource:Any) -> Unit
Регистр имени не важен. Any — динамическое значение Basic; Unit — отсутствие возвращаемого значения. Integer — знаковое 32-битное число, Decimal — число с плавающей точкой. Правила типов, serial, индексов и ожиданий.
| Имя | Назначение |
|---|---|
ObjID |
Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже. |
Resource |
Resource enum: 0=ore, 1=sand, 2=wood, 3=graves, 4=red mushrooms; supported string aliases are accepted by the runtime compatibility parser. |
Параметры обязательны внутри каждой показанной сигнатуры. Опустить аргумент можно только при наличии более короткой перегрузки; пропуск позиции посередине не подразумевается.
Возвращает: Unit — значения нет. Выполняйте вызов отдельной строкой; его нельзя использовать как проверку успеха. Эффект и ограничения зависят от команды.
Каждый блок — самостоятельный скрипт из мануала проекта. Параметры демонстрационного объекта/контейнера и условия действия необходимо сопоставить с вашей игровой ситуацией.
SUB Main()
UO.TargetByResource(self, 0)
END SUBSUB Main()
UO.TargetByResource(1, 2)
END SUBSUB Main()
VAR arg1 = 1 # ObjID
VAR arg2 = 2 # Resource
UO.TargetByResource(arg1, arg2)
END SUBSUB ReadResult()
VAR arg1 = 1 # ObjID
VAR arg2 = 2 # Resource
UO.TargetByResource(arg1, arg2)
END SUB
SUB Main()
ReadResult()
END SUBРеализация и проверка контракта
InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass38_0.<RegisterStealthCompatibility>b__0
Соответствующая ветвь совместимого обработчика в InjectionApiUO.cs. Arg(i)/Text(i) читают позицию с нуля; bridge обращается к клиенту. Прямые типизированные перегрузки перечислены выше и могут иметь отдельный маршрут.
{
int found = bridge.FindType(Arg(1), -1, 0, -1, true);
if (found != 0) { bridge.WaitTargetObject(Arg(0)); bridge.UseObject(found); }
return InjectionValue.Unit;
}Источник реестра и отчёт сверки. Примеры проверяются загрузчиком/парсером включённого runtime. Действия на игровом сервере этой проверкой не исполняются.