조회 수 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
번호 제목 글쓴이 날짜 조회 수
6068 RVX//전 서당개 수준만도 못한 모양입니다 1 2 Adriftor 2012.03.24 1311
6067 2k에 픽쳐표시에 대해서. 1 file 루에쿨 2012.03.18 1078
6066 VX에서 동영상 삽입 질문. 1 삼오십오 2012.03.10 1390
» VX Ace 명중률 계산에 Agi(민첩성) 적용 어떻게 하죠? 7 올리브오일 2012.03.06 2007
6064 Rpg만들기 2003 일시삭제 1 피빛고양이 2012.02.20 1622
6063 Kindred Saga 라는 작품 아시는분 계신가요 1 1 호빗 2012.01.22 2179
6062 액터 편집창에서 스킬 입력못하나요? 1 rkskekfk 2012.01.16 2164
6061 도감처럼 %만드는 방법ㅜㅜ 1 1 고래씨 2012.01.04 2460
6060 브라보 마이 라이프라는 게임을 찾습니다! 1 섀이스트 2011.12.16 2712
6059 예전 게임 '마스터나이트'를 찾습니다~ 1 짱나돠란 2011.12.04 2735
6058 부탁입니다 게임 메이커 2011.12.02 2712
6057 지진효과...? 1 김미옄 2011.11.01 3176
6056 rpg2003 사이드뷰 전투방식을 rpg2000의 기본전투방식으로 바꾸는법 캡슐 2011.09.30 3894
6055 rpg2000에서 파이널 판타지의 용기사 전용기인 점프 스킬을 만들고 싶은데 외길제작자 2011.09.24 3893
6054 처음에 캐릭터안뜨고 이벤트 코와붕가 2011.09.11 3677
6053 rpg xp 도박 이벤트 질문이여 ... 1 file 7번재루키 2011.09.08 4077
6052 알만툴 2003 기본 배틀에서 패턴 제작 좀 알려주실분 1 file 짜스터 2011.09.05 3940
6051 쿠폰을 샀는데 안오면 어떻게 해야 합니까? 1 file 온새미로 2011.08.06 3849
6050 판타지아바타 도트 이미지(gif) 구합니다. 진심이 담긴 헬프~~ 아라서 2011.07.07 4217
6049 이 게시판은 망했습니다! 2 A. 미스릴 2011.06.22 4158
Board Pagination Prev 1 ... 134 135 136 137 138 139 140 141 142 143 ... 442 Next
/ 442






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

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