=begin ◆概要 ステータス画面に詳細な説明文を表示することができます。 ◆機能 ・アクターのメモ欄に<説明文>で文章を挟むと、ステータス画面で Aボタン(Shiftキー)を押したときにその文章が表示されます。 例: <説明文> 数々の戦場を渡り歩き、生き延びてきた歴戦の傭兵。普段は 温厚だが、ひとたび戦いが始まれば狂戦士と化す。 ・名前ブロックと顔グラフィックブロックだけは設定項目で表示/非表示を切り替え られます。 ◆仕様 ・顔グラフィックだけを表示することはできません。そこはもういじるしかない。 ◆使用上の注意 ・●……再定義 ★……エイリアス =end module SAP # 設定項目:名前ブロックを描画する DRAW_NAME_BLOCK = true # 設定項目:顔グラブロックを描画する DRAW_FACE_BLOCK = false end class Game_Actor def description2 return @description2 if @description2 @flag = false; @description2 = "" actor.note.each_line{|line| @flag = false if line =~ /<\/説明文>/ @description2 += line if @flag @flag = true if line =~ /<説明文>/ } @description2 end end #============================================================================== # ■ Window_Status #============================================================================== class Window_Status < Window_Selectable #-------------------------------------------------------------------------- # ● 決定やキャンセルなどのハンドリング処理 #-------------------------------------------------------------------------- def process_handling return unless open? && active if Input.trigger?(:A) return eval("Sound.play_cursor; @page_change ^= true; refresh") end super end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- alias sap_refresh refresh def refresh if @page_change contents.clear; y = 0 if SAP::DRAW_NAME_BLOCK draw_block1(y); draw_horz_line(y + line_height*1); y += line_height * 2 end if SAP::DRAW_FACE_BLOCK draw_block2(y); draw_horz_line(y + line_height*4); y += line_height * 5 end draw_text_ex(4, y, @actor.description2) else sap_refresh end end end