API UO UseRec - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
ClassicUO / Basic IDE
Оглавление · Алфавитный указатель · Record / Playback
Replays the command and typed arguments stored by the UO.SetRec() recorder through the same legacy compatibility dispatcher. Replay does not consume the recording, so the same action can be executed repeatedly. If no valid recording exists, UO.UseRec() performs no action and reports the missing recording in a connected client.
UO.UseRec() -> Unit
Регистр имени не важен. Any — динамическое значение Basic; Unit — отсутствие возвращаемого значения. Integer — знаковое 32-битное число, Decimal — число с плавающей точкой. Правила типов, serial, индексов и ожиданий.
None; this command's registered overload takes no positional arguments.
No parameters; no argument defaults apply.
Call UO.SetRec(), execute one recordable legacy UO.* command, then call UO.UseRec().
- Replay is guarded against recursive re-recording.
-
remain()returns1while a valid recorded action is available and0when none is stored. - The historical Script.dll help did not define playback internals; the behavior above is the explicit ClassicUO/Basic compatibility contract.
Возвращает: Unit — значения нет. Выполняйте вызов отдельной строкой; его нельзя использовать как проверку успеха. Эффект и ограничения зависят от команды.
Каждый блок — самостоятельный скрипт из мануала проекта. Параметры демонстрационного объекта/контейнера и условия действия необходимо сопоставить с вашей игровой ситуацией.
SUB Main()
UO.SetRec()
UO.SetDefault('healbag', 0x40001234)
IF remain() = 1 THEN
UO.UseRec()
END IF
END SUBSUB Main()
UO.UseRec()
END SUBSUB Main()
IF UO.Connected THEN
UO.UseRec()
END IF
END SUBSUB RunAction()
UO.UseRec()
END SUB
SUB Main()
# Запуск процедуры выполняет действие:
RunAction()
END SUBРеализация и проверка контракта
InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass62_0.<RegisterLegacyManualAliases>b__1
Соответствующая ветвь совместимого обработчика в InjectionApiUO.cs. Arg(i)/Text(i) читают позицию с нуля; bridge обращается к клиенту. Прямые типизированные перегрузки перечислены выше и могут иметь отдельный маршрут.
if (!TryDeserializeRecordedLegacyAction(state.RecordedAction, out string recordedName, out InjectionValue[] recordedArguments))
{
if (bridge != null) SystemMessage("UseRec: no recorded UO action is available. Call UO.SetRec() before the action to record.");
break;
}
replayingLegacyAction = true;
try
{
ExecuteLegacyManualAlias(recordedName, recordedArguments);
}
finally
{
replayingLegacyAction = false;
}
break;Источник реестра и отчёт сверки. Примеры проверяются загрузчиком/парсером включённого runtime. Действия на игровом сервере этой проверкой не исполняются.