DPurple 发表于 2015-3-12 15:25

远程武器命中公式以及后坐力系统、开火时间等具体数据

本帖最后由 DPurple 于 2015-3-12 15:39 编辑

距离和后坐力影响最大 详见下面公式

*首先开火时有全都计算到一个"total_dispersion"里 表示最终散布 (越小越好)
计算步骤如下 (0~xxxx 表示0到xxx的随机数, 下面的计算中可能存在的溢出、变负数、超过阀值惩罚变奖励等情况都是不存在的, 在游戏代码中都过滤掉了)
total_dispersion= {0~} + {0~} + {0~} + {0~} + {0~} + + (0~弹药的散布) + (0~武器的散布) + {(后坐力/4)~后坐力}
total_dispersion = total_dispersion x CBM瞄准插件奖励 0.75
total_dispersion = total_dispersion x 非水下枪支水下开火惩罚 4.0
如果目标距离小于武器体积的三分之一(只取整数位)并且发射的不是霰弹 (模拟近距离瞄准困难, 体积越小的武器越适合近距离射击) : total_dispersion = total_dispersion x (武器体积的三分之一 / 目标距离)
如果武器是步枪并且目标距离大于10 : total_dispersion = total_dispersionx [1 - 0.4 x (目标距离- 10) / 目标距离];


*然后计算一个最终打丢几率 missed_by = total_dispersion x 0.00021666666666666666 x 目标距离
如果 missed_by > 1 就直接打丢 子弹乱飞, 很有可能不会落到目标身上, missed_by 越大越离谱, 如果missed_by不是超标很多则有可能还会打中目标, 其他还有碰巧打中目标的算法太啰嗦不再说明


*接着给这个值加上一点随机数 hit_value = (missed_by- 0.5) ~ (missed_by+ 0.5)这里注意 可以为负数!
如果小于0.4=打中躯干
如果大于0.4=1/4几率打中腿, 3/4几率打中两臂

*最后计算目标的速度对命中的影响: goodhit = missed_by / max(怪物的速度/80, 1.0)
goodhit 小于0.1 = 爆头, 伤害系数=2.45~3.35
goodhit 为 0.1-0.2 = 暴击, 伤害系数=1.75~2.3
goodhit 为 0.2-0.4 = 准确命中, 伤害系数= 1~1.5
goodhit 为 0.4-0.6 = 命中, 伤害系数=0.5~1.0
goodhit 为 0.6-0.8 = 擦边, 伤害系数=0~0.25
goodhit 大于 0.8 = 没打中, 伤害系数=0

关于后坐力的算法:
除了开枪有很多东西会增加后坐力, 比如 被打中、开车中等
根据游戏界面"后坐力"的颜色
没有颜色的"后坐力"字样=150-210
黄色=210-450
粉红=450-690
红色=690以上

每开一枪增加的后坐力为: 武器后坐力 - (力量 x 7~力量 x 15) - (0~枪械技能x7)
如果是连射: 第一发后坐力同上, 后续的射击后坐力为上述公式的一半

每一回合(例如移动一次、发呆一次等)
玩家的后坐力都会减半:
当前后坐力 = [当前后坐力 - (力量/2 + 枪械等级)] / 2
但是减少到 150 就不会再自然减少了, 这个是不通过瞄准能得到的最低后坐力

关于瞄准的算法:
首先是武器瞄准速度 aim_speed:
如果武器的所有附件的瞄准散布都比当前后坐力大 : aim_speed = 无限大 (根据算法也就是说 : 瞄准提升效果最小化)
如果有任何一个附件(包括枪械自身)的瞄准散布比当前后坐力小: aim_speed = 瞄准精度满足当前后坐力的前提下瞄准速度值最小的那个值
然后计算速度惩罚 speed_penalty = / 60 + (12-敏捷) + aim_speed
最终得到提升量: 32 - speed_penalty, 最少为1 (也就是说:当武器的瞄准精度已经无法满足后坐力 则瞄准没有什么效果)
每瞄准一次耗费10点移动值 (移动一次大概需要100移动值)


