-
Notifications
You must be signed in to change notification settings - Fork 0
API UO BookSetPageText uk
ClassicUO / Basic IDE
Замінює текст сторінки відкритої редагованої книги.
UO.BookSetPageText(Page:Any, Text:Any) -> Unit
-
Page— Номер сторінки від 1, не serial книги. Кількість сторінок визначає сервер. -
Text— Текст: Chr(10) розділяє рядки; Chr(13) видаляється. До 10 рядків на сторінку і 53 символів у рядку. Нульовий символ заборонено.
Unit — значення немає. Це запит запису, не TRUE/FALSE і не підтвердження сервера. Сервер може заборонити редагування.
- Спочатку відкрийте потрібну книгу ігровою дією. Команди працюють з останньою відкритою книгою, без аргументу ID. За кількох книг перевірте вибір. Get читає наявні дані й не запитує відсутню сторінку.
- Менеджер зберігає книгу в сеансі й без графіки. Закриття та повторне відкриття ігрового вікна зберігає книгу й чернетку. Закриття самої книги прибирає її зі списку відкритих; розрив з’єднання скидає серверні книги.
- Запис дозволений лише для редагованої книги. Неправильні сторінки та завеликий текст відхиляються. BookSetText перевіряє всі сторінки до надсилання: помилка пізнішої сторінки не спричиняє часткового запису.
Сервер надсилає заголовок/кількість сторінок і вміст. SessionBooks повністю перевіряє пакет, зберігає дані й оновлює подання. Basic через bridge вибирає останню книгу; SessionBook читає рядки або перевіряє запис і надсилає книжний пакет. ModernBookGump показує ті самі дані й зберігає чернетку при від’єднанні графіки.
Спочатку відкрийте потрібну книгу ігровою дією. Команди працюють з останньою відкритою книгою, без аргументу ID. За кількох книг перевірте вибір. Get читає наявні дані й не запитує відсутню сторінку.
Менеджер зберігає книгу в сеансі й без графіки. Закриття та повторне відкриття ігрового вікна зберігає книгу й чернетку. Закриття самої книги прибирає її зі списку відкритих; розрив з’єднання скидає серверні книги.
Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція GetOpenBook.
Запис дозволений лише для редагованої книги. Неправильні сторінки та завеликий текст відхиляються. BookSetText перевіряє всі сторінки до надсилання: помилка пізнішої сторінки не спричиняє часткового запису.
Unit — значення немає. Це запит запису, не TRUE/FALSE і не підтвердження сервера. Сервер може заборонити редагування.
Код проєкту: src/ClassicUO.Client/Game/Managers/SessionBooks.cs; функція SessionBooks.ReceiveHeader/ReceivePages; SessionBook.Yoko*.
Допоміжну функцію наведено повністю. Її TRUE означає лише виконання локальної перевірки й виклику, а не підтвердження запису сервером.
# Прямий виклик
#
# Замінює текст сторінки відкритої редагованої книги.
#
# Unit — значення немає. Це запит запису, не TRUE/FALSE і не підтвердження сервера. Сервер може
# заборонити редагування.
SUB Main()
# Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу
# редагування. 1, 2 і 3 — номери сторінок, які мають існувати. Назви й текст демонстраційні.
UO.BookSetPageText(2, "Camp A")
END SUBПояснення параметрів і виконання:
- Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу редагування. 1, 2 і 3 — номери сторінок, які мають існувати. Назви й текст демонстраційні.
# Практичний сценарій
#
# Замінює текст сторінки відкритої редагованої книги.
#
# Unit — значення немає. Це запит запису, не TRUE/FALSE і не підтвердження сервера. Сервер може
# заборонити редагування.
SUB Main()
# Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу
# редагування. 1, 2 і 3 — номери сторінок, які мають існувати. Назви й текст демонстраційні.
UO.BookSetPageText(1, "Supplies" + Chr(10) + "Bandages" + Chr(10) + "Food")
END SUBПояснення параметрів і виконання:
- Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу редагування. 1, 2 і 3 — номери сторінок, які мають існувати. Назви й текст демонстраційні.
# Повна допоміжна функція
#
# Замінює текст сторінки відкритої редагованої книги.
#
# Unit — значення немає. Це запит запису, не TRUE/FALSE і не підтвердження сервера. Сервер може
# заборонити редагування.
SUB Main()
# Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу
# редагування. 1, 2 і 3 — номери сторінок, які мають існувати. Назви й текст демонстраційні.
# Допоміжну функцію наведено повністю. Її TRUE означає лише виконання локальної перевірки й
# виклику, а не підтвердження запису сервером.
VAR requested = AppendNote(1, "Return before night")
END SUB
FUNCTION AppendNote(page, line)
IF Len(line) > 53 THEN
RETURN FALSE
END IF
VAR previous = UO.BookGetPageText(page)
IF previous = "" THEN
UO.BookSetPageText(page, line)
RETURN TRUE
END IF
VAR lineCount = 1
FOR VAR index = 1 TO Len(previous)
IF Mid(previous, index, 1) = Chr(10) THEN
lineCount = lineCount + 1
END IF
NEXT
IF lineCount >= 10 THEN
RETURN FALSE
END IF
UO.BookSetPageText(page, previous + Chr(10) + line)
RETURN TRUE
END FUNCTIONПояснення параметрів і виконання:
- Приклади потребують уже відкритої книги та отриманих сторінок; запис потребує дозволу редагування. 1, 2 і 3 — номери сторінок, які мають існувати. Назви й текст демонстраційні.
- Допоміжну функцію наведено повністю. Її TRUE означає лише виконання локальної перевірки й виклику, а не підтвердження запису сервером.
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь