조회 수 2007 추천 수 0 댓글 7
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

VX Ace의 민첩성은 2K때처럼 명중률에 영향을 주는 것 같지 않더군요.


민첩성이 낮으면 명중률을 깎이고, 민첩성이 높으면 명중률이 높아지는 설정은 어떻게 하지요?


구글링을 해도 RGSS2 데이터만 나와서 질문을 올립니다.


( 참고했던 RGSS2 : http://www.rpgmakervx.net/index.php?showtopic=39467 )




VX Ace의 Battler스크립트에는 다음 부분이 명중률/회피율 계산과 관련있는 것 같아 보입니다.


  #--------------------------------------------------------------------------

  # ● スキル/アイテムの命中率計算

  #--------------------------------------------------------------------------

  def item_hit(user, item)

    rate = item.success_rate * 0.01         # 成功率を取得

    rate *= user.hit if item.physical?      # 物理攻撃:命中率を乗算

    return rate                             # 計算した命中率を返す

  end

  #--------------------------------------------------------------------------

  # ● スキル/アイテムの回避率計算

  #--------------------------------------------------------------------------

  def item_eva(user, item)

    return eva if item.physical?            # 物理攻撃なら回避率を返す

    return mev if item.magical?             # 魔法攻撃なら魔法回避率を返す

    return 0

  end




命中率計算칸의 rate *= 줄을


    rate *= user.hit * user.agi / self.agi  if item.physical?


로 바꾸어서 테스트 해 봤는데 agi 두배 높은 적을 상대로 적은 우리편을 맞추기만 하고 우리편은 빗나가기만 하네요.


계산식대로라면 우리편이 적에게 절반은 맞추어야 할텐데.


방법이 없을까요?

?
  • profile
    Vermond 2012.03.06 22:52

    명중률만 따지실게 아니라 회피율도 따지시고, 실제 명중을 결정하는 부분이 따로 있으리라고 보여지므로 그 부분도 수정하셔야 될 듯 싶습니다.


    명중률과 회피율을 따로 작성해 두었다면, 실질적인 명중 여부를 결정하는 계산식이 다른 곳에 있겠죠.


    체감상 2배가 안 나오는건 시도 횟수가 부족해서일 수도 있지만, 계산식에서 뭔가 결과가 달라질 수도 있지 않은가 하고 봅니다

  • ?
    올리브오일 2012.03.07 01:34
    적의 공격력을 낮추고 HP를 높게 세팅하여 테스트용 적을 만들어서 공격을 약 50회 주고받은 테스트를 했으니 시도 횟수가 너무 적은 탓은 아닌 것 같습니다.

    VX ace는 각 캐릭터와 몬스터의 명중률을 DB에서 직접 설정하는데, 제 짐작에는 이 값이 그대로 user.hit으로 가는 것 같습니다.

    hit은 Game_BattlerBase에서 정의됩니다. (기본 스크립트 65행)
    그리고 Game_Battler 중 본문에 나오는 命中率計算에서 hit값을 계산합니다.

    그리고 502-503행인데
        @result.missed = (@result.used && rand >= item_hit(user, item))
        @result.evaded = (!@result.missed && rand < item_eva(user, item))

    난수가 hit값과 같거나 이보다 크면 빗나가고, 안 빗나갔어도 난수가 eva값보다 작으면 회피당하는 것 같습니다.

    hit이 충분히 크면 난수가 hit보다 커질 일이 없으니 빗나가지 않을 텐데...
    혹시 기본 스크립트의 다른 곳에 제가 건드려야 할 계산식이 있으면 알려주세요.
    아니면 계산식 어디선가 제가 예측하지 못한 에러가 났을 수도 있고요.
  • ?
    올리브오일 2012.03.07 01:42
    다른 변수를 선언하고 보정된 명중률을 그 변수가 받아, user.hit 대신 쓰게 하는 쪽도 생각해 보았는데...
    저의 루비 실력이 미천해서 어디서부터 손을 대야 할 지 모르겠습니다.

    공격자의 agi가 적보다 높거나 같으면 hit값을 그대로 적용하고
    else에서만 위 식을 적용해볼 수도 있는데...
    命中率計算 내부에서 조건문을 만들었을 때는 에러가 나더군요.

    변수를 선언하면 에러 없이 조건문을 돌릴 수도 있을텐데 자신이 없습니다.
    명중-빗나감, 명중-회피당함을 결정하는 난수가 0에서 1 범위에서 움직이는지, 0에서 100범위에서 움직이는지도 잘 모르겠고요.
    변수 선언으로 해결할 수 있겠다 싶은 부분이 있으면 그쪽도 좀 조언해주셨으면 합니다.
  • profile
    Vermond 2012.03.07 01:50

    플밍은 부분적으로 보면 뭐가 뭔지 절대 알 수가 없습니다 -_-;;

    원 소스 보고 분석을 해봐야 자세한걸 알수 있을 듯 하네요

  • ?
    인파 2012.03.07 01:56

    VX Ace 디폴트 스크립트는

    http://rgss.9bu.org/c642eb4e4350df51988ac409cb341b81

    여기에 있습니다.


    hit으로 검색하면 white나 whiten도 섞여 나오지만 거의 Game_Battler에 모여 있습니다.

  • profile
    Vermond 2012.03.07 04:25

    rand는 0과 1사이의 실수를 반환합니다 (0.535235 같은)


    명중률 계산이 아이템 명중-미스계산-캐릭터회피-회피계산 으로 되어 있어서 수정하기 미묘한데

    일단 수정하기 전에 원본을 저장해두시거나 맨 앞에 #를 추가해두면 주석처리가 되어서 동작을 안 하니까

    변경하고 싶은 부분에 #를 넣으시고 수정해보시는걸 권합니다


    그리고 계산식에서 사용되는 값은 전부 0~1이므로 계산값이 1을 넘어가면 무조건 명중/회피가 됩니다

    값이 0~1 사이를 벗어나서 이상한 결과가 나온 것 같네요.


    이게 참 애매한게 적이 5고 내캐릭이 10이면 보정치 x2가 되는데

    이 경우 원래 명중률이 0.5 이상이 나오면 1이 넘어서 무조건 명중/회피가 되게 됩니다.

    위에서 언급하신건 내 어질의 2배가 적이라고 했으니 반대로 적만 무조건 명중했겠군요


    그러니 보정치를 넣어서 조정을 해줘야 되는데 지금은 배고파서 잘 생각이 안나네요 -_-;;



    나머지 말하신 부분은 대략 잘 이해하셨으니 괜찮다고 보고

    수식 연구를 좀 하시면 될 듯 합니다

    수학공부할 시간이네요 -_-;



    요약하자면 명중률이 0~1 사이로 나와야 되는데 이 범위를 넘어서서 이상한 결과가 나왔다고 보여집니다


  • ?
    올리브오일 2012.03.07 19:48

    정말 감사합니다. 0~1사이에서 나오게 식을 짜야겠군요.


    예전에 하던 게임이 X=0.5^N 같은 식을 썼습니다.

    N이 커지면 결과값이 쪼그라들고 [ X = 0.125 (N=3) ]

    N이 작아지면 결과값이 1에 수렴하는 [ X = 0.933 (N=0.1) ] 결과를 내줬습니다.


    적의 agi가 내 agi의 몇 배인가를 N으로 놓고, (적이 내 agi의 두 배면 2, 절반이면 0.5)

    N의 밑을 잘 조정하면 응용이 될 것 같습니다.

    이번엔 식이 꼬이지 않기를 ㅋㅋㅋㅋㅋㅋ


List of Articles
번호 제목 글쓴이 날짜 조회 수
2768 도감처럼 %만드는 방법ㅜㅜ 1 1 고래씨 2012.01.04 2460
2767 액터 편집창에서 스킬 입력못하나요? 1 rkskekfk 2012.01.16 2164
2766 Kindred Saga 라는 작품 아시는분 계신가요 1 1 호빗 2012.01.22 2179
2765 Rpg만들기 2003 일시삭제 1 피빛고양이 2012.02.20 1622
» VX Ace 명중률 계산에 Agi(민첩성) 적용 어떻게 하죠? 7 올리브오일 2012.03.06 2007
2763 VX에서 동영상 삽입 질문. 1 삼오십오 2012.03.10 1390
2762 2k에 픽쳐표시에 대해서. 1 file 루에쿨 2012.03.18 1078
2761 RVX//전 서당개 수준만도 못한 모양입니다 1 2 Adriftor 2012.03.24 1311
2760 버그 해결방법 아시면 답변부탁드립니다 1 1 BJ스노우 2012.03.25 917
2759 처음 시작했는데요 다운받은 맵칩은 어디에 저장하나요??? 2 1 움브라 2012.03.25 928
2758 윈7에서 실행되지 않는 VX.. 1 file 마루 2012.03.31 873
2757 리메이크된 '다리밑에서'와 후속편에 대해 질문입니다. 3 뷰티풀레인저 2012.04.03 855
2756 장비착용할 때마다 이미지가 바뀌게할 수 있나요? 2 chobo11 2012.04.11 708
2755 VX ace에서 시간을 표시하고 싶은데 어디서부터 시작해야할지.. 3 R.D.H2 2012.04.21 554
2754 RPG2003 게임중에서 1 1 삶은만남 2012.05.05 651
2753 XNA 질문 ㅠ.ㅠ 3 1 file 찰드 2012.05.09 532
2752 Rpg2000에서! (스샷추가) ㅜㅜ 6 file 헐크 2012.05.09 587
2751 RPG2003 제작문의 3 1 file Aphrodite소라 2012.05.11 971
2750 탐정학원Q 제작하고있는데... 질문!! 2 file Aphrodite소라 2012.05.11 681
2749 rpgmaker로 제작한 게임 뜯기 방지하는법? 2 2012.05.20 898
Board Pagination Prev 1 ... 299 300 301 302 303 304 305 306 307 308 ... 442 Next
/ 442






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

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