您好,欢迎来到气泡游戏网!

气泡游戏网
手机应用中心 热门攻略 轩辕传奇 气泡问问 疾风之刃 枪神纪 天堂2M 救世者之树 上古世纪 黑色沙漠MOBILE 未来战 冒险岛M(楓之谷 M) 传说对决 瓦尔海姆 鬼谷八荒 怪物猎人系列

当前位置:首页 > 攻略库 > 天堂 > 正文

《天堂1台服》【情报】3.70 魔法攻击力之【抗魔减免係数】破解

更新时间:1376666187   |   来源:巴哈姆特

oirz (orz) #1 2013-08-16 23:16:27
原始数据资料我放在
http://www.2shared.com/file/C36WgL5q/28_.html
解压缩后有 88 个文件档

档名就是被攻击者的抗魔
打开内容就是原始攻击数据

攻击方智力 28 , 道具魔攻 0 , 这些条件都不变
调整被攻击方的抗魔 , 最低 -14 , 最高 190

先利用程式把一堆原始资料统计整理出来

接下来就是解谜大作战

魔法攻击力公式及解说:
魔法攻击力
=Int [ Int [ Int [ 乱数 * { 3*(智力+道具) - 4 - 属抗参数 } / 32 ] * (3/2)(爆击) ] * 抗魔係数 ] - 减伤

(注意顺序是先爆击取整数, 再乘以抗魔係数取整数, 最后才是减免)

乱数: 攻击性魔法所骰出来的乱数
智力: 就是智力
道具: 利用道具所增加的魔攻, 并不是角色解说栏所显示的魔攻
      显示的魔攻包含了三部分
      1.魔法等级
      2.额外魔法点数
      3.道具所增加的魔攻
      就攻击性魔法而言, 只有 3 有用

属抗参数: 暂且按下, 下回分晓

抗魔係数: 抗魔减免係数或称抗魔係数, 为抗魔的函数
          未测试前大概就知道, 抗魔 = 0 时, 抗魔係数 = 1 ; 抗魔 = 100 时, 抗魔係数 = 1/2
          抗魔超过 100 之后,  有证据显示抗魔係数衰减的幅度变小
          因此一开始我猜测的抗魔係数函数大概是长这样的双曲线
          抗魔係数 = (100)/(100 + 抗魔)
          
          通过(0,1) 与 (100,1/2) , 而且衰减幅度越来越小 , 不会衰减至 0
          但是测试资料显示却是线性的衰减, 以下是抗魔 0 ~ 47 的烈炎伤害平均值
          趋势是线性的
          
          如果线性而且通过 (0,1) 与 (100,1/2), 那就只能猜这种形式
          抗魔係数 = (200 - 抗魔)/200
          
          缺点是抗魔超过 100 以后这个公式就不能用, 必须分段, 否则抗魔只要 200 就无敌了
          然而比对测试资料发现
          抗魔   数据
          0,1     没完没有差异
          2,3     没完没有差异
          4,5     没完没有差异
          6,7     没完没有差异
          8,9     没完没有差异
         10,11  没完没有差异
         12,13  没完没有差异
         14,15  没完没有差异
         .....
         换句话说, 抗魔係数函数要改成这样 (100 - Int[抗魔/2])/100
         比对大量测试数据之后, 这的确就是抗魔 0 到 100 的正确抗魔係数公式!
         已知抗魔超过 100 不适用 , 但抗魔小于 0 时也能用吗 ?
         如果能用, 代表抗魔係数可以超过 1 , 也就是抗魔负越大, 魔法也越痛
         结果比对资料后发现, 抗魔 -14 跟抗魔 0 效果是一样的
         到此得出抗魔係数函数

                  1                                         , 当抗魔 < 0
         =
                 (100 - Int[抗魔/2])/100         , 当 0 <= 抗魔 <= 100

         
         接着比对抗魔 100 以上资料发现
         抗魔 100,101,102,103,104,105,106,107,108,109 之间, 完全没有差异
         到抗魔 110 才出现差异
         
         抗魔            数据
         100 ~ 109   没完没有差异
         110 ~ 119   没完没有差异
         120 ~ 129   没完没有差异
         130 ~ 139   没完没有差异
         140 ~ 149   没完没有差异
         150 ~ 159   没完没有差异
         160 ~ 169   没完没有差异
         170 ~ 179   没完没有差异
         180 ~ 185   没完没有差异

         因此抗魔超过 100 之后的抗魔係数可能是

         (100 - 50 - Int[(抗魔 - 100)/10])/100

         比对测试数据之后, 这的确是抗魔 100 到 190 的正确抗魔係数公式!
         至于这个公式可以适用到多高的抗魔 , 我也不知道
         因为我只能撑到抗魔 190
         再高就无法保证公式不会再分段
         目前确定公式分成三段 , 若第三段之后不再改变 , 那抗魔到达 600 就无敌

                            1                                                                 , 当抗魔 < 0
