전투

적의 여러차례 행동 스크립트

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
지정한 적이 한턴에 여러번 행동하는 스크립트 입니다
보스몹등에 사용하면 좋겠죠???????????

#----------------여기서부터
#
#    敵の複数回行動(Ver2.00)
#  (C)2005 TYPE74RX-T
#

# ★変数を初期化
$enemy_act_times = []
# ★指定エネミーID(ここでは例として2番・バジリスクを設定)の攻撃回数を設定(3回)
$enemy_act_times[1] = 3    #여기서 설정 하실 수 있습니다
$enemy_act_times[2] = 3    # ←이건 2번 적 3번행동
$enemy_act_times[4] = 3    # 계속 만드셔두됩니다
class Game_Battler
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_reader  :maxacttimes              # ★1ターン中に行動できる最大回数
  attr_accessor :acttimes                # ★1ターン中に行動できる回数
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias rx_t_rgssb1gb_initialize initialize
  def initialize
    rx_t_rgssb1gb_initialize
    @maxacttimes = 1  # ★1ターン中に行動できる最大回数を設定
    @acttimes = 1  # ★1ターン中に行動できる回数を設定
  end
end
class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #    troop_id    : トループ ID
  #    member_index : トループメンバーのインデックス
  #--------------------------------------------------------------------------
  alias rx_t_rgssb1ge_initialize initialize
  def initialize(troop_id, member_index)
    rx_t_rgssb1ge_initialize(troop_id, member_index)
    # ★2回以上行動できるエネミーの場合は@acttimesに攻撃回数を設定
    if $enemy_act_times[@enemy_id] != nil
      @maxacttimes = $enemy_act_times[@enemy_id]
      @acttimes = $enemy_act_times[@enemy_id]
    else
      # ★ノーマルタイプの敵には攻撃回数を1に設定
      @maxacttimes = 1
      @acttimes = 1
    end
  end
end
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 基本アクション 結果作成
  #--------------------------------------------------------------------------
  alias rx_t_rgssb1sb_make_basic_action_result make_basic_action_result
  def make_basic_action_result
    # 防御の場合
    if @active_battler.current_action.basic == 1
      # ヘルプウィンドウに "防御" を表示
      @help_window.set_text($data_system.words.guard, 1)
      # ★アニメーション ID を設定(前回の行動アニメ発動防止)
      @animation1_id = 0
      @animation2_id = 0
      return
    end
    rx_t_rgssb1sb_make_basic_action_result
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 2 : アクション開始)
  #--------------------------------------------------------------------------
  alias rx_t_rgssb1sb_update_phase4_step6 update_phase4_step6
  def update_phase4_step6
    rx_t_rgssb1sb_update_phase4_step6
    # ★ もし何かの間違いで@active_battler.acttimesがnilだったら強引に1を代入
    @active_battler.acttimes = 1 if @active_battler.acttimes == nil
    # ★行動回数を減算
    @active_battler.acttimes -= 1 if @active_battler.acttimes > 0
    # ★まだ行動回数が残っているならフェーズ4のstep2に移行
    if @active_battler.acttimes > 0
      # ★敵の行動を決める
      if @active_battler.is_a?(Game_Enemy)
        @active_battler.make_action
      end
      @phase4_step = 2
    else
      # ★行動回数を初期化
      @active_battler.acttimes = @active_battler.maxacttimes
      # ステップ 1 に移行
      @phase4_step = 1
    end
  end
end
#------------------끝

사용법 아주 쉽습니다 

스크립트 10번째 줄에 가보면
$enemy_act_times[1] = 3  이런식으로 있는데
뜻이 1번 적이  한턴에 3번행동 입니다

출처는 type74 입니다