#============================================================================== # ○メッセージウィンドウに歩行グラフィック表示 Ver1.00 # for RGSS2 # 西瓜 / Space not far # http://muspell.raindrop.jp/ # メッセージウィンドウに、フェイスグラフィックの代わりに # 歩行グラフィックを表示します。 #============================================================================== # 文章表示命令の前に、イベントコマンドのスクリプトで # $mes_character = ["ファイル名",歩行グラフィックのインデックス] # または $mes_character = イベントID と記述してください。 # フェイスグラフィックの代わりにそのファイル名、 # またはそのイベントIDの歩行グラフィックが表示されます。 # イベントIDに -1 と書くとプレイヤーの歩行グラフィックが表示されます。 # 普段どおりの表示に戻す場合は $mes_character = nil と記述してください。 # インデックスとは、ファイル内の歩行グラフィックの位置のことです。 # 0 1 2 3 # 4 5 6 7 となっています。 # ファイル一つで一パターンの歩行グラフィック(頭に$がついている)の場合は # インデックスには0を入れてください。 =begin ●設定例 $mes_character = ["Actor1",1]  → ウルリカの歩行グラフィックを表示 $mes_character = -1  → プレイヤーキャラの歩行グラフィックを表示 =end module SNF CONTENTS_X = 56 # メッセージのX座標 # 112にすると、フェイスグラフィック表示時と同じになります。 MESSAGECHARA_X = 24 # 歩行グラフィックのX座標 MESSAGECHARA_Y = 64 #     〃    Y座標 end class Window_Message < Window_Selectable #-------------------------------------------------------------------------- # ● 改ページ処理 #-------------------------------------------------------------------------- def new_page contents.clear if $mes_character == nil if $game_message.face_name.empty? @contents_x = 0 else name = $game_message.face_name index = $game_message.face_index draw_face(name, index, 0, 0) @contents_x = 112 end else unless $mes_character.class == Array # 配列かどうか識別 character_name = Game_Interpreter.new.get_character($mes_character).character_name character_index = Game_Interpreter.new.get_character($mes_character).character_index else character_name = $mes_character[0] character_index = $mes_character[1] end draw_character(character_name, character_index, SNF::MESSAGECHARA_X, SNF::MESSAGECHARA_Y) @contents_x = SNF::CONTENTS_X end @contents_y = 0 @line_count = 0 @show_fast = false @line_show_fast = false @pause_skip = false contents.font.color = text_color(0) end #-------------------------------------------------------------------------- # ● 改行処理 #-------------------------------------------------------------------------- alias snf_charamessage_new_line new_line def new_line snf_charamessage_new_line unless $mes_character == nil @contents_x = SNF::CONTENTS_X end end #-------------------------------------------------------------------------- # ● 数値入力の開始 #-------------------------------------------------------------------------- alias snf_charamessage_start_number_input start_number_input def start_number_input snf_charamessage_start_number_input unless $mes_character == nil @number_input_window.x = x + SNF::CONTENTS_X end end #-------------------------------------------------------------------------- # ● カーソルの更新 #-------------------------------------------------------------------------- def update_cursor if @index >= 0 x = $game_message.face_name.empty? ? 0 : 112 x = SNF::CONTENTS_X unless $mes_character == nil y = ($game_message.choice_start + @index) * WLH self.cursor_rect.set(x, y, contents.width - x, WLH) else self.cursor_rect.empty end end end