抗魔係数函数 =  (100 - Int[抗魔/2])/100                                , 当 0 <= 抗魔 <= 100
                            (100 - 50 - Int[(抗魔 - 100)/10])/100           , 当 100 < 抗魔 < ??


把这三段写在一起后

抗魔係数 = (100-INT(MIN(MAX(0,抗魔),100)/2)-INT(MAX(0,抗魔-100)/10))/100

到此应该可以说抗魔係数破解了
而魔法攻击力公式的最后一块拼图, 应该就是属抗参数的公式
(其他像圣界, 化身, 柑橘帽惩罚等是比较小的细节)
至于属抗公式如何, 且待下回分晓

看较旧的 18 则留言

雷姆大人: 12-14 18:32

来玩天堂m吧~ http://lineage-mobile.ga

oirz (orz) #2 2013-08-17 17:46:36
属抗的部分我已经做了
0,3,4,7,8,9,10,13,15,30,40,60,80,130,142
最高可以撑到 142 , 不过萤幕只能显示到 100
原始数据与资料统计放在
http://www.2shared.com/file/zsKoPcHP/2880.html
攻击方还是智 28 火妖 , 被攻击方抗魔维持 80 , 只有变动火属抗
目前可信任的情报是

属抗参数最高应该只到 32
属抗 100  虽然没测 (以上这张图表都是测试过的) , 不过我猜应该是 32
换句话说属抗超过 100 的部分没有用

与精华区 XXXXCAT 公式的比较:
精华区公式的主要架构是定义了一个属抗係数
抗属性係数:

1 + (3/32) * 〔施法者智力 + 影响施法者魔攻的道具 - 12 - (目标的抗属性值/10)〕

然后再用魔法所骰出来的乱数乘上这个係数
魔法攻击力 =
乱数 * { 1 + (3/32) * 〔施法者智力 + 影响施法者魔攻的道具 - 12 - (目标的抗属性值/10)〕}

如果没有属抗, 又有人把   [ 1 + ( 智力 - 12 + 道具 ) * 3/32]  称作  SP 係数
SP 係数就只跟智力或道具魔攻有关
通常抗属性係数或是 SP 係数』, 算出来都会有小数点
因此按照这个公式算法, 必须面临一个整数与一个带小数点实数之间的乘法运算
有写过程式的人应该都知道
变数有几种型态, 有 2 bytes 的整数 (-32,768 ~ 32,767)
有 4 bytes 的整数 (-2,147,483,648 ~ 2,147,483,647)
另外还有浮点数 float
基本上只要未看先猜天堂这些公式都是做整数运算, 通常都不会有错
所以我把

乱数 *[ 1 + ( 智力 - 12 + 道具 ) * 3/32]

改写为

乱数 * { 3*(智力+道具) - 4 } / 32

这两个式子在数学上完全等价, 但是在电脑运算上
改写后的式子永远只做整数运算
乱数先乘上整数 { 3*(智力+道具) - 4 } , 再除以整数 32
因为资料型态是整数 ,  做完除法后可能产生小数,  所以必须取整数
(这也是为什幺完整的公式会有那幺多 Int ( ) )

目前比较完整的公式是
魔法攻击力
=Int [ Int [ Int [ 乱数 * { 3*(智力+道具) - 4 - 属抗参数 } / 32 ] * (3/2)(爆击) ] * 抗魔係数 ] - 减伤

其中抗魔係数已解

抗魔係数 = (100-INT(MIN(MAX(0,抗魔),100)/2)-INT(MAX(0,抗魔-100)/10))/100

属抗参数部分已解



属抗参数看有没有人愿意测试补上上图的缺块
如果有意愿的话 , 可以留言或写信给我
我会跟你说要怎幺做 , 细节这里不能讲太明
只能说有纪录的文件档就可以了
数据的统计与分析我来做
所以基本上不会很累
如果越多人参与, 大家分配一下
其实每个人要做的也不多
hotel123: 08-18 02:44

orz大~~我读书时数学都用混的~~所以只看结果请多包含^^

orz: 08-18 12:31

哈,我想我做成一张减免表会比较有用,之前有人写信来问怎幺算,一开始我看不懂他的算法

orz: 08-18 12:33

后来才发现他把 Int 都带成智力(36), 算出来的威力非常惊人(超过两万)

a213970 (阿鲁鲁) #3 2013-08-17 17:52:45
※ 引述《oirz (orz)》之铭言
> 原始数据资料我放在
> http://www.2shared.com/file/C36WgL5q/28_.html
>> 太强了...
虽然我都看不懂
您是数学天才
orz: 08-17 17:54

