Skip to content

API UO BookSetText uk

Codex edited this page Sep 23, 2026 · 1 revision

UO.BookSetText

ClassicUO / Basic IDE

Home · API · Books

Записує текст із першої сторінки відкритої редагованої книги.

Точний синтаксис

UO.BookSetText(Text:Any) -> Unit

Параметри

  • Text — Текст: Chr(10) розділяє рядки; Chr(13) видаляється. До 10 рядків на сторінку і 53 символів у рядку. Нульовий символ заборонено.

Повертає

Unit — значення немає. Це запит запису, не TRUE/FALSE і не підтвердження сервера. Сервер може заборонити редагування.

Поведінка

  • Спочатку відкрийте потрібну книгу ігровою дією. Команди працюють з останньою відкритою книгою, без аргументу ID. За кількох книг перевірте вибір. Get читає наявні дані й не запитує відсутню сторінку.
  • Менеджер зберігає книгу в сеансі й без графіки. Закриття та повторне відкриття ігрового вікна зберігає книгу й чернетку. Закриття самої книги прибирає її зі списку відкритих; розрив з’єднання скидає серверні книги.
  • Запис дозволений лише для редагованої книги. Неправильні сторінки та завеликий текст відхиляються. BookSetText перевіряє всі сторінки до надсилання: помилка пізнішої сторінки не спричиняє часткового запису.
  • BookSetText: Chr(12) явно розділяє сторінки; без нього кожні 10 рядків утворюють сторінку. Решта старих сторінок лишається: для повної заміни спочатку окремо викличте BookClearText. Порожній текст замінює лише першу сторінку.

Внутрішні функції: від виклику до результату

Сервер надсилає заголовок/кількість сторінок і вміст. SessionBooks повністю перевіряє пакет, зберігає дані й оновлює подання. Basic через bridge вибирає останню книгу; SessionBook читає рядки або перевіряє запис і надсилає книжний пакет. ModernBookGump показує ті самі дані й зберігає чернетку при від’єднанні графіки.

1. GetOpenBook

Спочатку відкрийте потрібну книгу ігровою дією. Команди працюють з останньою відкритою книгою, без аргументу ID. За кількох книг перевірте вибір. Get читає наявні дані й не запитує відсутню сторінку.

Менеджер зберігає книгу в сеансі й без графіки. Закриття та повторне відкриття ігрового вікна зберігає книгу й чернетку. Закриття самої книги прибирає її зі списку відкритих; розрив з’єднання скидає серверні книги.

Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція GetOpenBook.

2. SessionBooks.ReceiveHeader/ReceivePages; SessionBook.Yoko*

Запис дозволений лише для редагованої книги. Неправильні сторінки та завеликий текст відхиляються. BookSetText перевіряє всі сторінки до надсилання: помилка пізнішої сторінки не спричиняє часткового запису.

Unit — значення немає. Це запит запису, не TRUE/FALSE і не підтвердження сервера. Сервер може заборонити редагування.

Код проєкту: src/ClassicUO.Client/Game/Managers/SessionBooks.cs; функція SessionBooks.ReceiveHeader/ReceivePages; SessionBook.Yoko*.

Спочатку відкрийте потрібну книгу ігровою дією. Команди працюють з останньою відкритою книгою, без аргументу ID. За кількох книг перевірте вибір. Get читає наявні дані й не запитує відсутню сторінку.

Приклади

Прямий виклик

# Прямий виклик
#
# Записує текст із першої сторінки відкритої редагованої книги.
#
# Unitзначення немає. Це запит запису, не TRUE/FALSE і не підтвердження сервера. Сервер може
# заборонити редагування.

SUB Main()
    # Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу
    # редагування. 1, 2 і 3номери сторінок, які мають існувати. Назви й текст демонстраційні.

    UO.BookSetText("Mining route" + Chr(10) + "Start at camp")
END SUB

Пояснення параметрів і виконання:

  • Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу редагування. 1, 2 і 3 — номери сторінок, які мають існувати. Назви й текст демонстраційні.

Практичний сценарій

# Практичний сценарій
#
# Записує текст із першої сторінки відкритої редагованої книги.
#
# Unitзначення немає. Це запит запису, не TRUE/FALSE і не підтвердження сервера. Сервер може
# заборонити редагування.

SUB Main()
    # Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу
    # редагування. 1, 2 і 3номери сторінок, які мають існувати. Назви й текст демонстраційні.

    UO.BookSetText("Camp A" + Chr(12) + "Camp B" + Chr(12) + "Return home")
END SUB

Пояснення параметрів і виконання:

  • Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу редагування. 1, 2 і 3 — номери сторінок, які мають існувати. Назви й текст демонстраційні.

Повна допоміжна функція

# Повна допоміжна функція
#
# Записує текст із першої сторінки відкритої редагованої книги.
#
# Unitзначення немає. Це запит запису, не TRUE/FALSE і не підтвердження сервера. Сервер може
# заборонити редагування.

SUB Main()
    # Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу
    # редагування. 1, 2 і 3номери сторінок, які мають існувати. Назви й текст демонстраційні.

    WriteRoute("Northern mine", "Bring bandages")
END SUB

SUB WriteRoute(destination, supplies)
    VAR firstPage = "Destination" + Chr(10) + destination
    VAR secondPage = "Supplies" + Chr(10) + supplies
    UO.BookSetText(firstPage + Chr(12) + secondPage)
END SUB

Пояснення параметрів і виконання:

  • Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу редагування. 1, 2 і 3 — номери сторінок, які мають існувати. Назви й текст демонстраційні.

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Clone this wiki locally