173 lines
No EOL
7.3 KiB
Ruby
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 |