我只是吃饱太闲@@

q0933708852 (欸隆) #4 2013-08-18 02:42:47
这篇要赶快精华了呀
你是数学系的吧XD
oirz (orz) #5 2013-08-18 07:51:01
因为有人写信来问怎幺算
我示範一下智力  28, 道具魔攻 0 ,  抗魔 179 , 属抗 0 , 减免 0 的算法

魔法攻击力
=Int [ Int [ Int [ 乱数 * { 3*(智力+道具) - 4 - 属抗参数 } / 32 ] * (3/2)(爆击) ] * 抗魔係数 ] - 减伤

Int [ ] 是地板函数 , 不是指智力
抗魔係数 = (100-INT(MIN(MAX(0,抗魔),100)/2)-INT(MAX(0,抗魔-100)/10))/100
上面抗魔係数的写法完全符合 Excel 的格式 , 所以只要把"抗魔"改成储存格位址就可以用了
注: Excel 的函数要用小括号
例如: 抗魔=179 时,
抗魔係数 = (100-INT(MIN(MAX(0,179),100)/2)-INT(MAX(0,179-100)/10))/100
= (100 - 50 - INT ( 79/10 ) ) / 100
= 43/100
注:  抗魔 170 ~ 179 对于攻击性魔法是一样的, 所以抗魔如果刚好是 109 , 119 , 129 ,....179 等
最好再撑一下, 撑到 110, 120 , 130 ,140 ,150 ,160 ,170 ,180 等等
抗魔 100  以内的话, 能撑到偶数比较好, 因为 2n 跟 2n+1 的抗魔係数是一样

