赞 | 0 |
VIP | 15 |
好人卡 | 21 |
积分 | 7 |
经验 | 24727 |
最后登录 | 2021-10-29 |
在线时间 | 2184 小时 |
- 梦石
- 0
- 星屑
- 672
- 在线时间
- 2184 小时
- 注册时间
- 2009-12-6
- 帖子
- 607

|
本帖最后由 ML4455739 于 2012-10-7 16:10 编辑 ; P o' F7 p( a% a6 k
; N+ E0 X5 J% Q- Q; i/ x5 |) G
先放个参照表备忘。
/ @% @* J- t% r/ h- ystr 力量0 S& ^1 u7 X$ D/ D
dex 灵巧
2 I% L, A& D! r" C, iagi 速度- r$ T; G2 B# W J( v% n
int 魔力6 _% E+ }8 P9 }9 P
atk 攻击力# M5 k T8 h! K2 z5 }4 p
pdef 物理防御; d9 R0 z+ N- @
mdef 魔法防御
" f. v" X; \% n1 M' K/ Beva 回避修正 在XAS 3.82里XAS - Damage找到的伤害计算公式,其中回避部分的计算式是如下:- eva = 8 * self.agi / attacker.dex + self.eva; I+ o* G4 z/ a/ g4 |; Y
- hit = self.damage < 0 ? 100 : 100 - eva; {& S# h S2 L& S% U
- hit = self.cant_evade? ? 100 : hit! g; `+ {2 r A2 n; e9 d
- hit_result = (rand(100) < hit): B1 \) w. ]7 n9 a( c! L
复制代码 对照的中文翻译是:7 T2 d7 g$ D( q
闪避率 = 8 × 速度值 / 灵巧值 + 回避修正值
. g: G7 |0 Q8 [ r命中率 = 伤害小于零吗 ? 如果小于零则命中率为100;反之命中率为100 - 闪避率& b3 p6 Y( r! C1 @
命中率 = 无法闪避的场合吗? 如果无法闪避命中率为100;反之命中率不变! p8 P- w1 w3 V% m8 S
是否击中 = ((随机数0~100) 是否小于命中率)
+ U* ]% e' Q8 R; V$ }& `. M6 w; O
说明:- b& a5 B* J8 p% w' ?0 J [! Z, V
无法闪避的场合可能是由于状态,数据库-状态的“不可回避攻击”那一栏有此设定。
. ?+ p, \% T& E, ?% S5 N是否击中的概念是一个布尔型(即true/false 真或伪),7 O. {. f" Q* G. _4 b& O3 t
XAS - Damage的53行左右有一个if hit_result == true就是对是否命中的分歧,. Y/ m/ }( o0 l9 g8 ?% P
是否命中这个判定结果为真则进行伤害相关,如果为伪,会执行126行左右的:- self.damage = "Miss"0 D# i2 B' g! b9 L9 C
- self.critical = false
: m. Y. I+ w" m
复制代码 即设定伤害为miss,同时取消会心一击标志。
7 P& p2 q# G) T9 a- P- h( } _6 Y; q2 f( q {
H. V" g1 T/ Q5 ?总的来说,
) P3 g: z6 s; A3 m$ o! m) C0 m可能是您的游戏中数据库-角色栏对某个角色的能力值成长曲线设置不平衡导致,; y e6 {/ k6 n* A7 t: M* N
需要修改灵巧(青色的成长曲线)以及速度(绿色的成长曲线)。
6 Q' z5 I# i/ l5 q |
|