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

UO.SetRec

ClassicUO / Basic IDE

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

UO.SetRec() is the one-shot recorder. It clears the previous recording, arms capture, then lets the next compatible legacy UO.* command execute normally while storing the command name together with its typed arguments. The recorder disarms immediately after that one capture; UO.UseRec() replays the saved action.

Синтаксис

UO.SetRec() -> Unit

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

Допустимые значения

None; this command's registered overload takes no positional arguments.

Пропущенные аргументы

No parameters; no argument defaults apply.

Ограничения

Recording is one-shot: after one compatible command is captured, the recorder automatically disarms.

  • UO.SetRec() and UO.UseRec() themselves are never captured.
  • The stored command is kept in Basic runtime state and survives the normal runtime-state snapshot/restore path.
  • remain() returns 0 immediately after UO.SetRec() and 1 after a command has been captured.
  • This behavior is a documented ClassicUO/Basic compatibility definition because no authoritative public Script.dll implementation of the historical semantics is available.

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

Примеры

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

Пример 1

SUB Main()
    UO.SetRec()
    UO.SetDefault('healbag', 0x40001234)  # executes and is recorded
    IF remain() = 1 THEN
        UO.UseRec()                       # repeats SetDefault with the same arguments
    END IF
END SUB

Пример 2

SUB Main()
    UO.SetRec()
END SUB

Пример 3

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

Пример 4

SUB RunAction()
    UO.SetRec()
END SUB

SUB Main()
    # Запуск процедуры выполняет действие:
    RunAction()
END SUB
Реализация и проверка контракта
  • InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass62_0.<RegisterLegacyManualAliases>b__1

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

state.RecordedAction = string.Empty;
                    recordNextLegacyAction = true;
                    break;

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

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