특정 액터나 에너미가 방어시에 속성유효도,스테이트무시 등을 설정할 수 있습니다.
예를들어 파이터캐릭터가 방어할때는 불속성 데미지는 무효
스턴상태는 걸리지않는다.
이런식으로 지정할 수 있고요
에너미도 마찬가지로 가능합니다..
#-----------------여기서부터
# ?방어?속성 유효도·스테이트 방어
# 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줄까지가 사용자가 설정하는곳인데 주석으로 설명을 적었습니다.
출처는 수수께끼의 정사면체
예를들어 파이터캐릭터가 방어할때는 불속성 데미지는 무효
스턴상태는 걸리지않는다.
이런식으로 지정할 수 있고요
에너미도 마찬가지로 가능합니다..
#-----------------여기서부터
# ?방어?속성 유효도·스테이트 방어
# 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줄까지가 사용자가 설정하는곳인데 주석으로 설명을 적었습니다.
출처는 수수께끼의 정사면체