?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
RPG XP 사용중인데요..

--------------------------질문 1.------------------------------

atk = [attacker.atk - self.pdef / 1, 0]. max
      self.damage = atk * attacker.str

이게 원래는

atk = [attacker.atk - self.pdef / 2, 0]. max
      self.damage = atk * attacker.str /20


이었는데..

이게 기본공격데미지 계산식입니다!

그런데 아시다시피 데미지는 숫자가 가지가지잖습니까!

일정 범위 내에서만 나온다지만..

하지만 이 공식대로라면 항상 같은값이 나와야하는데

[attacker.atk - self.pdef / 2, 0]. max

이 부분때문에 여럿 갈리는건지..해서요.

self.pdef 나누기 2,0 이라니..

2 또는 0으로 나눈다인가.. 아니면 다른말인가..해서요.

아니 그리고 0으로 어떻게 나눈다는 말입니끄아아아!!

저의 능력으론 이해 불능이라서 이렇게 올립니다..ㅠㅠ

------------------질문 2.------------------------------

      # 분산
      if self.damage.abs > 0
        amp = [self.damage.abs * 15 / 100, 1]. max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end

요것은 기본공격데미지 분산의 공식입니다.


      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)

이것은 기본공격데미지의 제2차명중판정입니다.

  def hit
    n = 100
    for i in @states
      n *= $data_states[i]. hit_rate / 100.0
    end
    return Integer(n)
  end

그리고 이것은 hit라는 값의 취득을 위한 부분인데..(Battler 1)

이 세 부분은 아무리 용을 써도 이해가 안됩니다 !!

질문 2-1.hit 라는 값을 어떻게 취득한것이며!!(스킬은 따로 명중율이 존재하지만, 기본공격은 그렇지 않다 이 말입니다..)

2-2.분산이란 무엇이며!! 어떤 결과를 불러 일으키는지!!

제 2차명중판정에서

      eva = 8 * self.agi / attacker.dex + self.eva

이 한줄 빼곤 도저히 해석이 안됩니다 ㅠㅠ

eva라는 값= 8곱하기 방어자의 agi값 나누기 공격자의 dex값더하기 방어자의 eva값

그 밑에서 방금 위에서 쓰인 eva 라는 값들이 쓰이는데!!

hit = self.damage < 0 ?  100 : 100 - eva
      hit = self.cant_evade?  ?  100 : hit
      hit_result = (rand(100) < hit)

요것들입니다.

2-3.그런데 도무~지 이 세 줄은 어떤 계산방식인지 이해가 안갑니다..ㅠㅠ

---------------------질문 3.--------------------------------------


    # 제일 명중 판정
    hit = skill.hit
    if skill.atk_f > 0
      hit *= user.hit / 100
    end
    hit_result = (rand(100) < hit)
    # 불확실한 스킬의 경우는 유효 플래그를 세트
    effective |= hit < 100
    # 명중의 경우
    if hit_result == true
      # 위력을 계산
      power = skill.power + user.atk * skill.atk_f / 100
      if power > 0
        power -= self.pdef * skill.pdef_f / 200
        power -= self.mdef * skill.mdef_f / 200
        power = [power, 0]. max
      end
      # 배율을 계산
      rate = 20
      rate += (user.str * skill.str_f / 100)
      rate += (user.dex * skill.dex_f / 100)
      rate += (user.agi * skill.agi_f / 100)
      rate += (user.int * skill.int_f / 100)
      # 기본 데미지를 계산
      self.damage = power * rate / 20

이것은 스킬의 제1명중판정부터 기본데미지까지입니다.

      # 분산
      if self.damage.abs > 0
        amp = [self.damage.abs * skill.variance / 100, 1]. max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end
      # 제2 명중 판정
      eva = 8 * self.agi / user.dex + self.eva
      hit = self.damage < 0 ?  100 : 100 - eva * skill.eva_f / 100
      hit = self.cant_evade?  ?  100 : hit
      hit_result = (rand(100) < hit)

