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

|
本帖最后由 ML4455739 于 2012-10-7 16:10 编辑 0 k+ a; ~: Y) i0 O6 _/ b9 i
3 E& v2 R, ?- h/ O$ {" _) H先放个参照表备忘。+ \' l! r8 z# O) {( x
str 力量
6 P, ?( A6 `0 Q* |dex 灵巧
" x$ f* p0 u& g; Z2 fagi 速度7 Y# R' K0 f/ |
int 魔力* @( ~) s+ `: e
atk 攻击力
8 n7 W" Z) A4 h* W/ A; X- X& g$ Tpdef 物理防御
) b+ o/ U3 M/ h4 ymdef 魔法防御
% y7 N, O& F7 W4 a5 neva 回避修正 在XAS 3.82里XAS - Damage找到的伤害计算公式,其中回避部分的计算式是如下:- eva = 8 * self.agi / attacker.dex + self.eva! E6 p, i$ |) q$ R8 H' ~
- hit = self.damage < 0 ? 100 : 100 - eva0 V5 D2 U1 n, R, f, h
- hit = self.cant_evade? ? 100 : hit( |) K* P' R5 C" q8 h, ]
- hit_result = (rand(100) < hit)
) ?. R# D/ I5 s) G
复制代码 对照的中文翻译是:
! U2 T: b% C- H* f9 v( E& u6 t闪避率 = 8 × 速度值 / 灵巧值 + 回避修正值8 a% j% J; r1 v
命中率 = 伤害小于零吗 ? 如果小于零则命中率为100;反之命中率为100 - 闪避率& q: N8 d: i- b) [
命中率 = 无法闪避的场合吗? 如果无法闪避命中率为100;反之命中率不变5 t& V& p3 s+ {6 ^) s
是否击中 = ((随机数0~100) 是否小于命中率)3 J: |2 L r% n8 e
* r: d3 o8 y8 m: ?说明:) U, a* z& T! X& ]
无法闪避的场合可能是由于状态,数据库-状态的“不可回避攻击”那一栏有此设定。
% l3 b; y9 o! ?- r# z# h是否击中的概念是一个布尔型(即true/false 真或伪),0 n; h# G: M9 ]$ c& [* `
XAS - Damage的53行左右有一个if hit_result == true就是对是否命中的分歧,
: ~1 O" z. a1 a" v+ l( w! \是否命中这个判定结果为真则进行伤害相关,如果为伪,会执行126行左右的:- self.damage = "Miss"8 W* ~3 F% |- f. A% o
- self.critical = false. N- ?7 p0 T2 {3 M% }) X1 c
复制代码 即设定伤害为miss,同时取消会心一击标志。
% N' F& C9 t* M
" e) T( a1 n O1 K2 w- \0 `/ k. e m" N
总的来说,
* a, g5 G9 n4 _: }! V2 D6 ]可能是您的游戏中数据库-角色栏对某个角色的能力值成长曲线设置不平衡导致,4 _# f+ }9 F) |. G: T$ A
需要修改灵巧(青色的成长曲线)以及速度(绿色的成长曲线)。2 M8 E, W3 o, ` [( A
|
|