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

UO.UseRec

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() returns 1 while a valid recorded action is available and 0 when none is stored.
  • The historical Script.dll help did not define playback internals; the behavior above is the explicit ClassicUO/Basic compatibility contract.

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

Примеры

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

Пример 1

SUB Main()
    UO.SetRec()
    UO.SetDefault('healbag', 0x40001234)

    IF remain() = 1 THEN
        UO.UseRec()
    END IF
END SUB

Пример 2

SUB Main()
    UO.UseRec()
END SUB

Пример 3

SUB Main()
    IF UO.Connected THEN
        UO.UseRec()
    END IF
END SUB

Пример 4

SUB 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. Действия на игровом сервере этой проверкой не исполняются.

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