#============================================================================== # 「メッセージスピード」(ACE) Ver.1.1 # 製作者:奈々(なな) # へぷたなすくろーる http://heptanas.mamagoto.com/ # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # このスクリプトを改変したり、改変したものを配布するなどは自由ですが # その場合も元のスクリプトの作成者として名前は載せて下さい。 # その他、詳しい利用規約はブログを参照して下さい。 # #------------------------------------------------------------------------------ # # デフォルトでは固定の文字表示速度を変更できます。 # (正確には1文字毎のウェイト時間を任意のフレーム数に変更します) # # 使い方は、初期設定のSPEED = nの数値で指定します。 # また、イベントコマンドの「スクリプト」で # 「n7ms(n)」と入力すると、ゲーム中にも変更できます。 # (因みに(n)を省略すると、初期設定の数値に戻せます) # # 更に、メッセージの入力で制御文字「\N7MS[n]」を入力すると # そのページだけ、一時的に速度を変更できます。 # # デフォルトの速度は1で、nでn倍遅く、0だと瞬間表示です。 # 小数も使えるため、0.5だとデフォルトの2倍の早さになります。 # また、マイナスをつけることで「ラインモード」となり # 1文字毎ではなく1行毎に表示するようになります。 # #============================================================================== #◇初期設定 module Nana module MesSpeed SPEED = 1 end end #============================================================================== # ■ Game_System #------------------------------------------------------------------------------ # システム周りのデータを扱うクラスです。セーブやメニューの禁止状態などを保存 # します。このクラスのインスタンスは $game_system で参照されます。 #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :message_speed # メッセージスピード #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias n7ms_initialize initialize def initialize n7ms_initialize @message_speed = Nana::MesSpeed::SPEED end end #============================================================================== # ■ Window_Message #------------------------------------------------------------------------------ # 文章表示に使うメッセージウィンドウです。 #============================================================================== class Window_Message < Window_Base #-------------------------------------------------------------------------- # ● 制御文字の処理 # code : 制御文字の本体部分(「\C[1]」なら「C」) #-------------------------------------------------------------------------- alias n7ms_process_escape_character process_escape_character def process_escape_character(code, text, pos) case code.upcase when 'N7MS' @n7_message_speed = text.to_f return end n7ms_process_escape_character(code, text, pos) end #-------------------------------------------------------------------------- # ● 改ページ処理 #-------------------------------------------------------------------------- alias n7ms_new_page new_page def new_page(text, pos) n7ms_new_page(text, pos) @n7_message_speed = $game_system.message_speed @n7_skip_count = 0 @n7_line_first = true end #-------------------------------------------------------------------------- # ● 改行文字の処理 #-------------------------------------------------------------------------- alias n7ms_process_new_line process_new_line def process_new_line(text, pos) n7ms_process_new_line(text, pos) @n7_line_first = true end #-------------------------------------------------------------------------- # ● 一文字出力後のウェイト #-------------------------------------------------------------------------- def wait_for_one_character update_show_fast ms = @n7_message_speed.abs i = ms.ceil f = ms - ms.to_i @n7_skip_count += f if @n7_skip_count >= 1 i -= 1 @n7_skip_count -= 1 end skip = true if @n7_message_speed < 0 && !@n7_line_first @n7_line_first = false i.times { Fiber.yield unless @show_fast || @line_show_fast || skip } end end #============================================================================== # ■ Game_Interpreter #------------------------------------------------------------------------------ # イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、 # Game_Troop クラス、Game_Event クラスの内部で使用されます。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● メッセージスピード変更 #-------------------------------------------------------------------------- def n7ms(speed = Nana::MesSpeed::SPEED) $game_system.message_speed = speed end end