sacred-ritual-academy/Scripts/_.25.rb
2025-03-18 19:45:34 -05:00

173 lines
No EOL
7.3 KiB
Ruby

#==============================================================================
# ■ RGSS3 戦闘超高速化 Ver2.01 by 星潟
#------------------------------------------------------------------------------
# 戦闘時の処理速度を超高速化します。
# 押したボタンによって挙動の違う高速化が行われます。
# それぞれ以下のようになります。
#
# Lボタン(Qキー) : 処理のみ高速化
# CTRLキー : 処理とアニメーションを高速化
# Aボタン(SHIFTキー) : アニメーションのみ高速化
#==============================================================================
module BATTLE_S_UP
#高速化を無効化するスイッチを指定。
SW = 504
#戦闘超高速化ボタン1を設定します。
#こちらでは、処理は高速化されますがアニメーション速度は変更しません。
#無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。
#複数設定したい場合は、ヘルプをInputで検索し
#下部にある定数の項目から、設定したいボタンを選び、「,」で区切って
#配列内に追加して下さい。
KEY1 = [:CTRL]
#戦闘超高速化ボタン2を設定します。
#こちらでは、処理もアニメーション速度も変更されます。
#無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。
#複数設定したい場合は、ヘルプをInputで検索し
#下部にある定数の項目から、設定したいボタンを選び、「,」で区切って
#配列内に追加して下さい。
KEY2 = [:C]
#戦闘超高速化ボタン3を設定します。
#こちらでは、処理を高速化せずアニメーション速度のみ変更されます。
#無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。
#複数設定したい場合は、ヘルプをInputで検索し
#下部にある定数の項目から、設定したいボタンを選び、「,」で区切って
#配列内に追加して下さい。
KEY3 = []
#アニメーション速度高速化時の倍率を設定します。(数字が大きいほど高速化)
ASPD = 3
#高速化中のアニメーション・エフェクトウェイトを設定します。(数字が小さいほど高速化)
WAIT = 2
#高速化中のウェイト割合を設定します。数字が小さいほど短縮。(必ず1以上)
WAIR1 = 2
#高速化中の強制ウェイト割合を設定します。数字が小さいほど短縮。(必ず1以上)
WAIR2 = 10
#戦闘終了後のリザルト処理中も有効にするかどうかを設定します。
#trueで有効。falseで無効。
#なお、デフォルトのリザルトでは特に意味はないと思います。
Result = false
#テストモードのみ有効にするかどうかを設定します。
#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