pros-plan-for-elves/Scripts/_.10.rb

255 lines
No EOL
10 KiB
Ruby

#==============================================================================
# ■ RGSS3 戦闘超高速化 Ver1.01a by 星潟
#------------------------------------------------------------------------------
# 戦闘時の処理速度を超高速化します。
# 押したボタンによって挙動の違う高速化が行われます。
# それぞれ以下のようになります。
#
# Lボタン(Qキー) : 処理のみ高速化
# CTRLキー : 処理とアニメーションを高速化
# Aボタン(SHIFTキー) : アニメーションのみ高速化
#
# また、テストモード限定化する機能を追加しました。
#------------------------------------------------------------------------------
# Ver1.01a テスト判定を修正。
#==============================================================================
module BATTLE_S_UP
#戦闘超高速化ボタン1を設定します。
#こちらでは、処理は高速化されますがアニメーション速度は変更しません。
#無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。
#複数設定したい場合は、ヘルプをInputで検索し
#下部にある定数の項目から、設定したいボタンを選び、「,」で区切って
#配列内に追加して下さい。
KEY1 = []
#戦闘超高速化ボタン2を設定します。
#こちらでは、処理もアニメーション速度も変更されます。
#無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。
#複数設定したい場合は、ヘルプをInputで検索し
#下部にある定数の項目から、設定したいボタンを選び、「,」で区切って
#配列内に追加して下さい。
KEY2 = [:CTRL]
#戦闘超高速化ボタン3を設定します。
#こちらでは、処理を高速化せずアニメーション速度のみ変更されます。
#無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。
#複数設定したい場合は、ヘルプをInputで検索し
#下部にある定数の項目から、設定したいボタンを選び、「,」で区切って
#配列内に追加して下さい。
KEY3 = []
#アニメーション速度高速化時の倍率を設定します。
ASPD = 2
#テストモードのみ有効にするかどうかを設定します。
#true:テストモードのみ/false:限定しない
TEST = false
end
#テストモード限定化されている場合、テストモードでない場合は無効にする。
if !BATTLE_S_UP::TEST or (BATTLE_S_UP::TEST && ($TEST or $BTEST))
class Sprite_Base < Sprite
#--------------------------------------------------------------------------
# アニメーションの更新
#--------------------------------------------------------------------------
alias update_animation_speedup update_animation
def update_animation
#戦闘中であり、なおかつ高速化が可能であり
#高速化ボタン2もしくはボタン3が押してある場合は
#アニメーション高速化倍率に応じて処理を高速化する。
number = SceneManager.scene_is?(Scene_Battle) &&
$game_troop.show_fast_extra &&
($game_troop.show_fast_extra_flag2 or
$game_troop.show_fast_extra_flag3) ? BATTLE_S_UP::ASPD : 1
number.times {update_animation_speedup}
end
end
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# 開始処理
#--------------------------------------------------------------------------
alias start_sup start
def start
#本来の処理を実行。
start_sup
#高速化を有効にする。
$game_troop.show_fast_extra = true
end
#--------------------------------------------------------------------------
# アニメーション表示が終わるまでウェイト
#--------------------------------------------------------------------------
alias wait_for_animation_speedup wait_for_animation
def wait_for_animation
#高速化中の場合はウェイトを5フレームに短縮する。
show_fast_extra? ? wait(5) : wait_for_animation_speedup
end
#--------------------------------------------------------------------------
# エフェクト実行が終わるまでウェイト
#--------------------------------------------------------------------------
alias wait_for_effect_speedup wait_for_effect
def wait_for_effect
#高速化中の場合はウェイトを5フレームに短縮する。
show_fast_extra? ? wait(5) : wait_for_effect_speedup
end
#--------------------------------------------------------------------------
# ウェイト
#--------------------------------------------------------------------------
alias wait_speedup wait
def wait(duration)
#高速化中の場合はウェイトを20分の1に短縮する。
show_fast_extra? ? duration.times {|i| update_for_wait if i < duration / 20 } : wait_speedup(duration)
end
#--------------------------------------------------------------------------
# 短時間ウェイト(早送り無効)
#--------------------------------------------------------------------------
alias abs_wait_short_speedup abs_wait_short
def abs_wait_short
#高速化中の場合はウェイトを5フレームに短縮する。
show_fast_extra? ? abs_wait(5) : abs_wait_short_speedup
end
#--------------------------------------------------------------------------
# 短時間ウェイト(早送り無効)
#--------------------------------------------------------------------------
alias abs_wait_speedup abs_wait
def abs_wait(duration)
#高速化中の場合はウェイトを20分の1に短縮する。
show_fast_extra? ? duration.times {|i| update_for_wait if i < duration / 20} : abs_wait_speedup(duration)
end
#--------------------------------------------------------------------------
# 超高速化判定
#--------------------------------------------------------------------------
def show_fast_extra?
#高速化中が可能であり、なおかつ高速化ボタン1か2が押されている場合は
#超高速化して処理を行う。
$game_troop.show_fast_extra && ($game_troop.show_fast_extra_flag1 or $game_troop.show_fast_extra_flag2)
end
end
#==============================================================================
# ■ Game_Troop
#------------------------------------------------------------------------------
#  敵グループおよび戦闘に関するデータを扱うクラスです。バトルイベントの処理も
# 行います。このクラスのインスタンスは $game_troop で参照されます。
#==============================================================================
class Game_Troop < Game_Unit
attr_accessor :show_fast_extra
#--------------------------------------------------------------------------
# オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_h_sp_battle initialize
def initialize
#本来の処理を実行する。
initialize_h_sp_battle
#高速化を可能にする。
@show_fast_extra = true
end
#--------------------------------------------------------------------------
# 高速表示フラグ1
#--------------------------------------------------------------------------
def show_fast_extra_flag1
#高速化ボタン1が存在しない場合はfalseを返す。
#そうでない場合、高速化ボタン1のどれかが押されている場合にtrueを返す。
BATTLE_S_UP::KEY1.empty? ? false : BATTLE_S_UP::KEY1.each {|k| return true if Input.press?(k)};false
end
#--------------------------------------------------------------------------
# 高速表示フラグ2
#--------------------------------------------------------------------------
def show_fast_extra_flag2
#高速化ボタン2が存在しない場合はfalseを返す。
#そうでない場合、高速化ボタン2のどれかが押されている場合にtrueを返す。
BATTLE_S_UP::KEY2.empty? ? false : BATTLE_S_UP::KEY2.each {|k| return true if Input.press?(k)};false
end
#--------------------------------------------------------------------------
# 高速表示フラグ3
#--------------------------------------------------------------------------
def show_fast_extra_flag3
#高速化ボタン3が存在しない場合はfalseを返す。
#そうでない場合、高速化ボタン3のどれかが押されている場合にtrueを返す。
BATTLE_S_UP::KEY3.empty? ? false : BATTLE_S_UP::KEY3.each {|k| return true if Input.press?(k)};false
end
end
class << BattleManager
#--------------------------------------------------------------------------
# [エイリアス]:勝利の処理
#--------------------------------------------------------------------------
alias process_victory_h_sp_battle process_victory
def process_victory
#高速化を無効にする。
$game_troop.show_fast_extra = false
#本来の処理を実行。
process_victory_h_sp_battle
end
#--------------------------------------------------------------------------
# [エイリアス]:逃走の処理
#--------------------------------------------------------------------------
alias process_escape_h_sp_battle process_escape
def process_escape
#高速化を無効にする。
$game_troop.show_fast_extra = false
#本来の処理を実行。
process_escape_h_sp_battle
end
#--------------------------------------------------------------------------
# [エイリアス]:敗北の処理
#--------------------------------------------------------------------------
alias process_defeat_h_sp_battle process_defeat
def process_defeat
#高速化を無効にする。
$game_troop.show_fast_extra = false
#本来の処理を実行。
process_defeat_h_sp_battle
end
end
end