查看单个帖子
旧 2011-04-25   #1
kimmina
黄金会员
黄金会员四级会员
级别:22 | 在线时长:1334小时 | 升级还需:46小时级别:22 | 在线时长:1334小时 | 升级还需:46小时级别:22 | 在线时长:1334小时 | 升级还需:46小时级别:22 | 在线时长:1334小时 | 升级还需:46小时
 
kimmina 的头像
 
注册: 07年11月28日
来自: 川崎
帖子: 447
声望力: 22
声望: 52 kimmina 初领妙道
积分:19
精华:3
现金:23两梁山币
资产:117616两梁山币
致谢数: 3
获感谢文章数:2
获会员感谢数:2
关于溢出(主要是dodge)

据震某说wiz已经把/3挪到前面了,即[
power = level*level/3*level
]
有效等级>1860
会出现溢出

除了dodge以外,攻击技能也比较容易溢出(老妖怪太多...)
计算攻击技能power的时候,会在有效等级基础上+[apply/attack]的,然后在计算power
level=有效等级+[apply/attack]
([apply/attack]并不体现在enable数值里,比如:exert powerup以后enable没变化)

加[apply/attack]的perform比较多
dragonforce\zhenshen +(dragonforce lvl)/50 上限:50
tonsillitis\powerup    +(tonsillitis lvl)/50 上限:50
snowsword\diezhang  +(双方baihua-zhang lvl之和)/16
snowsword\wuxue    -(enable sword)(00%,10%~50%) <-snowsword越低越好的原因
wzg\hammer,staff    +(enable sword)/3
总之:
[攻击技能有效等级+apply/attack]=1860是最好的。

这些都是看的xyj2000老代码,现在的zz可能有改动。

突然觉得perform hammer是个好技能阿,加的命中好多阿,而且mark也不冲突,而且也不用enable zhenyuan-force,而且busy最多一秒,而且剑的攻击也高,而且还加damage!
longgong的id如果千手丢了,可以perform wuxue,bianfu,perform hammer,然后学hammer,huntian-hammer拿着锤子到处砸多爽阿!不比千手差多少阿!(因为用千手没parry,很好理解:用手parry武器不找死么...)huntian-hammer还可以打断对方兵器!(开山锤不行)
当然,学基本hammer要用点潜能的。
nnd!我之前为什么要放弃阿!!!
考虑要不要再叛一圈ing...

关于锤法:
kaishan-chui:
每招都有个hitagain方法,在这个方法里只要对方parry了,就会追加一次攻击(追加的攻击被parry,继续追加一次...)
结论:开山锤能削弱对方parry的作用(并不是忽略对方parry,因为在追加的攻击中还要判断dodge+parry)
huntian-hammer:
一共6招,其中3招有bash_weapon方法,
在bash_weapon里对方parry了的话,会根据武器的重量随即判断是不是能打断对方的兵器,判断方法在这个帖子里
砸兵器啦!「啪」!
打断怪的兵器后好处多多
1。怪就不能parry,玩家的命中率会很高
2。怪攻击的时候,玩家容易parry(空手攻击时,被攻击对象的parry_power*2)
3。除了jinghun-zhang,不会被打伤(安全,省药)

↓溢出原因
-----------------------------------------------------------
现在基本都会wuxue+bianfu,还能骑天马,穿踏云靴
dodge多少会溢出呢?
enable>1290

原因如下:
int最大值=2^31=2,147,483,647

战斗中计算dodge power方法如下
power = (level*level*level) / 3
※level:dodge有效等级

根据上面的计算方法,[(level*level*level) >int最大值]就会发生溢出
(由于是一步一步计算,所以没到/3就已经溢出)

1290的立方:2,146,689,000
1291的立方:2,151,685,171
即,dodge有效等级如果=1290时效果最好,计算结果
1290*1290*1290/3:715,563,000
(实际上要在上面的基础上加上wx,wx上的溢出连bbx都不用考虑)
dodge有效等级如果=1291则会溢出,计算结果
1291*1291*1291/3:-714,427,375
战斗效果:不能躲过敌人的攻击,后面就完全靠parry了。

dodge有效等级>1290就会溢出,但并不是说计算结果一定<0
比如
1800*1800*1800/3:512,344,234
2000*2000*2000/3:-196,644,864
2200*2200*2200/3:686,021,802
都是32位的错~什么时候更新成64位阿~
(^-^)

parry,攻击技能的算法与上面类似
现在老妖怪太多,溢出无处不在。

又看了一下,发现下面还有一段代码
if ( power > 100000 )
power = power / status * (int)ob->query("sen");
else
power = power * (int)ob->query("sen") / status;

如果power原来是+值,则不必担心(先除后乘)
但是如果power溢出以后为-值,由于在这里还要乘以[精神]
可能会出现2次溢出,这次溢出以后本来是-值的power有可能咸鱼大翻身变成+值!
更复杂了。。。
不知道zz什么情况。
如果多试验几次的话,多少enable会溢出应该是可以试验出来的。(dodge power溢出的话完全不能躲避。)

此帖于 2011-05-13 16:39 被 kimmina 编辑.
kimmina 当前离线  
+30 两梁山币
回复时引用此帖