Skip to content

API UO BookSetText

Codex edited this page Sep 19, 2026 · 4 revisions

UO.BookSetText

ClassicUO / Basic IDE

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

Updates the currently open editable book rather than only storing a Basic-side string. Without explicit form-feed separators, lines are divided automatically into groups of up to ten lines per page. Each affected page is updated locally and sent to the server.

Синтаксис

UO.BookSetText(Text:Any) -> Unit

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

Параметры

Имя Назначение
Text Значение для данной позиции; назначение и поддерживаемые варианты показаны в описании и примерах.

Параметры обязательны внутри каждой показанной сигнатуры. Опустить аргумент можно только при наличии более короткой перегрузки; пропуск позиции посередине не подразумевается.

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

Text — Quoted BASIC string. Fixed keywords/enums, when present, are listed in Behavior/Notes.

Ограничения

The text must fit the open book's page count and current per-page/per-line limits.

  • A read-only or missing book is not modified.
  • Server validation remains authoritative.

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

Примеры

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

Пример 1

SUB Main()
    UO.BookSetText('First page line 1' + Chr(10) + 'First page line 2')
END SUB

Пример 2

SUB Main()
    UO.BookSetText('example')
END SUB

Пример 3

SUB Main()
    VAR arg1 = 'example' # Text
    UO.BookSetText(arg1)
END SUB

Пример 4

SUB ReadResult()
    VAR arg1 = 'example' # Text
    UO.BookSetText(arg1)
END SUB

SUB Main()
    ReadResult()
END SUB
Реализация и проверка контракта
  • InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass38_0.<RegisterStealthCompatibility>b__0

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

{
                    string bookText = Text(0) ?? string.Empty;
                    state.BookPages.Clear();
                    state.BookPages.AddRange(bookText.Split(new[] { '\f' }, StringSplitOptions.None));
                    bridge.BookSetText(bookText);
                    return InjectionValue.Unit;
                }

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

Clone this wiki locally