#◆◇◆◇◆ ☆ タイムラグ全体攻撃 ver 1.20 ◇◆◇◆◇ # ☆ マスタースクリプト ver 2.00 以降専用 # サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/ # by みんと =begin 更新履歴 ver 1.20 処理を効率化し、 タイムラグの無効化にも対応 ver 1.10 他サイトさんの魔法反射に対応 説明 ※ 出来るだけ下の位置に導入してください。 XPのデフォルト使用では、全体攻撃は同時に処理されてしまいます。 アニメが「画面」のアニメならいいのですが、 それ以外のアニメの全体攻撃も同時に処理されてしまうので、 見た目にもわかり難く、ダメージも把握しづらくなっています。 そこで、全体攻撃の場合、アニメの位置が「画面」以外なら 次のターゲットに表示されるまで、若干のタイムラグを発生させ、 ダメージ表示やコラプスも遅らせます。 (ダメージ表示と、コラプスのタイムラグは「画面」のアニメでも効果があります) =end #============================================================================== # ☆ MINTO #------------------------------------------------------------------------------ # 様々なフラグを扱うメインモジュールです。 #============================================================================== module MINTO # タイムラグ全体攻撃を有効化 ( true で有効 / false で無効 ) RGSS["Thyme_Lag"] = true end # タイムラグ全体攻撃が有効な場合に以降の処理を実行する if MINTO::RGSS["Thyme_Lag"] == true then #============================================================================== # ☆ カスタマイズ #------------------------------------------------------------------------------ # 機能のカスタマイズをここで行います。 #============================================================================== module MINTO # タイムラグフレーム数(原則、1秒間が40フレームです) Thyme_Lag = 10 # タイムラグを無効化するアニメーションのID(配列式) # タイムラグが発生しないアニメーションのIDを配列式で記入してください Not_Thyme_Lag_Anime = [0, 10, 20, 30] end #============================================================================== # ■ Game_Battler (分割定義 1) #------------------------------------------------------------------------------ #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :thyme_lag # タイムラグカウント end #============================================================================== # ■ Sprite_Battler #------------------------------------------------------------------------------ #  バトラー表示用のスプライトです。Game_Battler クラスのインスタンスを監視し、 # スプライトの状態を自動的に変化させます。 #============================================================================== class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- # ● フレーム更新 # alias : update_MINTO_Thyme_Lag #-------------------------------------------------------------------------- alias update_MINTO_Thyme_Lag update def update # バトラーが存在しない場合 if @battler == nil then # ビットマップをクリア self.bitmap = nil # ループアニメーションをクリア loop_animation(nil) # メソッドを返す return end # タイムラグカウントが無効な場合 if @battler.thyme_lag == nil then # タイムラグカウントを初期化 @battler.thyme_lag = 0 end # タイムラグカウントが存在する場合 if @battler.thyme_lag >= 1 # タイムラグカウントを減らす @battler.thyme_lag -= 1 # メソッドを返す return end # 元の処理を実行 update_MINTO_Thyme_Lag end end #============================================================================== # ■ Scene_Battle (分割定義 4) #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● フレーム更新 (メインフェーズ ステップ 4 : 対象側アニメーション) #-------------------------------------------------------------------------- alias update_phase4_step4_Thyme_Lag update_phase4_step4 def update_phase4_step4 # 元の処理を実行 update_phase4_step4_Thyme_Lag # タイムラグが有効なアニメーションIDの場合 if MINTO::Not_Thyme_Lag_Anime.include?(@animation2_id) == false then # アニメの位置が 画面 以外の場合 if Data_Animations.data[@animation2_id].position != 3 then # ターゲットが複数存在する場合 if @target_battlers.size >= 2 then # ループ処理(全ターゲット) (0...@target_battlers.size).each do |i| # ターゲットを取得 target = @target_battlers[i] # タイムラグカウントを代入する target.thyme_lag = MINTO::Thyme_Lag * i end end end end end #-------------------------------------------------------------------------- # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示) #-------------------------------------------------------------------------- alias update_phase4_step5_Thyme_Lag update_phase4_step5 def update_phase4_step5 # 元の処理を実行 update_phase4_step5_Thyme_Lag # タイムラグが有効なアニメーションIDの場合 if MINTO::Not_Thyme_Lag_Anime.include?(@animation2_id) == false then # ターゲットが複数存在する場合 if @target_battlers.size >= 2 then # ループ処理(全ターゲット) (0...@target_battlers.size).each do |i| # ターゲットを取得 target = @target_battlers[i] # タイムラグカウントを代入する target.thyme_lag = MINTO::Thyme_Lag * i end end end end end end