RPGXP 기본전투계산식이 궁금합니다.
2007.06.08 11:57
#--------------------------------------------------------------------------
# ● 통상 공격의 효과 적용
# attacker : 공격자 (버틀러)
#--------------------------------------------------------------------------
def attack_effect(attacker)
# 위기 플래그를 클리어
self.critical = false
# 제일 명중 판정
hit_result = (rand(100) < attacker.hit)
# 명중의 경우
if hit_result == true
# 기본 데미지를 계산
atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk * (20 + attacker.str) / 20
# 속성 수정
self.damage *= elements_correct(attacker.element_set)
self.damage /= 100
# 데미지의 부호가 정의 경우
if self.damage > 0
# 위기 수정
if rand(100) < 4 * attacker.dex / self.agi
self.damage *= 2
self.critical = true
end
# 방어 수정
if self.guarding?
self.damage /= 2
end
end
# 분산
if self.damage.abs > 0
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
# 제2 명중 판정
eva = 8 * self.agi / attacker.dex + self.eva
hit = self.damage < 0 ? 100 : 100 - eva
hit = self.cant_evade? ? 100 : hit
hit_result = (rand(100) < hit)
end
# 명중의 경우
if hit_result == true
# 스테이트 충격 해제
remove_states_shock
# HP 로부터 데미지를 감산
self.hp -= self.damage
# 스테이트 변화
@state_changed = false
states_plus(attacker.plus_state_set)
states_minus(attacker.minus_state_set)
# 미스의 경우
else
# 데미지에 "Miss" 를 설정
self.damage = "Miss"
# 위기 플래그를 클리어
self.critical = false
end
# 메소드 종료
return true
end
이것이 전투에서 기본 공격의 데미지 수치를 결정하는 부분입니다.
이부분 아래에는 스킬, 아이템, 속성등에 대한 설정들이 있습니다.
# 기본 데미지를 계산
atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk * (20 + attacker.str) / 20
여기가 가장 핵심적인 부분인데 잘 살펴보면
'atk(공격력)=[공격자의 공격력-피격자의 물리방어력/2, 0].최대치'라고 해석할 수 있습니다.
저도 스크립트 초짜라 잘은 모르겠지만 콤마 앞의 것이 최대치, 0이 최소치라고 생각됩니다.
그러니까 공격력은 최소치와 최대치 사이에 속해있는 숫자가 되는 것입니다.
그리고 두번째 줄을 보면
'self.damage(피격자의 데미지) = 공격력(위에서 정의한 공식)*(20+공격자의 완력) / 20 이라고 되어 있습니다.
한마디로 피격자가 받는 데미지는 위에서 정의한 공식에 따라 나온 공격력에 (공격자의 완력+20)을 곱한 다음 20으로 나눈 것이 되는 것입니다.
이것으로 공식 해석은 되었지만 속성이나 상태 같은 것이 들어가면 더 복잡해집니다;;
허접한 답변 읽어주셔서 감사합니다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
339 | 적들을 죽여도 안사라지내여 ㅠㅠ | hanch | 2007.06.10 | 247 |
338 | 기본전투계산식이 궁금합니다. | 『덩키동크』 | 2007.06.09 | 40 |
337 | 폰트 설정을 했는데 나오지 않던가 굴림체로 나옵니다. | 『덩키동크』 | 2007.06.09 | 50 |
336 | 맵 순서조절 | 『덩키동크』 | 2007.06.09 | 27 |
335 | 능력치에 대해서 | Novelist | 2007.06.08 | 26 |
» | 기본전투계산식이 궁금합니다. | Novelist | 2007.06.08 | 33 |
333 | 맵 순서조절 | Novelist | 2007.06.08 | 25 |
332 | 맵 순서조절 [1] | RayPotassium | 2007.06.07 | 278 |
331 | 폰트 설정을 했는데 나오지 않던가 굴림체로 나옵니다. | 랭보졍 | 2007.06.04 | 450 |
330 | 픽쳐 표시에 대해서 질문. | 천재대학교교장 | 2007.06.04 | 245 |
329 | 기본전투계산식이 궁금합니다. | 천당의새 | 2007.06.03 | 312 |
328 | 주인공 초기장비 에서 궁금한 점 | Archer | 2007.05.27 | 28 |
327 | 주인공 이동속도 조절 어떻게 하나요? | Archer | 2007.05.27 | 64 |
326 | 주인공 이동속도 조절 어떻게 하나요? [2] | 식칼 | 2007.05.27 | 389 |
325 | 주인공 초기장비 에서 궁금한 점 [2] | 위토르 | 2007.05.27 | 261 |
324 | xp는 처음이라서 | Polaris君 | 2007.05.18 | 72 |
323 | RPGXP 테스트, 실행조차 안된다? | Archer | 2007.05.16 | 293 |
322 | RPGXP 테스트, 실행조차 안된다? [1] | RayPotassium | 2007.05.16 | 546 |
321 | RPGXP 실행관련 [1] | FirstMoon | 2007.05.15 | 509 |
320 | 스크립트를 껐다켰다 할수 없나요?? | Zeprod | 2007.05.15 | 126 |