=begin RGSS3 VX風バトルログ+ Ver.1.01 mo-to 2012/02/07 TKOOL COOL http://mototkool.blog.fc2.com/ ★使用法★ スクリプトの▼ 素材 以下 ▼ メイン 以上にこれをコピーして張り付ける。 再定義を多用していますので上部挿入推薦 カスタマイズポインツを弄っていろいろと調整できます。 VXデフォ戦闘のようなシンプルにしたい場合は真偽値をすべてfalseにしてみてください。 ★概要★ 戦闘中のバトルログをVX風に変更します。 ★注意・仕様★ バトルイベントなどで文章表示を中・上に指定しても必ず下に表示される。 同じく文章背景も透明化のみ。 ★更新履歴★ ver.0.01 最低限の機能で公開 ver.1.00 カスタマイズ機能を実装し正式版へ      ソースの見直し修正      戦闘中のゴールドウィンドウ位置の変更 ver.1.01 簡易ステータスのサイズ変更      簡易ステータスの座標、透明度をカスタマイズ出来るようにした。       =end #============================================================================== # ★ カスタマイズポインツ #============================================================================== module MOTO SIMPLE_STATUS_WINDOW = true #true:上部に簡易ステータス表示 false:なし #↓上のカスタマイズでtrueを選んだときのみいじること TP_GAGE = true #true:TPゲージを表示 false:なし SIMPLE_STATUS_X = 0 #簡易ステータスのX座標 SIMPLE_STATUS_Y = 0 #簡易ステータスのY座標 OPACITY = 200 #簡易ステータスの透明度(0〜255,0で完全に透明) PARTY_COMMAND_RIGHT = true #true:パーティコマンドを右側に表示 false:デフォ ACTOR_COMMAND_LEFT = false #true:アクターコマンドを左側に表示 false:デフォ end #============================================================================== # ☆ Window_Battle_Message #------------------------------------------------------------------------------ #  戦闘中の文章表示に使う位置固定・透明化されたメッセージウィンドウです。 #============================================================================== class Window_Battle_Message < Window_Message #-------------------------------------------------------------------------- # ☆ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super self.x = 0 self.y = Graphics.height - height self.z = 210 self.opacity = 0 end #-------------------------------------------------------------------------- # ☆ ウィンドウ背景透明化に固定 #-------------------------------------------------------------------------- def update_background self.opacity = 0 end #-------------------------------------------------------------------------- # ☆ メッセージウィンドウ固定とゴールドウィンドウ位置の変更 #-------------------------------------------------------------------------- def update_placement @gold_window.x = 0 @gold_window.y = (Graphics.height - height) - @gold_window.height end end #============================================================================== # ☆ Window_Simple_Status #============================================================================== #  戦闘中に上部へ表示する簡易式のステータスウィンドウです。 #============================================================================== class Window_Simple_Status < Window_Base #-------------------------------------------------------------------------- # ☆ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize x = MOTO::SIMPLE_STATUS_X y = MOTO::SIMPLE_STATUS_Y width = $game_party.members.size * 136 width = 136 if $game_party.members.size == 0 hight = MOTO::TP_GAGE ? 96 : 81 super(x, y, width, hight) self.openness = 0 self.opacity = MOTO::OPACITY refresh end #-------------------------------------------------------------------------- # ☆ ウィンドウ内容の作成 #-------------------------------------------------------------------------- def create_contents self.contents.dispose self.contents = Bitmap.new((512 / 8 * $game_party.members.size), height - 32) end #-------------------------------------------------------------------------- # ☆ リフレッシュ #-------------------------------------------------------------------------- def refresh create_contents draw_contents width_refresh end #-------------------------------------------------------------------------- # ☆ ウィンドウ内容の描画 #-------------------------------------------------------------------------- def draw_contents self.contents.clear return if $game_party.members.size == 0 for i in 0...$game_party.members.size actor = $game_party.members[i] actor_x = i * 512 / 8 contents.font.size = 18 draw_actor_name(actor, actor_x, 0, 56) draw_actor_hp(actor, actor_x, 14, 62) draw_actor_mp(actor, actor_x, 28, 62) draw_actor_tp(actor, actor_x, 42, 62) if MOTO::TP_GAGE end end #-------------------------------------------------------------------------- # ☆ ウィンドウ幅の調整 #-------------------------------------------------------------------------- def width_refresh self.width = self.contents.width + 32 end end class Window_BattleLog < Window_Selectable #-------------------------------------------------------------------------- # ● オブジェクト初期化 ※再定義 #-------------------------------------------------------------------------- def initialize super(0, 295, window_width, window_height) self.z = 200 @lines = [] @num_wait = 0 create_back_bitmap create_back_sprite refresh end #-------------------------------------------------------------------------- # ● 最大行数の取得 ※再定義 #-------------------------------------------------------------------------- def max_line_number return 4 end #-------------------------------------------------------------------------- # ● 背景の不透明度を取得 ※再定義 #-------------------------------------------------------------------------- def back_opacity return 0 end #-------------------------------------------------------------------------- # ○ 行の描画 ※エイリアス定義 #-------------------------------------------------------------------------- alias ori_moto_draw_line draw_line def draw_line(line_number) self.open ori_moto_draw_line(line_number) end end class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ○ 全ウィンドウの作成 ※エイリアス定義 #-------------------------------------------------------------------------- alias ori_moto_create_all_windows create_all_windows def create_all_windows ori_moto_create_all_windows create_simple_status_window end #-------------------------------------------------------------------------- # ● メッセージウィンドウの作成 ※再定義 #-------------------------------------------------------------------------- def create_message_window @message_window = Window_Battle_Message.new end #-------------------------------------------------------------------------- # ☆ 簡易ステータスウィンドウの作成  #-------------------------------------------------------------------------- def create_simple_status_window @simple_status_window = Window_Simple_Status.new end #-------------------------------------------------------------------------- # ● フレーム更新 ※再定義 #-------------------------------------------------------------------------- def update super if BattleManager.in_turn? @log_window.open process_event process_action end BattleManager.judge_win_loss end #-------------------------------------------------------------------------- # ○ パーティコマンドウィンドウの作成 ※エイリアス定義 #-------------------------------------------------------------------------- alias oro_moto_create_party_command_window create_party_command_window def create_party_command_window oro_moto_create_party_command_window @party_command_window.x = Graphics.width if MOTO::PARTY_COMMAND_RIGHT end #-------------------------------------------------------------------------- # ○ アクターコマンドウィンドウの作成 ※エイリアス定義 #-------------------------------------------------------------------------- alias oro_moto_create_actor_command_window create_actor_command_window def create_actor_command_window oro_moto_create_actor_command_window @actor_command_window.x -= Graphics.width if MOTO::ACTOR_COMMAND_LEFT end #-------------------------------------------------------------------------- # ● 情報表示ビューポートの更新 ※再定義 #-------------------------------------------------------------------------- def update_info_viewport n = MOTO::PARTY_COMMAND_RIGHT ? 128 : 0 m = MOTO::ACTOR_COMMAND_LEFT ? 0 : 128 move_info_viewport(n) if @party_command_window.active move_info_viewport(m) if @actor_command_window.active move_info_viewport(64) if BattleManager.in_turn? end #-------------------------------------------------------------------------- # ○ ステータスウィンドウの情報を更新 ※エイリアス定義 #-------------------------------------------------------------------------- alias ori_moto_refresh_status refresh_status def refresh_status ori_moto_refresh_status @simple_status_window.refresh end #-------------------------------------------------------------------------- # ○ 戦闘開始 ※エイリアス定義 #-------------------------------------------------------------------------- alias ori_moto_battle_start battle_start def battle_start ori_moto_battle_start @log_window.close end #-------------------------------------------------------------------------- # ○ ターン開始 ※エイリアス定義 #-------------------------------------------------------------------------- alias ori_moto_turn_start turn_start def turn_start @status_window.close @simple_status_window.open if MOTO::SIMPLE_STATUS_WINDOW ori_moto_turn_start end #-------------------------------------------------------------------------- # ● ターン終了 ※再定義 #-------------------------------------------------------------------------- def turn_end all_battle_members.each do |battler| battler.on_turn_end refresh_status @log_window.display_auto_affected_status(battler) @log_window.wait_and_clear end BattleManager.turn_end process_event @log_window.close @simple_status_window.close if MOTO::SIMPLE_STATUS_WINDOW start_party_command_selection end #-------------------------------------------------------------------------- # ● 戦闘行動の処理 ※再定義 #-------------------------------------------------------------------------- def process_action return if scene_changing? if !@subject || !@subject.current_action @subject = BattleManager.next_subject end return turn_end unless @subject if @subject.current_action @subject.current_action.prepare if @subject.current_action.valid? execute_action end @subject.remove_current_action end process_action_end unless @subject.current_action end #-------------------------------------------------------------------------- # ○ コマンド[逃げる] ※エイリアス定義 #-------------------------------------------------------------------------- alias ori_moto_command_escape command_escape def command_escape @log_window.open ori_moto_command_escape end end