铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 6193|回复: 24

[意见建议] 【源码分析】苍炎伤害解析,对于修改伤害公式的建议(为什么高连武功如此吃香?)

  [复制链接]
发表于 2012-3-7 21:33 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
本帖最后由 点滴 于 2012-3-8 18:05 编辑

苍炎伤害是由这个函数function War_WugongHurtLife(emenyid,wugong,level,ang)来完成
代码一共1300多行,如果你看完了,你一定是蛋疼人士...当然...我蛋疼的看完了...

感谢btxdex 最先对这个函数的解读,让我事半功倍的看完了代码,帖子链接如下:
http://www.txdx.net/forum.php?mod=viewthread&tid=532507&highlight=%C9%CB%BA%A6

当然光看代码是看不出所以然的,要了解其中的原理动动笔计算是非常有必要的
以下为计算过程:(伸手党可以略过了)
为了方便论证结论,能忽略的因素尽量忽略,文中橙字标出,重要数据红字标出

我方人物:攻击300   内力9500,   测试人物为扫地和张三丰,测试武功为辟邪剑法
HURT是伤害;ATK是我方攻击;DEF是敌方防御;

伤害计算:                                                                        辟邪剑谱:武功威力1200   
武功到极  hurt=武功威力/3(不到极/4)                                  hurt=1200/3=400               
判断无名刀法(忽略)
判断武功搭配武器威力(忽略)
太极拳借力打力(忽略)
获取我方攻击力ATK和敌方防御力DEF                                   ATK=300    DEF1=500(扫地)  DEF2=300(三丰)
夫妻加成(忽略)
内力攻击加成【(当前内力值*2+最大内力值)/3/50】              ATK=300+(9500*2+9500)/150=490
伤害增加攻击力/4                                                               hurt=400+490/4=522.5      
武学常识加成hurt=hurt+(mywuxue-emenywuxue)/2            hurt1=522.5-50=472.5    hurt2=522.5-25=497.5
防御力增加:(内力加成值数/40)*加成指数+武学常识           DEF1=500+599.95=1099.5 DEF2=300+300=600
攻击力增加:攻击方武学常识+杀集气/10                            ATK=490+1300/10=620
伤害*(攻击力/(攻击力+防御力)                                      hurt1=472.5*[620/(620+1099.5)]=170.37   
                                                                                       hurt2=497.5*[620/(620+600)]=252.83

蛤蟆功伤害(忽略)
武器增加伤害(忽略)
伤害减少:防御力/8                                                          hurt1=170.37-1099.5/8=32.93
                                                                                       hurt2=252.83-600/8=177.83

减少目前气防/30的伤害(这个就是护体对于伤害的影响)
加上攻击挨打方体力差,(攻击方体力/5-挨打方体力/5)             最多20点
加上受伤(内伤)差,(攻击方受伤/3-挨打方受伤/3)                    最多33点
加上中毒差,(攻击方中毒/2-挨打方中毒/2)                             最多50点
距离因素                                                                              最近距离
-玩家人物攻击时伤害减少(攻击人内伤*0.2)%                        最多20%
-玩家人物挨打时伤害增加(挨打人内伤*0.15)%                      最多15%

特效伤害加成(忽略)
兵器值减伤                                                                     hurt1=32.93(1.2-10/240)=38.14
                                                                                     hurt2=177.83(1.2-89/240)=147.45
难度减伤70%/65%/60%                                                  hurt1=38.14*0.6=22.88
                                                                                     hurt2=147.45*0.6=88.47

伤害2次计算:
-攻击方在队内,再判定伤害值=(攻击力/7 + 随机1~5)        hurt3=620/7+3=91.57

如果hurt1&hurt2<hurt3,则最终伤害取值为hurt3

发现问题了没有?问题暂时先放着...让我们在游戏里验证下计算结果,验证视频如下:请仔细看伤害结果


OK!!!和我们计算的结果基本没有出入,那么我们呢就分析问题的所在了
对于苍炎的大部分高级BOSS,很显然由于作者为了控制玩家伤害...防止BOSS被秒会尽量压低伤害值
而同时为了不至于伤害过低,作者就加入了二次伤害判定...
问题就出在这了,对于大部分NPC伤害没有问题,一旦碰到二次伤害大于一次伤害的BOSS
二次判定就会起作用了...而显然二次伤害判定公式过于简单,仅仅与攻击、内力、招式杀气值有关
对于诸如扫地、张三丰之类的BOSS,包括四绝级别的BOSS也很难破防(注意这里跟气防有区别)
这样....所有的特效,包括暴击、武功威力、拳系特效、九阴特效等等等...就会完全无效
显然这就是为什么低级武功打BOSS有极大的优势了,高级武功顶多比低级武功多10到20点伤害

结论:
对于不破防(注意这里指的是伤害破防,而非气防)的NPC
伤害仅仅与攻击力、内力值、招式杀气有关!
对于不能破防的BOSS比如扫地...九阴、暴击什么的都属于坑爹属性

当然这还没完...引起这个原因最大问题所在就是NPC光环和难度减伤
对玩家伤害削弱的极其厉害...很容易让一次判定伤害低于二次判定伤害
以下为对新版伤害公式的建议:
1.一次伤害判定公式大体上并没有太大问题,但是个人认为小问题还是有的
   比如攻击加成、防御减伤加成的具体数据还需要斟酌
2.一次伤害判定公式中防御减伤部分的计算个人感觉有问题
   就是:伤害*(攻击力/(攻击力+防御力)这个公式
   对于低攻击的人太不公平,个人建议写成:伤害*(防御力/(固定值+防御力))
   这是WOW的护甲减伤模式,想必很成熟了,我也在excel里用曲线看过,很合理
3.二次伤害判定公式不合理,这个我想在新版里肯定会重写
   个人尝试着把武功威力加入到二次伤害判定里,大家看看视频中结果如何
   当然这只是简单的尝试,具体数据还要斟酌

我算个数据党吧,有时间会具体研究下数据间的平衡测试,尽量平衡各个属性间的差距
当然,平衡数据最根本的解决办法还是重新修改R文件,毕竟外边改代码仅仅是属于修补而已
修改后的伤害公式视频:(是不是能体现出低级武功和高级武功的差别了)










评分

参与人数 1声望 +20 收起 理由
xiaoyaojx + 20 伤害解析

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-7 21:40 | 显示全部楼层
坐个沙发等S大出现
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-7 21:54 | 显示全部楼层
学习~~
伤害减少:防御力/8        hurt1=170.37-1099.5/8=32.93
-----扫地的防御减伤太可怕了!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-7 22:29 | 显示全部楼层
伤害*(攻击力/(攻击力+防御力)这个公式个人感觉还是挺合理的,伤害与攻击者和承受者都有关,攻击力低者是指的低资吗?我用100资的数据代入得到ATK=474+(5000*3)/150=574,比490高但是低资还有左右互博,不算如雷的话,1资=490*1.74=852.6,远大于100资的574,当然算上如雷就复杂了。(上述仅是根据高姿和低资的攻击力成长算的单项差距,100资平均比1资攻击力高6*29=174)
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-3-7 23:06 | 显示全部楼层
本帖最后由 点滴 于 2012-3-7 23:30 编辑
太阳光线 发表于 2012-3-7 22:29
伤害*(攻击力/(攻击力+防御力)这个公式个人感觉还是挺合理的,伤害与攻击者和承受者都有关,攻击力低者是 ...


左右不是那么算的...左右对攻击力没有加成...跟连击对攻击力没加成效果一样

这样说你可能不理解,不太好解释...

就是说左右是经过一系列减伤后的结果,攻击力是基础数据

攻击力会影响左右效果,左右不会影响攻击力!左右是对最终伤害的加成

还有【伤害*(攻击力/(攻击力+防御力)】这个公式

做为减伤,攻击力参与进来就不合理

做为增伤,防御力参与进来就不合理

分开会好很多...最直接的效果就是便于平衡数据,对于平衡来说数据交叉越少越好

你自己拿excel做个表格测试一下,就会发现问题

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-7 23:21 | 显示全部楼层
本帖最后由 太阳光线 于 2012-3-7 23:23 编辑

回复 点滴 的帖子

我知道左右不加攻击力,我只是说对于低攻击力(低资)来说,由于有左右互博和低资高内力的存在,最终攻击效果不差于高攻击力(高资)。实际上互博比高连武功的效果还要好得多,因此那个公式并没有对低攻的不公平呀。

点评

额...好吧...我只说一句话...游戏里不只是有主角一个人...如果一个人那平衡就太好做了 = =  发表于 2012-3-7 23:27
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-7 23:35 | 显示全部楼层
暴击、拳系和九阴的攻击加成是在哪一步计算的呢?

点评

哦,谢谢!看来二次判定的值如果(举例)=(攻击力/10+武功威力/30+随机数)再加上特效加成就能合理一些了。。。  发表于 2012-3-7 23:51
伤害一次判定里,兵器值前,我写的特效伤害那里,具体你可以看开头btxdex的帖子里边  发表于 2012-3-7 23:39
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-8 00:51 | 显示全部楼层
支持分析,boss的减伤太严重,
最重要的是,低级高连武功比高级武功打boss实用太多,
不切实际
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-8 04:03 | 显示全部楼层
强大,伤害解析很清楚
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-8 07:31 | 显示全部楼层
强大的分析贴,期望伤害系统数据曲线更合理,顶起!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-8 09:24 | 显示全部楼层
实践才是真理。。。。
我说点题外话。
我那个帖子里面还有一行关于二次判定伤害的代码看漏了
if not inteam(pid) then hurt2=math.modf(hurt2*1.2) end
NPC还享受1.2倍的加成。。。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-8 12:02 | 显示全部楼层
LZ的分析是正确的
对于一次伤害判定小于二次伤害判定的攻击来说
是和所用武功威力无关的

二次伤害判定即最小伤害值
现在这个公式中体现的是主要取决于人物自身的能力
所认没有和武功挂钩
当然要加入武功威力的运算也是可以的
发布源码版,就是让大家可以按自已的想法来设定游戏嘛

对于5月的新版的来说
因为系统方面有很大的变化
几乎所有的公式都已经全部重写了

点评

辛苦了~非常期待新版~  发表于 2012-3-10 13:27
很想知道新版的防御减伤公式如何~~ = =  发表于 2012-3-8 18:08
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-8 13:12 | 显示全部楼层
S大来啦,期待新版,不知能不能在发布前小小剧透一下,也许很多细节大家可以发表一下个人看法,让新版更加优化呢?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-8 13:15 | 显示全部楼层
楼主这个太给力了!
另外s大验明了~顺便期待下新版
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-8 16:33 | 显示全部楼层
神贴留名!楼主辛苦!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-8 17:33 | 显示全部楼层
回复 wcjbob 的帖子

居然看到扫地???眼花了么,嘿嘿、、、、神帖留下名号。。。

点评

看到我你很惊讶,教主,你脱轨了  发表于 2012-3-8 19:46
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-3-8 18:07 | 显示全部楼层
难道没人发现...9阴对于大部分队友来说也是坑爹武功么...
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-8 22:36 | 显示全部楼层
九阴既然对大部分队友来说既然是坑爹的武功?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-3-8 22:59 | 显示全部楼层
本帖最后由 点滴 于 2012-3-8 23:01 编辑
su0505 发表于 2012-3-8 22:36
九阴既然对大部分队友来说既然是坑爹的武功?


除了几个攻击高的队友...比如令狐冲、岳灵珊等

别的队友由于攻击的原因打大部分BOSS基本不破防

不破防的话...九阴啊、暴击啊、刀剑归真啊什么的特效都没用了...伤害只和攻击和内力挂钩 = =

点评

竟然是这样!  发表于 2012-3-19 23:06
原来如此>_<  发表于 2012-3-8 23:02
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-9 01:26 | 显示全部楼层
伤害也有这样的学问,看来做个游戏也是很辛苦啊
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-10 01:46 | 显示全部楼层
9阴明显20%的攻击时坑爹.就奔着回血去也绝对是神功了啊

点评

其实九阴本身没有问题,关键在于,得保持阴内,而这个就直接意味着队友跟可以增加内力硬上限和软上限的吸功说拜拜了,这对整个队伍实力的提升是非常限制的。  发表于 2012-3-10 13:33
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-11 11:45 | 显示全部楼层
就目前高级武功面对顶级BOOS人物的表现来说我要强烈支持楼主的想法
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-18 01:16 | 显示全部楼层
本帖最后由 jimmyzhangjy 于 2012-3-18 01:45 编辑

神贴留名,支持调整公式。

逻辑上说原公式的伤害计算是不合理的——伤害输出应该只跟输出方有关,不应该加入防御方的任何信息。也就是说防御方的数值应该只参与到伤害减少中去,而不是伤害计算中去。

数据函数上说原公式的伤害计算可能放大了防御的效果,并且可能造成严重的强弱分化。具体体现在防御减伤出现在1+1/xx上,那可能出现一个拐点——即只增加很小的Δ时,效果会以几何数增长,也就是函数图象斜率比较陡的那一块了。
顺带一提,这也是wow的护甲减伤看起来成熟的一个关系,因为那个函数是1+1/a*x的线性函数。


个人觉得从数据函数角度看,如果要采用非线性函数时,需要注意数据都处于相对比较平滑的区域,超过这个区域就可能出现IMBA的情况,我不是学数学出身的,不过要说平衡性、合理性和易操作性结合的话只要某个固定变量是一次幂的函数,一次函数外形如f(x1,x2)=(ax1+b)(cx2+d)+e也是比较稳妥的~

点评

...说实话...函数搞不太懂...有点懵  发表于 2012-3-25 20:59
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-3-19 23:05 | 显示全部楼层
懂了,原来如此啊
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-5-10 10:42 | 显示全部楼层
老大给个能打开的SAI.LUA,脚本文件吧,邮箱:46147155@qq.com,或者加我QQ:46147155
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-9-30 06:35

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表