回到刚刚的例子, 智力  28, 道具魔攻 0 ,  抗魔係数 43/100 , 减免 0 , 属抗参数 = 0
所以无爆击的攻击力 = Int [ Int [ 乱数 * { 3*28 - 4 } / 32 ]   * (43/100) ]
以烈炎来说 , 骰数大多集中在 76 ~ 100  之间
乱数 = 76 , 攻击力 = Int [ Int [ 76 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 81
乱数 = 77 , 攻击力 = Int [ Int [ 77 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 82
乱数 = 78 , 攻击力 = Int [ Int [ 78 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 83
乱数 = 79 , 攻击力 = Int [ Int [ 79 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 84
乱数 = 80 , 攻击力 = Int [ Int [ 80 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 86
乱数 = 81 , 攻击力 = Int [ Int [ 81 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 86
乱数 = 82 , 攻击力 = Int [ Int [ 82 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 88
乱数 = 83 , 攻击力 = Int [ Int [ 83 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 89
乱数 = 84 , 攻击力 = Int [ Int [ 84 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 90
乱数 = 85 , 攻击力 = Int [ Int [ 85 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 91
乱数 = 86 , 攻击力 = Int [ Int [ 86 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 92
乱数 = 87 , 攻击力 = Int [ Int [ 87 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 93
乱数 = 88 , 攻击力 = Int [ Int [ 88 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 94
乱数 = 89 , 攻击力 = Int [ Int [ 89 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 95
乱数 = 90 , 攻击力 = Int [ Int [ 90 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 96
乱数 = 91 , 攻击力 = Int [ Int [ 91 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 97
乱数 = 92 , 攻击力 = Int [ Int [ 92 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 98
乱数 = 93 , 攻击力 = Int [ Int [ 93 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 99
乱数 = 94 , 攻击力 = Int [ Int [ 94 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 101
乱数 = 95 , 攻击力 = Int [ Int [ 95 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 101
乱数 = 96 , 攻击力 = Int [ Int [ 96 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 103
乱数 = 97 , 攻击力 = Int [ Int [ 97 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 104
乱数 = 98 , 攻击力 = Int [ Int [ 98 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 105
乱数 = 99 , 攻击力 = Int [ Int [ 99 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 106
乱数 = 100 , 攻击力 = Int [ Int [ 100 * { 3*28 - 4 } / 32 ]   * (43/100) ] = 107

以下这是实测资料
[智28,道具魔攻0之火妖施放烈炎 VS 抗魔179,火属0,减伤0之妖精]
76,2
77,2
78,2
81,2
82,2
83,2
84,4
86,14
88,11
89,12
90,18
91,11
92,11
93,14
94,15
95,24
96,22
97,17
98,11
99,11
101,21
103,7
104,4
105,3
106,1
107,2
108,2
109,1
117,1
130,2
132,2
133,1
135,6
136,2
138,4
139,3
141,5
143,2
146,3
148,1
149,2
151,1
154,3
156,1
157,2
162,1
165,1
174,1
次数=292
平均=101.318493150685

公式预测与实测资料的比对

比对重点:
85 , 87 , 102 这三个数据不会出现
86 与 101 出现次数偏多 , 因为它们都有两乱数可以产生 ,  别人只有一个

基本上我的所有实测数据都验证过
除了少数几笔异常的数据之外 ,  其他都可吻合公式
14159 笔数据里面 ,  异常的不会超过 20 笔
异常的像这样 , 突然冒出的 58 不知道是不是三峰 , 又或是补血补太快

另外我也比对不能说的秘密大的几笔高智高魔攻数据
也都可以吻合




最后再说一下属抗参数公式
属抗参数公式未测试前 , 我是以验证 Int [ 3 * 属抗 / 10 ] 来做
最多预计可能作一点修改就可以找到公式
例如: 属抗参数最高只到 32 , 那幺修改为 Int [ 8 * 属抗 / 25 ] 也是很合理的事
但前面的证据显示 :  (8,1) , (9,2) , (10,3)

由于规律性不如预期 , 所以要找出公式必须属抗 1~100 都要做比较保险
(不过如果像 3 跟 0 是一样的,  那 1 , 2  应该也一样, 就可以不用做)
因为目前的属抗装备限制 , 也不容易想做的数据都可以做 , 不像抗魔装那幺好调整
而且再过几天 , 我也没时间在玩这些测试
所以属抗公式或许没办法找出来

最后再补充一下奇古兽的公式与魔法攻击力的公式有互通之处
但也有不同之处 , 例如奇古兽不适用属抗参数公式 , 它用的是属性卷的加成公式
以及奇古兽武卷的作用都与魔法攻击力公式不同
目前奇古兽打仓库的公式没问题
但是抗魔係数是不是一样还要进一步测试才知道
cpsuufujsu (99oo) #6 2013-08-18 11:41:26
大大真的很厉害,可是小弟很愚笨,有看没有懂,但这是一定要给GP的
只是,如果可以简单化~例如抗魔50~190之间各减少几%伤害,这是最好不过了
orz: 08-18 11:55

抗魔 0 ~ 100 , 每 2 点抗魔减免 1% , 抗魔超过 100 , 每 10 点抗魔减免 1%

99oo: 08-18 11:59

ORZ大真是神人!!由衷感谢~讚!

oirz (orz) #7 2013-08-18 12:22:09
※ 引述《cpsuufujsu (99oo)》之铭言
> 大大真的很厉害,可是小弟很愚笨,有看没有懂,但这是一定要给GP的
> 只是,如果可以简单化~例如抗魔50~190之间各减少几%伤害,这是最好不过了

做成表比较清楚

(抗魔超过 200 部分只是理论, 并无实测)
抗魔的配装要点
1. 100 以内 ,  尽量配到偶数的抗魔
2.  超过 100  之后 ,  尽量配到 10  的倍数

被遗忘的人: 08-18 12:41

有表清楚多了,感谢!!!.

Captain: 03-07 10:30

再跪...(GP奉上)

bcdefg: 05-06 23:16

我觉得这篇清楚多了谢谢简短有力

push680210 (加油好吗?) #8 2014-03-07 10:13:09
大大.....小弟愚笨看不懂
不过大大对天堂的热情,让小弟一定要上线给大大GP
小弟也想请问大大
现在减免装当道.....减免是否会抵扣魔法攻击
魔法武器所发动的魔法,是否也跟魔防,减免抵扣有关呢?
atzailin (放开那块饼乾) #9 2014-03-07 10:21:45
※ 引述《oirz (orz)》之铭言
> 做成表比较清楚
> 在新视窗开启图片
> (抗魔超过 200 部分只是理论, 并无实测)
> 抗魔的配装要点
> 1. 100 以内 ,  尽量配到偶数的抗魔
> 2.  超过 100  之后 ,  尽量配到 10  的倍数

把表格放在第一篇吧
毕竟大部分的人只想知道结果
或者说~想知道内容也是看得无煞煞~

测试得真有耐心
记录那最原始的美丽: 03-07 12:38

很有耐心不过还是很希望有数据表格可以分享....(懒人包)

maidetf148 (翱翔天际) #10 2014-03-21 12:49:17
感谢大大用心写出
看的出来大大应该是理工科的
写得很棒喔

精彩推荐

Wonderful recommendation

更多

关于我们 | 商务合作 | 广告服务 | 法律声明 | 内容导航 | 游戏帮助 | 问题反溃

本站所有软件,来自于互联网或网友上传,版权属原著所有,如有需要请购买正版。如有侵权,敬请来信联系我们,我们立刻删除。

抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活

Copyright 2019-2025 by 鲁ICP备2024066534号-1 成都市互联网举报中心