XP 스크립트

특정 액터나 에너미가 방어시에 속성유효도,스테이트무시 등을 설정할 수 있습니다.

예를들어 파이터캐릭터가 방어할때는 불속성 데미지는 무효
스턴상태는 걸리지않는다.
이런식으로 지정할 수 있고요
에너미도 마찬가지로 가능합니다..

#-----------------여기서부터
# ?방어?속성 유효도·스테이트 방어
# by Tetra-Z
#
# ?방어?안에만 유효한 속성 유효도·스테이트 방어를 설정합니다.

#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  def guard_element_rate
    case self.id
    #==========================================================================
    # □ 커스터마이즈 포인트
    #==========================================================================
    when 1                # 액터의 방어시에 속성 유효도를 설정하는곳입니다
      return {1=>200}    # ,이뜻은 1번 캐릭터가 방어할때 1번속성 데미지를 200%로 받는다 입니다
    when 2
      return {2=>200}                      # -로 설정 하실 수 도 있습니다.  예) return {1=>-500}
    # when 액터ID      아래 주석 설명과 마찬가지로 계속 지정 하실 수도 있습니다.
    #  return {속성ID=>레이트, 속성ID=>레이트, ……} 예) return {1=>200, 2=>-500, 5=>1000}
    # 레이트는100하지만 기준. ←뭔말인지;;
    #==========================================================================
    end
    return {}
  end
  def guard_state_guard
    case self.id
    #==========================================================================
    # □ 커스터마이즈 포인트
    #==========================================================================
    when 1          #이거는 액터 방어시에 아무리 써도 무효인 스테이트
      return []      #쉬워서 설명은 필요없겠네요 
  # 액터ID    예를하나 들자면.. when 3 return [5, 2, 7] ←3번 액터 방어시에 5,2,7 번 스테이트무효
  #  return [무효 스테이트ID배열]
  #==========================================================================
    end
    return []
  end
end
#==============================================================================
# ■ Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
  def guard_element_rate
    case self.id
    #==========================================================================
    # □ 커스터마이즈 포인트
    #==========================================================================
    when 1                      # 에너미설정 하는곳
      return {}                    # 액터랑 같습니다
    # when 에너지?-ID
    #  return {속성ID=>레이트, 속성ID=>레이트, ……}
    # 레이트는100하지만 기준.
    #==========================================================================
    end
    return {}
  end
  def guard_state_guard
    case self.id
    #==========================================================================
    # □ 커스터마이즈 포인트
    #==========================================================================
    when 1                  # 이것도 같습니다
      return []             
    # 에너지?-ID
    #  return [무효 스테이트ID배열]
    #==========================================================================
    end
    return []
  end
end
#------------------------사용자 지정끝
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
  #--------------------------------------------------------------------------
  # ● 속성 보정치의 취득
  #    element_id : 속성 ID
  #--------------------------------------------------------------------------
  def guard_element_correct(element_id)
    array = self.guard_element_rate
    return (array[element_id].nil? ? 100 : array[element_id])
  end
end
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 속성 보정치의 취득
  #    element_id : 속성 ID
  #--------------------------------------------------------------------------
  alias tetraz90_element_rate element_rate
  def element_rate(element_id)
    result = tetraz90_element_rate(element_id)
    if self.guarding?
      result *= guard_element_correct(element_id)
      result /= 100
    end
    # 메소드 종료
    return result
  end
  #--------------------------------------------------------------------------
  # ● 스테이트 방어 판정
  #    state_id : 스테이트 ID
  #--------------------------------------------------------------------------
  alias tetraz90_state_guard? state_guard?
  def state_guard?(state_id)
    if self.guarding?
      array = self.guard_state_guard
      return true if array.include?(state_id)
    end
    return tetraz90_state_guard?(state_id)
  end
end
#==============================================================================
# ■ Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● 속성 보정치의 취득
  #    element_id : 속성 ID
  #--------------------------------------------------------------------------
  alias tetraz90_element_rate element_rate
  def element_rate(element_id)
    result = tetraz90_element_rate(element_id)
    if self.guarding?
      result *= guard_element_correct(element_id)
      result /= 100
    end
    # 메소드 종료
    return result
  end
  #--------------------------------------------------------------------------
  # ● 스테이트 방어 판정
  #    state_id : 스테이트 ID
  #--------------------------------------------------------------------------
  alias tetraz90_state_guard? state_guard?
  def state_guard?(state_id)
    if self.guarding?
      array = self.guard_state_guard
      return true if array.include?(state_id)
    end
    return tetraz90_state_guard?(state_id)
  end
end
#--------------------끝

사용법 입니다

이건 말로 쓰기는 좀 어려워서; 13~69줄까지가 사용자가 설정하는곳인데 주석으로 설명을 적었습니다.


출처는 수수께끼의 정사면체

Who's 백호

?

이상혁입니다.

http://elab.kr


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
114 전투 KGC_Active Count Battle (7/30일자) 7 file 백호 2009.02.22 1846
113 전투 적의 여러차례 행동 스크립트 1 백호 2009.02.22 1321
» 전투 방어시에 속성 저항,스테이트무시 스크립트 1 백호 2009.02.22 1017
111 전투 S.G DamageShield Script 백호 2009.02.22 935
110 전투 매턴 자동 회복이나 도트힐 3 file 백호 2009.02.22 1351
109 전투 Prize Point System 2.0 by Dark Ruby@rmxp.org 3 file 백호 2009.02.22 1742
108 전투 Battle Report 1.6 by Raziel@rmxp.org 1 file 백호 2009.02.22 1672
107 전투 [신기술 체험] Tactical Battle System 9 file 백호 2009.02.22 2034
106 전투 Active Time Battle 2.57 by パラ犬 6 file 백호 2009.02.22 2371
105 전투 중복일지도 모르는 ATB 전투 11 file 백호 2009.02.22 4057
104 전투 랜덤 전투음악 by Fomar0153@rmxp.org 1 백호 2009.02.22 1008
103 전투 [신기술 체험]액션배틀1탄 6 file 백호 2009.02.22 2766
102 전투 SG_Attack Break by sandgolem (SDK호환) 백호 2009.02.22 813
101 전투 Stealing/Mugging/Scanning 6.0 Final by Trickster (SDK호환) file 백호 2009.02.22 885
100 전투 RTAB 1.15와 애드온 from 歯車の城 4 file 백호 2009.02.22 1186
99 전투 [신기술 체험] 강회된 횡스크롤 액알 13 file 백호 2009.02.22 6841
98 전투 Real Time Active Battle(RTAB) 1.14 from 歯車の城 3 file 백호 2009.02.22 1315
97 전투 FFX, X-2, FFXII 식으로 대미지 표시하기 by squall@rmxp.org 백호 2009.02.22 1115
96 전투 레벨업시 능력치 표시 2 백호 2009.02.22 1621
95 전투 FF10 전투 대미지 공식 by hydro@rmxp.org 백호 2009.02.22 1141
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9