Skip to content

API UO BookSetHeader zh tw

Codex edited this page Sep 23, 2026 · 1 revision

UO.BookSetHeader

ClassicUO / Basic IDE

Home · API · Books

設定已開啟且可編輯書籍的書名與作者。

完整語法

UO.BookSetHeader(Title:Any, Author:Any) -> Unit

參數

  • Title — 書名:指令與圖形編輯器保留前47字元。
  • Author — 作者:保留前29字元。

傳回值

Unit:沒有回傳值。這是寫入要求,不是TRUE/FALSE或伺服器完成確認;伺服器可能拒絕編輯。

行為

  • 先透過遊戲操作開啟目標書籍。指令選用最後開啟的書,沒有ID參數;多本書時請確認目標。Get只讀取已收到的資料,不會要求缺少的頁面。
  • 管理員即使沒有圖形畫面,也會在工作階段中保存書籍。關閉並重新開啟遊戲視窗會保留書與草稿。關閉書本本身會將其移出已開啟書籍;斷線則清除伺服器書籍。
  • 只有可編輯書籍能寫入。無效頁碼與過長文字會遭拒絕。BookSetText會在傳送前檢查所有頁面,因此後面頁面的錯誤不會導致只寫入一部分。

內部函式:從呼叫到結果

伺服器傳送標頭、頁數與內文。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*.

完整提供輔助函式。其TRUE僅表示本機檢查及呼叫已執行,不代表伺服器已儲存。

範例

直接使用

# 直接使用
#
# 設定已開啟且可編輯書籍的書名與作者。
#
# Unit:沒有回傳值。這是寫入要求,不是TRUE/FALSE或伺服器完成確認;伺服器可能拒絕編輯。

SUB Main()
    # 範例假定目標書已開啟、必要頁面已收到,且寫入時可編輯。1、2、3是頁碼,請確認存在。名稱與文字僅供示例。

    UO.BookSetHeader("Mining route", "Alice")
END SUB

參數與執行說明:

  • 範例假定目標書已開啟、必要頁面已收到,且寫入時可編輯。1、2、3是頁碼,請確認存在。名稱與文字僅供示例。

實用情境

# 實用情境
#
# 設定已開啟且可編輯書籍的書名與作者。
#
# Unit:沒有回傳值。這是寫入要求,不是TRUE/FALSE或伺服器完成確認;伺服器可能拒絕編輯。

SUB Main()
    # 範例假定目標書已開啟、必要頁面已收到,且寫入時可編輯。1、2、3是頁碼,請確認存在。名稱與文字僅供示例。

    VAR route = "Northern mine"
    VAR author = "Alice"
    UO.BookSetHeader("Route: " + route, author)
END SUB

參數與執行說明:

  • 範例假定目標書已開啟、必要頁面已收到,且寫入時可編輯。1、2、3是頁碼,請確認存在。名稱與文字僅供示例。

完整輔助函式

# 完整輔助函式
#
# 設定已開啟且可編輯書籍的書名與作者。
#
# Unit:沒有回傳值。這是寫入要求,不是TRUE/FALSE或伺服器完成確認;伺服器可能拒絕編輯。

SUB Main()
    # 範例假定目標書已開啟、必要頁面已收到,且寫入時可編輯。1、2、3是頁碼,請確認存在。名稱與文字僅供示例。
    # 完整提供輔助函式。其TRUE僅表示本機檢查及呼叫已執行,不代表伺服器已儲存。

    VAR requested = SetNotebookHeader("Supply list", "Alice")
END SUB

FUNCTION SetNotebookHeader(title, author)
    IF Len(title) > 47 OR Len(author) > 29 THEN
        RETURN FALSE
    END IF
    UO.BookSetHeader(title, author)
    RETURN TRUE
END FUNCTION

參數與執行說明:

  • 範例假定目標書已開啟、必要頁面已收到,且寫入時可編輯。1、2、3是頁碼,請確認存在。名稱與文字僅供示例。
  • 完整提供輔助函式。其TRUE僅表示本機檢查及呼叫已執行,不代表伺服器已儲存。

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

Clone this wiki locally