#==============================================================================
# 「ロングメッセージ」(ACE) ver1.1 by奈々
#
# ◇使用規約
# 使用される場合はスクリプト作成者として「奈々」を明記して下さい。
# このスクリプトを改変したり、改変したものを配布するなどは自由ですが
# その場合も元のスクリプトの作成者として名前は載せて下さい。
#
#------------------------------------------------------------------------------
#
# デフォルトでは4行で固定の「文章の表示」を好きな行に可変させます。
# (ロングメッセージと言いつつ、ショートメッセージも作れます)
# また「文章のスクロール表示」を使って長いテキストを1回で入力できます。
#
# 可変行の使い方は、初期設定で指定したIDの変数を操作するだけです。
# 変数に0が入っているときはデフォルトの4行で表示されます。
#
# イベントコマンド「显示文字」第一行「header」写进去
# その直後に「文章のスクロール表示」を置くことで
# スクロール表示ではなく、通常の文章の表示として使用できます。
# (顔グラや表示位置などの設定はheaderのものが適用される)
# 他のイベントコマンド(注釈含む)が間に入っていると機能しませんので注意。
#
#==============================================================================
# ◇初期設定
module NanaSeven
LONG_TEXT_VAR = 17 # 显示文字行数 更改变量的ID
# 0为无效化
end
#==============================================================================
# ■ Window_Message
#------------------------------------------------------------------------------
# 文章表示に使うメッセージウィンドウです。
#==============================================================================
class Window_Message < Window_Base
#--------------------------------------------------------------------------
# ● 表示行数の取得
#--------------------------------------------------------------------------
def visible_line_number
if $game_variables[NanaSeven::LONG_TEXT_VAR] > 0
return $game_variables[NanaSeven::LONG_TEXT_VAR]
else
return 4
end
end
end
#==============================================================================
# ■ Game_Interpreter
#------------------------------------------------------------------------------
# イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
# Game_Troop クラス、Game_Event クラスの内部で使用されます。
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 文章の表示(再定義)
#--------------------------------------------------------------------------
def command_101
wait_for_message
SceneManager.scene.create_message_window
$game_message.face_name = @params[0]
$game_message.face_index = @params[1]
$game_message.background = @params[2]
$game_message.position = @params[3]
while next_event_code == 401 # 文章データ
@index += 1
header = (@list[@index].parameters[0] == "header")
$game_message.add(@list[@index].parameters[0]) unless header
end
while next_event_code == 105
@index += 1 if header
end
while next_event_code == 405
if header
@index += 1
$game_message.add(@list[@index].parameters[0])
end
end
case next_event_code
when 102 # 選択肢の表示
@index += 1
setup_choices(@list[@index].parameters)
when 103 # 数値入力の処理
@index += 1
setup_num_input(@list[@index].parameters)
when 104 # アイテム選択の処理
@index += 1
setup_item_choice(@list[@index].parameters)
end
wait_for_message
end
end