#◆◇◆◇◆ 戦闘背景色調変更スクリプト ver 1.01 ◇◆◇◆◇ # 全マスタースクリプト共通スクリプト # サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/ # by みんと =begin ■ 更新履歴 ○ ver 1.01(2009/01/20) マップ画面で落ちるミスを修正 ■ 説明 アニメ中に任意のタイミングで 戦闘背景の色調が変更できるようになります。 戦闘背景の色調のみが変更されるので、 画面の色調や、バトラー、アニメには何の影響も与えません。 変更には任意のフレームに、 背景色変更 という名前のSEを実行してください。 そのタイミングで戦闘背景の色調が変更されます。 色調は各色 128 を基本とし、 129以上で加算、127以下で減算となります。 RGB3色255なら真っ白、0なら真っ黒になります。 全て128にすれば本来の色になります。 変更に掛ける時間はフラッシュの時間を使用します。 フラッシュの強さは使いません。 アニメが解放されると、自動的に色調の変更も解除されます。 =end #============================================================================== # ☆ MINTO #------------------------------------------------------------------------------ # 様々なフラグを扱うメインモジュールです。 #============================================================================== module MINTO # 戦闘背景色調変更スクリプトを有効化 ( true で有効 / false で無効 ) RGSS["戦闘背景色調変更"] = true end # 戦闘背景色調変更スクリプトが有効な場合に以降の処理を実行する if MINTO::RGSS["戦闘背景色調変更"] == true then #============================================================================== # ☆ MINTO_Fone_Change #------------------------------------------------------------------------------ # 戦闘背景の色調変更を管理するシステムモジュールです。 #============================================================================== module MINTO_Fone_Change #-------------------------------------------------------------------------- # ● SEとフラッシュのタイミング処理 # timing : タイミングデータ (RPG::Animation::Timing) # hit : ヒットフラグ #-------------------------------------------------------------------------- def animation_process_timing(timing, hit) # マップ画面の場合 if $scene.is_a?(Scene_Map) == true then # メソッドを返す return end # 条件が ヒット で攻撃がミスだった場合か、 # 条件が ミス で攻撃がヒットだった場合 if(timing.condition == 1 and hit == false) or (timing.condition == 2 and hit == true) then # メソッドを返す return end # SE名が カットイン実行 の場合 if timing.se.name == "背景色変更" then # 戦闘背景の色相を変更 $scene.spriteset.tone_change(timing.flash_color, timing.flash_duration) # それ以外のSE名の場合 else # スーパークラスを実行 (継承先の処理に移行する) super(timing, hit) end end #-------------------------------------------------------------------------- # ● アニメーションの解放 #-------------------------------------------------------------------------- def dispose_animation # マップ画面の場合 if $scene.is_a?(Scene_Map) == true then # メソッドを返す return end # 戦闘背景の色相を戻す $scene.spriteset.tone_change(Color.new(128, 128, 128), 16) # スーパークラスを実行 (継承先の処理に移行する) super end end #============================================================================== # ■ Spriteset_Battle #------------------------------------------------------------------------------ #  バトル画面のスプライトをまとめたクラスです。このクラスは Scene_Battle クラ # スの内部で使用されます。 #============================================================================== class Spriteset_Battle #-------------------------------------------------------------------------- # ● 戦闘背景の色相変更処理 # color : 変更する色相 # duration : 変更に掛ける時間 #-------------------------------------------------------------------------- def tone_change(color, duration) # 各種データを保存 @tone_color = color @change_rate = duration * 2 @duration_frame = duration * 2 # 各色相データを実際のものに変換 @red = @battleback_sprite.tone.red - (((128 - color.red) * 2) * -1) @green = @battleback_sprite.tone.green - (((128 - color.green) * 2) * -1) @blue = @battleback_sprite.tone.blue - (((128 - color.blue) * 2) * -1) end #-------------------------------------------------------------------------- # ● フレーム更新 (色相変更) #-------------------------------------------------------------------------- def update_tone_change # 色相の変更が必要ない場合 if @duration_frame.to_i == 0 then # メソッドを返す return end # 残り時間を減らす @duration_frame -= 1 # 赤色の変更が必要な場合 if @red != 0 then # 赤色を変更 @battleback_sprite.tone.red -= @red / @change_rate.to_f end # 緑色の変更が必要な場合 if @green != 0 then # 緑色を変更 @battleback_sprite.tone.green -= @green / @change_rate.to_f end # 青色の変更が必要な場合 if @blue != 0 then # 青色を変更 @battleback_sprite.tone.blue -= @blue / @change_rate.to_f end end #-------------------------------------------------------------------------- # ● フレーム更新 # 使用エイリアス : tone_change_update #-------------------------------------------------------------------------- alias :tone_change_update :update def update # 元の処理を実行 tone_change_update # 色調変更の更新 update_tone_change end end #============================================================================== # ■ Sprite_Battler #------------------------------------------------------------------------------ #  バトラー表示用のスプライトです。Game_Battler クラスのインスタンスを監視し、 # スプライトの状態を自動的に変化させます。 #============================================================================== class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- # ● システムインクルード #-------------------------------------------------------------------------- include(MINTO_Fone_Change) # 色調変更モジュール end #============================================================================== # ■ Scene_Battle (分割定義 1) #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :spriteset # スプライトセット end end