-
Notifications
You must be signed in to change notification settings - Fork 0
API UO BookSetPageText ja
ClassicUO / Basic IDE
開いている編集可能な本の1ページを書き換えます。
UO.BookSetPageText(Page:Any, Text:Any) -> Unit
-
Page— 1から始まるページ番号です。本のIDではありません。総ページ数はサーバーが指定します。 -
Text— 文字列。Chr(10)は改行、Chr(13)は削除されます。1ページ10行、1行53文字まで。NULは使用できません。
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はローカル検査と呼び出しの実行を表すだけで、サーバー保存の確認ではありません。
# 直接使用
#
# 開いている編集可能な本の1ページを書き換えます。
#
# Unit:戻り値なし。書き込み要求であり、TRUE/FALSEやサーバーの完了確認ではありません。サーバーは編集を拒否できます。
SUB Main()
# 対象の本が開かれ、必要なページを受信済みで、書き込み時は編集可能であることが前提です。1、2、3はページ番号です。存在を確認してください。名前と本文は例です。
UO.BookSetPageText(2, "Camp A")
END SUBパラメーターと実行の説明:
- 対象の本が開かれ、必要なページを受信済みで、書き込み時は編集可能であることが前提です。1、2、3はページ番号です。存在を確認してください。名前と本文は例です。
# 実用例
#
# 開いている編集可能な本の1ページを書き換えます。
#
# Unit:戻り値なし。書き込み要求であり、TRUE/FALSEやサーバーの完了確認ではありません。サーバーは編集を拒否できます。
SUB Main()
# 対象の本が開かれ、必要なページを受信済みで、書き込み時は編集可能であることが前提です。1、2、3はページ番号です。存在を確認してください。名前と本文は例です。
UO.BookSetPageText(1, "Supplies" + Chr(10) + "Bandages" + Chr(10) + "Food")
END SUBパラメーターと実行の説明:
- 対象の本が開かれ、必要なページを受信済みで、書き込み時は編集可能であることが前提です。1、2、3はページ番号です。存在を確認してください。名前と本文は例です。
# 完全な補助関数
#
# 開いている編集可能な本の1ページを書き換えます。
#
# 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
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь