안녕하세요, 일전에 대타 패시브에 대해 질문했던 유저입니다.
현재 또 문제가 생겼습니다.... 다름이 아니라, 추가 능력치에 크리티컬 확률 증가 항목은 있지만, 크리티컬 증가 항목은 따로 없어, 이를 만들어 보고 싶습니다.
battler 항목을 수정하는 것이 아니라, 스크립트 등을 이용해서 기존 크리티컬 3배 + @의 형식으로 크리티컬 피해 증가 패시브를 만들어 보고 싶습니다.
방법이 없을까요?
ex) 크리티컬 피해 12% 증가 = 기존 300% + 12% = 312% 이런 형식으로 만들고 싶습니다.
■ 질문전 필독!
- 질문할 내용이 이 게시판이나 강좌에 이미 있는지 확인합니다.
- 하나의 게시물에는 하나의 질문만 합니다.
- 제목은 질문의 핵심 내용으로 작성합니다.
- 질문 내용은 답변자가 쉽게 이해할 수 있도록 최대한 상세하게 작성합니다.
- 스크립트의 전문이 필요할 경우 txt 파일 등으로 첨부해 주시기 바랍니다.
- 답변받은 게시물은 삭제하지 않습니다.
- 답변이 완료된 경우 해당 답변해주신 분들께 감사의 댓글을 달아줍니다.
- 처음 오신 분들은 공지 게시물을 반드시 읽어주세요!
※ 미준수시 사전경고 없이 게시물을 삭제합니다.
=begin
스크립트를 새로 만들거나 구해야 할듯 합니다.
이런건 제작의뢰에...?
저녁인데 아직도 답이 없어서...
상태에 <CRITICAL_DAMAGE : ...>
... 부분에는 스킬처럼 계산식 적어주면 기본크리티컬 + 계산들이 적용됩니다.
a는 공격자, b는 대상자, d는 데미지(크리 적용전), v[n], s[n] ? a : b, 등등을 적용 가능합니다.
<CRITICAL_DAMAGE : a.atk * a.luk - b.def> 이런식으로 계산식을...
=end
class Game_Battler < Game_BattlerBase
DEFAULT_CRITICAL_DAMAGE_FORMULA = "d * 3"
alias customCriticalDamage_make_damage_value make_damage_value
def make_damage_value(user, item)
@__user = user
customCriticalDamage_make_damage_value(user, item)
end
def apply_critical(damage)
calc_critical_damage(@__user, self, damage)
end
def calc_critical_damage(a, b, damage, v = $game_variables, s = $game_switches)
d = damage
result = 0
a.states.each do |state|
if state.note.scan(/\<CRITICAL_DAMAGE\s?(?:[ |:|\-|=|,])\s?(.*)\>/)
next if $1 == nil || $1.empty?
result += eval($1)
end
end
eval(DEFAULT_CRITICAL_DAMAGE_FORMULA) + result
end
end