API UO Target - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
ClassicUO / Basic IDE
Оглавление · Алфавитный указатель · Targeting
Разные перегрузки выполняют разные операции. Target() отменяет текущий/подготовленный target. Target(object) ставит объект в очередь, как WaitTargetObject. Target(targetKey,target) отправляет протокольный ответ с явным идентификатором прицела; target может быть serial, именованным объектом или строкой 'lasttile'. Семь аргументов задают targetKey, объект, targetType, graphic/type, x,y,z; targetType=0 — объект, 1 — клетка. Для обычного скрипта предпочтительны WaitTargetObject/WaitTargetTile: targetKey для низкоуровневой формы должен соответствовать серверному запросу.
UO.Target() -> Unit
UO.Target(object:Any) -> Unit
UO.Target(targetKey:Any, target:Any) -> Unit
UO.Target(targetKey:Any, target:Any, targetType:Any, type:Any, x:Any, y:Any, z:Any) -> Unit
Регистр имени не важен. Any — динамическое значение Basic; Unit — отсутствие возвращаемого значения. Integer — знаковое 32-битное число, Decimal — число с плавающей точкой. Правила типов, serial, индексов и ожиданий.
| Имя | Назначение |
|---|---|
object |
Serial или имя загруженного объекта. |
targetKey |
Идентификатор серверного запроса target. Это не serial выбранного объекта. |
target |
Serial/именованный объект; в двухаргументной форме допустим lasttile. |
targetType |
Тип протокольной цели: 0 — объект, 1 — клетка. |
type |
Graphic ID, 0–65535. |
x |
X игровой клетки. |
y |
Y игровой клетки. |
z |
Высота -128…127. |
Параметры обязательны внутри каждой показанной сигнатуры. Опустить аргумент можно только при наличии более короткой перегрузки; пропуск позиции посередине не подразумевается.
Возвращает: Unit — значения нет. Выполняйте вызов отдельной строкой; его нельзя использовать как проверку успеха. Эффект и ограничения зависят от команды.
Каждый блок — самостоятельный скрипт из мануала проекта. Параметры демонстрационного объекта/контейнера и условия действия необходимо сопоставить с вашей игровой ситуацией.
SUB Main()
UO.Target()
END SUBSUB Main()
UO.Target(self)
END SUBSUB Main()
IF UO.WaitForTarget(3000) THEN
UO.Target(UO.TargetID(), self)
END IF
END SUBSUB Main()
VAR arg1 = 1 # targetKey
VAR arg2 = self # target
VAR arg3 = 3 # targetType
VAR arg4 = 0x0EED # type
VAR arg5 = UO.GetX() # x
VAR arg6 = UO.GetY() # y
VAR arg7 = UO.GetZ() # z
UO.Target(arg1, arg2, arg3, arg4, arg5, arg6, arg7)
END SUBSUB Main()
UO.Target(self)
END SUBSUB Main()
UO.Target(1, self)
END SUBSUB Main()
IF UO.Connected THEN
UO.Target()
END IF
END SUBSUB RunAction()
UO.Target()
END SUB
SUB Main()
# Запуск процедуры выполняет действие:
RunAction()
END SUBРеализация и проверка контракта
InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass62_0.<RegisterLegacyManualAliases>b__1InjectionScript.Runtime.InjectionApiUO.Target
Соответствующая ветвь совместимого обработчика в InjectionApiUO.cs. Arg(i)/Text(i) читают позицию с нуля; bridge обращается к клиенту. Прямые типизированные перегрузки перечислены выше и могут иметь отдельный маршрут.
if (arguments.Length > 0) WaitTargetObject(arguments[0].ToString());
else CancelTarget();
break;Источник реестра и отчёт сверки. Примеры проверяются загрузчиком/парсером включённого runtime. Действия на игровом сервере этой проверкой не исполняются.