根据上述公式 可以看出 瞄准散布根本对瞄准没有什么帮助, 他的作用是一个阀值,如果当前的后坐力小于这个瞄准散布: 瞄准将不起作用
又根据上述算法, 可以看出 当某一个瞄准器的瞄准精度无法满足当前后坐力的时候, 会尝试使用该枪瞄准散布能满足当前后坐力的任何瞄准器, 例如激光瞄准器 甚至最后不使用瞄准器 当所有瞄准器都无法发挥作用时 还有最低最低限度的"1"点提升 (打炮台就靠它了)
这也得到了一个怪的现象: 你的@用你枪上的步枪瞄准镜瞄准一个超远的目标...恩...通过几次瞄准后成功将后坐力降低了 但是突然当前后坐力已经减小到无法满足步枪瞄准镜的需求了, 然后又开始依次使用激光瞄准器、枪械自己的机械瞄准器。。。


关于3种特殊的瞄准方式:
这3种瞄准方式对于高后坐力的情况下都差不多
这3种瞄准方式的区别仅仅在于:
粗略瞄准: 不断进行瞄准直到后坐力低于20
仔细瞄准: 不断进行瞄准直到后坐力低于10
精确瞄准: 不断进行瞄准直到后坐力为0
你的@会尝试在达到要求前不断的瞄准(中途可能会被中断, 比如Z靠近、Z攻击你)

更重要的数据开火所耗时间:
你以为开火时间是武器面板里那个耗时吗? 哈哈 你被坑了
手枪: 手枪技能大于6时固定为10点移动, 小于6时 = 80-10 x 手枪技能
霰弹: 霰弹枪技能大于3时固定为70, 小于3时 = 150 - 25 x 霰弹枪技能
冲锋枪: 冲锋枪技能大于5时固定为20点移动, 小于5时 = 80 - 10 x 冲锋枪技能
步枪: 步枪技能大于8时固定为30, 小于8时 = 150 - 15 x 步枪技能
弓箭 : 箭术技能大于8时固定为20, 小于8时 = 220 - 25 x 箭术技能
投掷 : 投掷技能大于6时固定为50, 小于6时 = 220 - 25 x 投掷技能
重武器 : 重武器技能大于8时固定为30, 小于8时 = 200 - 20 x 重武器技能


可以看出 理论上霰弹枪入门最低!只需要4级就可以以最快速度射击。。。
但实际上霰弹枪弹药少 弹药重 威力又大 可能跟冲锋枪(单发点射准确射击)或手枪升级所耗得时间差不多


连射怎么算的?
为什么说连射屌.. 因为他丫的连射的耗时跟单发完全一样。。
又因为现在有连射"奖励" 当你的目标死了后会继续扫射你距离你目标4格内的任何敌对目标, 直到打完点射次数, 并且是可以传递的(也就是说每打死一个人就以这个人为基准寻找他周围4格内的敌人。。。 假如你放风筝 后面追着一群Z... 你懂得 拿起你的M249吧!)

结论:
命中再首发开火: 你的@后坐力为最低值时, 步枪瞄准镜(高瞄准散布, 最低的瞄准速度)的作用不大, 他仅再你后坐力100-150时起作用, 最佳情况需要2次瞄准
基本上可以看出 一回合大约可以瞄准10次, 最佳情况可以减少320点后坐力
但是当你的后坐力飚红时 使用100点移动点数走一步减少的后坐力远远超过最佳情况通过瞄准获得的320点后坐力(直接减半!) (假如还有 兴奋剂、变异、CBM提供的速度加成, 那么走一步的效果可能更明显)
所以当后坐力变成粉红或红色时移动一步更为实惠!
以M4A1为例:
体积为9 枪械散布为10, 适用5.56 NATO弹 散布为60, 总计 70散布 连射10
假如你的@ 对应武器和枪械技能为0, 仅仅由这两个技能得到的散布惩罚就已经高达600点! 比起果枪的70点散布简直大巫见小巫.... 所以在你技能很低时不必太在意不同枪械、不同弹种之间的那点性能差距
假设10点敏捷 10点感知 3点步枪技能 3点枪械技能 0累赘的 @ 持上述M4A1 分别在1格距离 3格距离 10格距离 20格距离 攻击 速度为70(绿Z默认)的目标, 所有随机数取中间值
total_dispersion= (0~315) + (0~105) + (0~30) + (0~30) + (0~60) + (0~10) + (37.5~150) 约等于 368.75, 脸黑情况等于 700, 精瞄等于 275
1格距离(贴脸) missed_by = 368.75 x (9/3 x 1) x 0.0002167 x 1 = 0.2397 , 躯干, 准确命中
1格距离脸黑 missed_by = 700 x (9/3 x 1) x 0.0002167 x 1 = 0.4550 , 四肢, 命中
3格距离(贴脸) missed_by = 368.75 x (9/3 x 3) x 0.0002167 x 3 =2.1572 , 打丢
3格精瞄 missed_by = 275 x (9/3 x 3) x 0.0002167 x 3 = 1.6087 , 打丢
3格距离脸黑 missed_by = 700 x (9/3 x 3) x 0.0002167 x 3 = 4.0950 , 打丢

