#============================================================================== # ■ RGSS3 戦闘超高速化 Ver2.01 by 星潟 #------------------------------------------------------------------------------ # 戦闘時の処理速度を超高速化します。 # 押したボタンによって挙動の違う高速化が行われます。 # それぞれ以下のようになります。 # # Lボタン(Qキー) : 処理のみ高速化 # CTRLキー : 処理とアニメーションを高速化 # Aボタン(SHIFTキー) : アニメーションのみ高速化 #============================================================================== module BATTLE_S_UP #高速化を無効化するスイッチを指定。 SW = 10 #戦闘超高速化ボタン1を設定します。 #こちらでは、処理は高速化されますがアニメーション速度は変更しません。 #無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。 #複数設定したい場合は、ヘルプをInputで検索し #下部にある定数の項目から、設定したいボタンを選び、「,」で区切って #配列内に追加して下さい。 KEY1 = [:L] #戦闘超高速化ボタン2を設定します。 #こちらでは、処理もアニメーション速度も変更されます。 #無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。 #複数設定したい場合は、ヘルプをInputで検索し #下部にある定数の項目から、設定したいボタンを選び、「,」で区切って #配列内に追加して下さい。 KEY2 = [:CTRL] #戦闘超高速化ボタン3を設定します。 #こちらでは、処理を高速化せずアニメーション速度のみ変更されます。 #無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。 #複数設定したい場合は、ヘルプをInputで検索し #下部にある定数の項目から、設定したいボタンを選び、「,」で区切って #配列内に追加して下さい。 KEY3 = [:A] #アニメーション速度高速化時の倍率を設定します。(数字が大きいほど高速化) ASPD = 4 #高速化中のアニメーション・エフェクトウェイトを設定します。(数字が小さいほど高速化) WAIT = 1 #高速化中のウェイト割合を設定します。数字が小さいほど短縮。(必ず1以上) WAIR1 = 1 #高速化中の強制ウェイト割合を設定します。数字が小さいほど短縮。(必ず1以上) WAIR2 = 20 #戦闘終了後のリザルト処理中も有効にするかどうかを設定します。 #trueで有効。falseで無効。 #なお、デフォルトのリザルトでは特に意味はないと思います。 Result = true #テストモードのみ有効にするかどうかを設定します。 #true:テストモードのみ/false:限定しない TEST = false #以下変更不要。 #全高速化ボタンを取得。 KEYALL = [KEY1,KEY2,KEY3] #-------------------------------------------------------------------------- # 高速化ボタンが押されているかを判定 #-------------------------------------------------------------------------- def self.key(type) !$game_switches[SW] && KEYALL[type].any? {|k| Input.press?(k)} && (Result ? true : !BattleManager.phase_nil?) end end module BattleManager #-------------------------------------------------------------------------- # フェーズがnilかどうかを判定。 #-------------------------------------------------------------------------- def self.phase_nil? @phase == nil end end #テストモード限定化されている場合、テストモードでない場合は無効にする。 if !BATTLE_S_UP::TEST or ($TEST or $BTEST) class Sprite_Base < Sprite #-------------------------------------------------------------------------- # アニメーションの更新 #-------------------------------------------------------------------------- alias update_animation_speedup update_animation def update_animation n = $game_party.in_battle && $game_troop.show_fast_extra2? ? BATTLE_S_UP::ASPD : 1 n = 1 if n < 1 n.times {update_animation_speedup} end end class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # アニメーション表示が終わるまでウェイト #-------------------------------------------------------------------------- alias wait_for_animation_speedup wait_for_animation def wait_for_animation $game_troop.show_fast_extra1? ? wait(BATTLE_S_UP::WAIT) : wait_for_animation_speedup end #-------------------------------------------------------------------------- # エフェクト実行が終わるまでウェイト #-------------------------------------------------------------------------- alias wait_for_effect_speedup wait_for_effect def wait_for_effect $game_troop.show_fast_extra1? ? wait(BATTLE_S_UP::WAIT) : wait_for_effect_speedup end #-------------------------------------------------------------------------- # ウェイト #-------------------------------------------------------------------------- alias wait_speedup wait def wait(duration) t = $game_troop.show_fast_extra1? ? (duration / (100.0 / BATTLE_S_UP::WAIR1)).to_i : duration t = 1 if t < 1 && duration > 0 wait_speedup(t) end #-------------------------------------------------------------------------- # 短時間ウェイト(早送り無効) #-------------------------------------------------------------------------- alias abs_wait_speedup abs_wait def abs_wait(duration) t = $game_troop.show_fast_extra1? ? (duration / (100.0 / BATTLE_S_UP::WAIR2)).to_i : duration t = 1 if t < 1 && duration > 0 abs_wait_speedup(t) end end class Game_Troop < Game_Unit #-------------------------------------------------------------------------- # 超高速化判定1 #-------------------------------------------------------------------------- def show_fast_extra1? show_fast_extra_flag1 or show_fast_extra_flag2 end #-------------------------------------------------------------------------- # 超高速化判定2 #-------------------------------------------------------------------------- def show_fast_extra2? show_fast_extra_flag2 or show_fast_extra_flag3 end #-------------------------------------------------------------------------- # 高速表示フラグ1 #-------------------------------------------------------------------------- def show_fast_extra_flag1 BATTLE_S_UP.key(0) end #-------------------------------------------------------------------------- # 高速表示フラグ2 #-------------------------------------------------------------------------- def show_fast_extra_flag2 BATTLE_S_UP.key(1) end #-------------------------------------------------------------------------- # 高速表示フラグ3 #-------------------------------------------------------------------------- def show_fast_extra_flag3 BATTLE_S_UP.key(2) end end end