RMVXA

자동전투 AI패턴을 추가하는 방법

by 간파더 posted May 29, 2012
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

허걱님께서 VXA에서 자동전투를 맡는 스크립트부분이


Game_Actor -540
 #--------------------------------------------------------------------------
  # ● 자동 전투용의 행동 후보 리스트를 작성
  #--------------------------------------------------------------------------
  def make_action_list
    list = []
    list.push(Game_Action.new(self).set_attack.evaluate)#아마 일반공격
    usable_skills.each do |skill|   #아마 사용가능한 스킬사용
      list.push(Game_Action.new(self).set_skill(skill.id).evaluate) # 밑의 evaluate에서 어떻게 작용해서 스킬을 사용하게 지정하는듯
    end
    list
  end
  #--------------------------------------------------------------------------
  # ● 자동 전투시의 전투 행동을 작성
  #--------------------------------------------------------------------------
  def make_auto_battle_actions 
    @actions.size.times do |i|
      @actions[i] = make_action_list.max {|action| action.value } #위에서 설정된 행동후보리스트대로 실행함
    end
  end

 


Game_Action-210

 #--------------------------------------------------------------------------
  # ● 행동의 가치 평가(자동 전투용)
  #    @value 및 @target_index 를 자동적으로 설정한다.
  #--------------------------------------------------------------------------
  def evaluate #여기서 value가 변수로 작용해서 행동빈도라던가 결정을 하는거같은데 도저히 이해가 안갑니다
    @value = 0
    evaluate_item if valid?
    @value += rand if @value > 0
    self
  end

이렇게 3부분인데 VX때랑 다르게  보고있어도 어떻게 돌아가는지 감도 잡히지 않더군요
 
그렇다고 VX에 있는 스크립트를 보고 어거지로 따라할수도 없는게 구조가 꽤나 다른듯하더라구요
 

아무래도  Game_Actor -540 부분에 행동 후보 항목부분에서 패턴을 추가해야하는거 같은데

 

현재 VX에서는 있지만 VXA에선 없는 패턴이 회복마법사용과 부활마법사용이 있습니다만..

 

자동전투를 하면  VX처럼 VXA에서 행동할수 있는 패턴을 추가해주고 싶습니다.

 

패턴중엔 VX에도 없는 패턴이 기절,마비같은 상태이상에 걸린 멤버에게 상태이상 해제마법사용입니다만

 

이 패턴은 만들기에 너무나도 힘들어서 VX에서 조차도 없었던거 같으니 포기를 할까 합니다

 

두가지 패턴의 액터_AI를 만들고 싶은데 VX에서도 있었던 패턴이였는 만큼 그걸 참조해서 VXA에서 추가가 가능할까요