メッセージ表示で新たな制御文字が使えるようになるスクリプトです。
上記のメッセージは、以下のテキストを元に生成されています。
\FB\CRGB[255,0,0]テストテキスト!\CR\FB ダイスの目は「\FI\#{rand(6)+1}\FI」です。 \CRGB[255,255,255,96]\ORGB[255,255,0,96]だからどうしたってほどでもないけど\CR
追加制御文字
制御文字 | 説明 |
---|---|
\CRGB[R,G,B,A] | 文字の色をRGBとアルファ値で指定し変更します。 アルファ値は省略可能。 例: \CRGB[255,0,0] |
\ORGB[R,G,B,A] | 文字の縁取りの色をRGBとアルファ値で指定し変更します。 アルファ値は省略可能。 例: \ORGB[255,0,0,128] |
\CR | 文字の色、文字の縁取りの色をデフォルトへリセットします。 |
\FB | 文字の太字状態を切り替えます。 例: \FB強調\FB |
\FI | 文字の斜体状態を切り替えます。 例: \FI傾く文字\FI |
\#{ "script_code" } | { } 内の文字をスクリプトとして実行し、 実行結果をテキストとして表示します。 例: \#{rand(6)+1} 1~6のランダムな数字 |
更新履歴 | 内容 |
---|---|
2023/08/27 | 初版 |
→スクリプト一覧へ
↓スクリプト(ダブルクリックで全選択)↓
=begin ========================================================================= ■ 「メッセージ制御文字追加」- CustomMessageText by 地上の洞窟 ================================================================================ メッセージの制御文字に新たな機能を追加します。 ================================================================================ ■ 使用例 ================================================================================ \FB\CRGB[255,0,0]テストテキスト!\CR\FB ダイスの目は「\FI\#{rand(6)+1}\FI」です。 \CRGB[255,255,255,96]\ORGB[255,255,0,96]だからどうしたってほどでもないけど\CR ================================================================================ ■ 制御文字一覧 ================================================================================ ・\CRGB[R,G,B,A] 文字の色をRGBとアルファ値で指定し変更します。 アルファ値は省略可能。 例: \CRGB[255,0,0] ・\ORGB[R,G,B,A] 文字の縁取りの色をRGBとアルファ値で指定し変更します。 アルファ値は省略可能。 例: \ORGB[255,0,0,128] ・\CR 文字の色、文字の縁取りの色をデフォルトへリセットします。 ・\FB 文字の太字状態を切り替えます。 例: \FB強調\FB ・\FI 文字の斜体状態を切り替えます。 例: \FI傾く文字\FI ・\#{ "script_code" } { } 内の文字をスクリプトとして実行し、実行結果をテキストとして表示します。 例: \#{rand(6)+1} 1~6のランダムな数字 ================================================================================ ■ 設定項目 =end #========================================================================== module CustomMessageText # TAG_COLOR_RGB : 文字色変更に使う制御文字を設定します。 TAG_COLOR_RGB = 'CRGB' # TAG_COLOR_RGB_OUTLINE : 文字の縁取りの色の変更に使う制御文字を設定します。 TAG_COLOR_RGB_OUTLINE = 'ORGB' # TAG_COLOR_RESET : 文字色・縁取り色リセットに使う制御文字を設定します。 TAG_COLOR_RESET = 'CR' # TAG_FONT_BOLD : 文字の太字の切り替えに使う制御文字を設定します。 TAG_FONT_BOLD = 'FB' # TAG_FONT_ITALIC : 文字の斜体の切り替えに使う制御文字を設定します。 TAG_FONT_ITALIC = 'FI' #============================================================================== # ■ ここからソースコード #============================================================================== COLOR_RGB_REGEXP = /^\[(.*?)\]/ INTERPOLATION_REGEXP = /\e\#\{(.*?)\}/ SPLIT_CHAR = "," DEFAULT_OUT_COLOR = Font.new.out_color end class Window_Base < Window alias cmt_process_escape_character process_escape_character def process_escape_character(code, text, pos) case code.upcase when CustomMessageText::TAG_COLOR_RGB text.slice!(CustomMessageText::COLOR_RGB_REGEXP) change_color(Color.new(*$1.split(CustomMessageText::SPLIT_CHAR).map(&:to_i))) when CustomMessageText::TAG_COLOR_RGB_OUTLINE text.slice!(CustomMessageText::COLOR_RGB_REGEXP) contents.font.out_color = Color.new(*$1.split(CustomMessageText::SPLIT_CHAR).map(&:to_i)) when CustomMessageText::TAG_COLOR_RESET change_color(normal_color) contents.font.out_color = CustomMessageText::DEFAULT_OUT_COLOR when CustomMessageText::TAG_FONT_BOLD contents.font.bold = !contents.font.bold when CustomMessageText::TAG_FONT_ITALIC contents.font.italic = !contents.font.italic end cmt_process_escape_character(code, text, pos) end alias cmt_convert_escape_characters convert_escape_characters def convert_escape_characters(text) result = cmt_convert_escape_characters(text) result.gsub!(CustomMessageText::INTERPOLATION_REGEXP) { eval($1, TOPLEVEL_BINDING).to_s } result end end