게임/알만툴

RPG VXA 전투고속화 스크립트

미친사람 2016. 9. 7. 22:57
반응형
#==============================================================================
# ■ RGSS3 戦闘超高速化  by 星潟
#------------------------------------------------------------------------------
# 戦闘時の処理速度を超高速化します。
# QキーもしくはCTRLキーを押している場合に効果があります。
#==============================================================================

class Scene_Battle < Scene_Base

  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------

  alias start_speedup start

  def start
    start_speedup
    $game_troop.show_fast_extra = true
  end

  #--------------------------------------------------------------------------
  # ● アニメーション表示が終わるまでウェイト
  #--------------------------------------------------------------------------

  alias wait_for_animation_speedup wait_for_animation

  def wait_for_animation
    if show_fast_extra?
      wait(5)
    else
      wait_for_animation_speedup
    end
  end

  #--------------------------------------------------------------------------
  # ● エフェクト実行が終わるまでウェイト
  #--------------------------------------------------------------------------

  alias wait_for_effect_speedup wait_for_effect

  def wait_for_effect
    if show_fast_extra?
      wait(5)
    else
      wait_for_effect_speedup
    end
  end

  #--------------------------------------------------------------------------
  # ● ウェイト
  #--------------------------------------------------------------------------

  alias wait_speedup wait

  def wait(duration)
    if show_fast_extra?
      duration.times {|i| update_for_wait if i < duration / 20 }
    else
      wait_speedup(duration)
    end
  end

  #--------------------------------------------------------------------------
  # ● 短時間ウェイト(早送り無効)
  #--------------------------------------------------------------------------

  alias abs_wait_short_speedup abs_wait_short

  def abs_wait_short
    if show_fast_extra?
      abs_wait(5)
    else
      abs_wait_short_speedup
    end
  end

  #--------------------------------------------------------------------------
  # ● 短時間ウェイト(早送り無効)
  #--------------------------------------------------------------------------

  alias abs_wait_speedup abs_wait

  def abs_wait(duration)
    if show_fast_extra?
      duration.times {|i| update_for_wait if i < duration / 20}
    else
      abs_wait_speedup(duration)
    end
  end

  #--------------------------------------------------------------------------
  # ● 超高速化判定
  #--------------------------------------------------------------------------

  def show_fast_extra?
    return false if $game_troop.show_fast_extra == false
    return true if Input.press?(:CTRL) or Input.press?(:L)
  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
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
반응형