#==============================================================================
# 「メッセージスピード」(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