이것은 스킬의 분산과 제2명중판정입니다.

3-1.제1명중판정부터 계속 보이기 시작하는 특징이..

skill.atk_f , skill.atk_f ,skill.pdef_f

이런 값들인데..

기본공격데미지때 해석한결과 attacker.atk 면.. attacker 의 atk 값이라고 해석됬는데..똑같이 해보면..

skill의 (atk_f) 값 이라고 되는데,

atk_f 의 값은 어떤값인가요? 다른 값들도 똑같이 _f 만 붙이면 비슷한 방식으로 구해지는 값이 되는건가요?

3-2. 배율을 계산에서..

      # 배율을 계산
      rate = 20
      rate += (user.str * skill.str_f / 100)
      rate += (user.dex * skill.dex_f / 100)
      rate += (user.agi * skill.agi_f / 100)
      rate += (user.int * skill.int_f / 100)
      # 기본 데미지를 계산
      self.damage = power * rate / 20

인데.. rate를 20으로 지정해놓고..

rate += 유저의str값 곱하기 스킬의 str_f값 나누기 100
rate += 유저의dex값 곱하기 스킬의 dex_f값 나누기 100

이런식으로 되고있는데..

대체 이게 뭔뜻인가요?

---------------------질문 4.------------------------------

==
+=
-=
/=
*=

의 계산방식..이 뭔가요?

[XXX.SS /x, y]. max

는..무슨뜻이죠?

self.damage.abs

는 스킬의 분산과 기본공격의 분산에서 공통으로 보이는데요..

방어자의 데미지의 abs 값 이라는게 무슨뜻이죠..?

abs가 스크립트에 따로 지정되어있는건가요?
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
8827 형제들이여 !!! 나를 구제해다오!! Ress 2006.01.26 223
8826 형제들이여 !!! 나를 구제해다오!! KaSsia 2006.01.25 263
8825 rpg2003에서 music음향이 작업시에는 실행되는데 게임을 실행하면 않되네요 ★샤일☆ 2007.01.03 784
8824 RPG2003의 그림들의 사이즈... MiNi'M' 2006.02.21 822
8823 RPG만들기2003에 관하여...정말 굼금해요~!~부탁드림 ∑☆メ이누∴。』 2005.08.09 577
8822 게이지바 구동 방법좀 <<게이지 유>> file 랑이a 2006.07.03 431
8821 길드는 어떻게 만드나요? 루넨스 2009.06.15 974
8820 길드는 어떻게 만드나요? 제로스 2009.06.15 1232
8819 동영상 관련및.. 급해요 ㅠ RML 2006.07.12 1483
8818 마법 연계 다시 질문!!! 제발 대답부탁!!; file 나르카이제 2005.06.15 331
8817 몬스터가없으면 다른곳으로 자동이동가능? Novelist 2006.08.29 277
8816 몬스터가없으면 다른곳으로 자동이동가능? CredMotion 2006.08.29 341
8815 스크립트로요,, 이동하는걸 보드게임처럼 할순 없나요? XLostTimesX 2006.01.09 429
8814 아이템창 같은 단축창를 만들려고하는데..[rpg2003] ScolPion 2006.04.15 572
8813 아이템창 같은 단축창를 만들려고하는데..[rpg2003] 방콕족의생활 2006.04.15 786
8812 질문! file 『Q트_아키』 2005.05.22 494
8811 "스크립트 데이터 읽기 실패" 라고 뜨는데.. 김세츠나 2009.07.31 1062
8810 "클래스가 등록되지 않았습니다"라니 -0-;;[RPG2003] Chrishyua .E 2007.03.02 700
8809 "클래스가 등록되지 않았습니다"라니 -0-;;[RPG2003] =ROD= 2007.03.07 886
8808 "파일 dmd 은 열지 않습니다" 이리저디 옮겼는데.. 윈드 2006.08.18 208
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)