解密敏捷、闪躲、命中的关系
本帖最后由 宅十四 于 2014-3-9 12:34 编辑今天看到论坛有人提问敏捷与命中闪躲之间的关系,发现论坛里好像没有这方面的资料,所以决定把自己的收藏搬运过来分享给各位朋友。本人不是作者,只是纯粹的搬运工。
魔力的240理论没错,但是其实是241才对
最终总结放在最前面,再看不懂没办法,表示无能为力:
1、闪躲最高为70%,1级GBL打百闪也能百分之30命中
2、敏捷有240理论,大于241部分要乘以0.3,411敏捷的人物(411-241)×0.3+241,为真实敏捷。
3、战斗中扣血魔会加敏捷,这样会间接影响命中率。而且影响很厉害,可能开始和你打的时候百闪,最终扣血魔后去到170闪躲,很正常,不过程序修正后最多还会是70%闪躲率最高。
4、百闪之后加阳炎,无意义,除非对方命中很高,阳炎转克高命中,不过最终也只能修正到70%
5、70%的最高闪躲实用中其实很恐怖的,PK中就那么几个回合,可能别人还没办法摸到你一下,因为连续出现10次以上闪躲在百次测试中,不少见
6、乾坤之后,就算百闪,依旧是最高70%闪躲
7、闪躲和命中敏捷的计算公式,需要知道的请老实看完全文
8、必定命中的概率不存在,是我之前误解了,其实是存在各种状态,例如咒术,或者防御护卫等,是必定命中的,所以最高为70%闪躲率不会错
9、求扣血魔增加敏捷的公式,解密很耗时,这个公式没有敏捷闪躲这么好分析。
正文
首先
无论多少闪,最大的闪躲概率为70%
闪躲计算公式为
敏捷比=防守方敏捷(241修正之后)/攻击方敏捷(241修正之后) ×10
▲提醒下大家:文章比较复杂,注意敏捷比和敏捷的概念不要混淆……
敏捷比去查表得到闪躲修正,详见★表:
闪躲概率=防守方闪躲+N+闪躲修正-M-攻击方的命中
1、最终闪躲率如果大于70,例如为100,也会被修正为70。
2、最终闪躲率如果小于1, 会被修正为1,也就是最低闪躲率为1
3、N为技能加的闪躲
4、M为技能加的命中
N和M这个两个值,没有详细研究,因为研究整个过程的数据追踪要花的时间太多了,还必须运行程序才可以看到不然只能靠推理,我估计是受伤之类的导致的属性影响吧
举例:
241敏捷的人打600敏捷的人,
([(600 -241)× 0.3 + 241 ] / 241) × 10
=(/241) ×10
=(348.7/241)×10
=14.6468879668049792531120331950207
≈14.6
进位为15
15敏捷比得到的闪躲加成查表之后为25,以下是分析各种情况:
双方无加命中以及闪躲的情况:
防守方闪躲概率百分之25也就是命中率为百分之75
攻击方+25命中的情况,则命中率为百分之99
防守方百闪,攻击方不加命中的情况,防守方闪躲率为70%,命中率为30%
防守方为百闪,攻击方为50命中的情况,(100+25)-50,防守方的闪躲为70%,攻击方命中为百分之30
防守方70闪,攻击方50命中,(70+25)-50
防守方闪躲率为45%,命中率为55%
防守方50闪,攻击方50命中,(50+25)-50
闪躲25%,75%
防守方30闪,攻击方50命中,(30+25)-50
闪躲5%,95%
如果防守方25闪躲以下,攻击方50命中,命中率为99%
PS:敌人扣魔扣血之后会加敏捷,所以,这里只是满血魔状态的计算,也就是第一次出手之后,必须计算扣血魔的加成敏捷了
闪躲率计算公式详情
第一步(加上其他的敏捷加成):
攻击方敏捷 = 攻击方现有敏捷+(战斗中属性修正× 0.01 × 现有敏捷)
例如:100 ,战斗中提升百分之20的敏捷,就是 400+(400 * 0.01 * 20)
防守方敏捷= 防守方现有敏捷+ (战斗中属性修正× 0.01 × 现有敏捷)
例如:防守方敏捷为200,战斗中提升百分之10 ,就是
200+(200 * 0.01 * 10)
第一步(修正敏捷):
攻击方241修正之后的敏捷
2种情况,小于241保持不变,大于241的情况:
攻击方241修正之后的敏捷 = (现有攻击方敏捷 -241) × 0.3 + 241
例如按照以上的情况,那么
400+(400 * 0.01 * 20) = 480
(480 - 241) × 0.3 +241
= 239 × 0.3 +241
=71.7+241
=312.7
防守方计算241修正计算公式与以上相同
第三步(计算闪躲率):
敏捷比
= 防守方敏捷/攻击方敏捷 ×10
得到的敏捷比结果有19种
(注意,敏捷比如果有小数点,那么四舍五入,这个四舍五入和我们平时不同,叫做四舍六入五看双。
不同之处在于,例如7.5,那么等于8,如果是8.5那么也是等于8,
计算方式是这样的,如果整数部分为奇数则,后面的小数点,大于等于0.5则进1,7.5进位之后为8
如果8.5,整数部分为偶数,则舍去小数部分,偶数必须小数点大于等于0.6才进位。8.6结果为9
但是偶数,如果8.5后面还有大于0的小数,例如8.5000000001,则也进位,结果为9
简单总结,结果整数部分为奇数的时候,按照我们平时的四舍五入来计算
如果,整数部分为偶数,那么小数点部分必须大于0.5才会进位。否则不进位。
)
敏捷比得到的结果有19种:
如果小于等于10
闪躲修正 = 1
结果11
闪躲修正= 5
结果12
闪躲修正= 10
结果20之前。每大1
则递增5(结果19,闪躲修正=50)
结果20之后。每大1
则递增2.5
结果等于21
闪躲修正=52.5
结果等于21
闪躲修正=55
直到28为最大,大于28的后面被忽略
结果为28
闪躲修正=70
闪躲修正最大的结果为70
以上结论见★表:
得到的闪躲修正为攻击对象闪躲的概率。
闪躲概率=防守方闪躲+技能加成的闪躲+闪躲修正-技能加成的命中-攻击方的命中
闪躲概率最大被修正为百分之70,无论多少闪躲都是这样
源程序的操作为 默认一个70的闪躲,之后如果计算出来的闪躲率小于70则覆盖整个闪躲
之后,闪躲率去进行逻辑运算 return 闪躲率 >=
rand(1,100);
如果随机数大于70的,返回的值就是1,接下去就不进行伤害运算。
还有几种情况是必定命中的,因为数值含义不明,我没有进行研究,我将它列出来
定义攻击方为A
定义防守方为B,以下数据没加0x开头的均为10进制数据,0x开头为16进制数据
1、BATTLE_GetDamageReact(a2) 函数得到的返回值大于0
2、B& 0x40 结果大于0
3、B 等于1 或者42或者43 或者44
4、B 等于60的时候 (BATTLE_checkEquipmentEffect(a2, a2)
& 8) 等于0也为必定命中
5、A
等于42的时候
根据以上必命中的条件来看,
0x458这个位置的数据很有可能是状态
★最终结论,闪躲率最高百分之70不到。不信可以自己去测试,几分钟的事情,如果为加点看这个文章的人,请仔细研究,仔细分析本文
PS:终于整理完了,我总结下结论...大概意思就是——1.敏捷也有“240理论”;2.自己相对敌方:敏捷闪躲绝对压制的时候,只有70%的闪躲率,敏捷命中绝对压制的时候,只有99%的命中率
``除了数字~~脸也略重··一般可以略偏向闪的方便=w= 只想问真的假的 因扎吉 发表于 2014-3-9 12:38
只想问真的假的
您可以测试,我感觉比较靠谱。自己没有高闪高命装备没法测试。我看原作者貌似是解密源程序推断的,所以是真的可能性比较大,最后我总结的那个70%闪躲和99%命中的结论应该是真的 嗯,有时间试试 精品的学习帖子! 反正试着去用脸贴贴就好! 0.0好长 玛吉纳 发表于 2014-3-9 13:01
0.0好长
哈哈。大概意思就是,敏捷也有240理论;闪躲再高,只有70%闪躲,命中再高,只有99%命中。最后总结——还是看脸~哈哈 宅十四 发表于 2014-3-9 13:05
哈哈。大概意思就是,敏捷也有240理论;闪躲再高,只有70%闪躲,命中再高,只有99%命中。最后总结——还 ...
闪避率跟闪避修正是不同的吧?
堆70闪跟堆100闪是不同的吧。。。没仔细看,想知道这个