Skip to content

API UO BookSetPageText

Codex edited this page Sep 19, 2026 · 4 revisions

UO.BookSetPageText

ClassicUO / Basic IDE

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

Writes a page into the currently open editable ModernBookGump, updates the page buffer/UI and sends Send_BookPageData for that page.

Синтаксис

UO.BookSetPageText(Page:Any, Text:Any) -> Unit

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

Параметры

Имя Назначение
Page Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже.
Text page text. Newlines split the text into book lines.

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

Ограничения

Page must be in 1..BookPageCount.

  • A page is limited to ClassicUO's current book-line capacity (10 lines, with the current book control's per-line character limit).
  • Invalid page, too many/too-long lines, read-only book or no open book results in an error and no page update.

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

Примеры

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

Пример 1

SUB Main()
    UO.BookSetPageText(1, 'Line one' + Chr(10) + 'Line two')
END SUB

Пример 2

SUB Main()
    UO.BookSetPageText(1, 'example')
END SUB

Пример 3

SUB Main()
    VAR arg1 = 1 # Page
    VAR arg2 = 'example' # Text
    UO.BookSetPageText(arg1, arg2)
END SUB

Пример 4

SUB ReadResult()
    VAR arg1 = 1 # Page
    VAR arg2 = 'example' # Text
    UO.BookSetPageText(arg1, arg2)
END SUB

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

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

{
                    int page = Math.Max(0, Arg(0) - 1);
                    while (state.BookPages.Count <= page) state.BookPages.Add(string.Empty);
                    state.BookPages[page] = Text(1);
                    bridge.BookSetPageText(page + 1, state.BookPages[page]);
                    return InjectionValue.Unit;
                }

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

Clone this wiki locally