3格距离脸红 missed_by = 37.5 x (9/3 x 3) x 0.0002167 x 3 = 0.2194, 躯干, 准确命中
10格距离 missed_by = 368.75 x 0.0002167 x 10 = 0.7989 , 四肢, 擦边
10格精瞄 missed_by = 275 x 0.0002167 x 10 = 0.5958, 四肢, 擦边
10格距离脸黑 missed_by = 700 x 0.0002167 x 10 = 1.5167 , 打丢

10格距离脸红 missed_by = 37.5 x 0.0002167 x 10 = 0.08125, 躯干, 爆头
20格距离 missed_by = 368.75 x x 0.0002167 x 20 = 1.2783, 打丢
20格精瞄 missed_by = 275 x x 0.0002167 x 20 = 0.953, 四肢, 打丢
20格距离脸黑 missed_by = 700 x x 0.0002167 x 20 = 2.4267, 打丢

20格距离脸红 missed_by = 37.5 x x 0.0002167 x 20 = 0.13, 躯干, 暴击

可见如果技能不过关.... 除非脸红 否则 根本打不中!
看看 7级技能的....
total_dispersion= (0~135) + (0~45) + (0~30) + (0~30) + (0~60) + (0~10) + (37.5~150) 约等于 248.75, 脸黑情况等于 460, 精瞄等于 155
1格距离(贴脸) missed_by = 248.75 x (9/3 x 1) x 0.0002167 x 1 = 0.1612 , 躯干, 暴击
1格距离脸黑 missed_by = 460 x (9/3 x 1) x 0.0002167 x 1 = 0.296 , 躯干, 准确命中
3格距离(贴脸) missed_by = 248.75 x (9/3 x 3) x 0.0002167 x 3 = 1.455 , 打丢
3格精瞄 missed_by = 155 x (9/3 x 3) x 0.0002167 x 3 =0.9067 , 四肢, 打丢
3格距离脸黑 missed_by = 460 x (9/3 x 3) x 0.0002167 x 3 = 2.691 , 打丢

10格距离 missed_by = 248.75 x 0.0002167 x 10 = 0.5390 , 四肢, 命中
10格精瞄 missed_by = 155 x 0.0002167 x 10 = 0.3358, 躯干,,准确命中
10格距离脸黑 missed_by = 460 x 0.0002167 x 10 = 0.997 , 四肢,打丢

20格距离 missed_by = 248.75 x x 0.0002167 x 20 = 0.8623, 四肢, 打丢
20格精瞄 missed_by = 155 x x 0.0002167 x 20 = 0.5373, 四肢, 命中
20格距离脸黑 missed_by = 460 x x 0.0002167 x 20 = 1.5947, 打丢



7级技能已经可以稳稳的命中普通僵尸了, 并且枪械、弹药、瞄准的影响更明显了
由于霰弹枪没有近距离开火惩罚.. 所以前期技能低的时候再近距离打会准的要命


其他各例不再叙述.. 有兴趣的童鞋可以自己套公式看看效果~







页: [1]
查看完整版本: 远程武器命中公式以及后坐力系统、开火时间等具体数据