Skip to content

API UO BookSetPageText es

Codex edited this page Sep 23, 2026 · 1 revision

UO.BookSetPageText

ClassicUO / Basic IDE

Home · API · Books

Reemplaza una página del libro editable abierto.

Sintaxis exacta

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

Parámetros

  • Page — Número de página desde 1, no ID del libro. El servidor proporciona el total de páginas.
  • Text — Texto: Chr(10) separa líneas y Chr(13) se elimina. Máximo 10 líneas por página y 53 caracteres por línea; no se admite NUL.

Devuelve

Unit: sin valor devuelto. Solicita una escritura; no devuelve TRUE/FALSE ni confirmación del servidor, que puede rechazarla.

Comportamiento

  • Abra primero el libro deseado en el juego. Se usa el último libro abierto, sin argumento ID. Compruebe la selección si hay varios. Get lee datos recibidos y no solicita páginas ausentes.
  • El gestor conserva el libro en la sesión incluso sin gráficos. Cerrar y reabrir la vista mantiene libro y borrador. Cerrar el propio libro lo elimina de los abiertos; desconectar borra los libros del servidor.
  • Solo se escriben libros editables. Se rechazan páginas inválidas o texto excesivo. BookSetText valida todas las páginas antes de enviar: un error posterior no causa escritura parcial.

Funciones internas: de la llamada al resultado

El servidor envía cabecera, número de páginas y contenido. SessionBooks valida el paquete completo, guarda datos y actualiza la vista. Basic elige el último libro mediante el bridge; SessionBook lee líneas o valida y envía cambios. ModernBookGump muestra esos datos y conserva borradores al separar los gráficos.

1. GetOpenBook

Abra primero el libro deseado en el juego. Se usa el último libro abierto, sin argumento ID. Compruebe la selección si hay varios. Get lee datos recibidos y no solicita páginas ausentes.

El gestor conserva el libro en la sesión incluso sin gráficos. Cerrar y reabrir la vista mantiene libro y borrador. Cerrar el propio libro lo elimina de los abiertos; desconectar borra los libros del servidor.

Código del proyecto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; función GetOpenBook.

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

Solo se escriben libros editables. Se rechazan páginas inválidas o texto excesivo. BookSetText valida todas las páginas antes de enviar: un error posterior no causa escritura parcial.

Unit: sin valor devuelto. Solicita una escritura; no devuelve TRUE/FALSE ni confirmación del servidor, que puede rechazarla.

Código del proyecto: src/ClassicUO.Client/Game/Managers/SessionBooks.cs; función SessionBooks.ReceiveHeader/ReceivePages; SessionBook.Yoko*.

La función auxiliar está completa. Su TRUE solo confirma la comprobación local y la llamada, no el almacenamiento en el servidor.

Ejemplos

Uso directo

# Uso directo
#
# Reemplaza una página del libro editable abierto.
#
# Unit: sin valor devuelto. Solicita una escritura; no devuelve TRUE/FALSE ni confirmación del
# servidor, que puede rechazarla.

SUB Main()
    # El libro deseado debe estar abierto, con las páginas necesarias recibidas, y ser editable para
    # escribir. 1, 2 y 3 son páginas que deben existir. Nombres y textos son ejemplos.

    UO.BookSetPageText(2, "Camp A")
END SUB

Explicación de los parámetros y la ejecución:

  • El libro deseado debe estar abierto, con las páginas necesarias recibidas, y ser editable para escribir. 1, 2 y 3 son páginas que deben existir. Nombres y textos son ejemplos.

Caso práctico

# Caso práctico
#
# Reemplaza una página del libro editable abierto.
#
# Unit: sin valor devuelto. Solicita una escritura; no devuelve TRUE/FALSE ni confirmación del
# servidor, que puede rechazarla.

SUB Main()
    # El libro deseado debe estar abierto, con las páginas necesarias recibidas, y ser editable para
    # escribir. 1, 2 y 3 son páginas que deben existir. Nombres y textos son ejemplos.

    UO.BookSetPageText(1, "Supplies" + Chr(10) + "Bandages" + Chr(10) + "Food")
END SUB

Explicación de los parámetros y la ejecución:

  • El libro deseado debe estar abierto, con las páginas necesarias recibidas, y ser editable para escribir. 1, 2 y 3 son páginas que deben existir. Nombres y textos son ejemplos.

Función auxiliar completa

# Función auxiliar completa
#
# Reemplaza una página del libro editable abierto.
#
# Unit: sin valor devuelto. Solicita una escritura; no devuelve TRUE/FALSE ni confirmación del
# servidor, que puede rechazarla.

SUB Main()
    # El libro deseado debe estar abierto, con las páginas necesarias recibidas, y ser editable para
    # escribir. 1, 2 y 3 son páginas que deben existir. Nombres y textos son ejemplos.
    # La función auxiliar está completa. Su TRUE solo confirma la comprobación local y la llamada,
    # no el almacenamiento en el servidor.

    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

Explicación de los parámetros y la ejecución:

  • El libro deseado debe estar abierto, con las páginas necesarias recibidas, y ser editable para escribir. 1, 2 y 3 son páginas que deben existir. Nombres y textos son ejemplos.
  • La función auxiliar está completa. Su TRUE solo confirma la comprobación local y la llamada, no el almacenamiento en el servidor.

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

Clone this wiki locally