游戏开发论坛

 找回密码
 立即注册
搜索
查看: 12116|回复: 35

[讨论] 思考命中率和致命一击率时得出一些疑问

[复制链接]

154

主题

4567

帖子

4579

积分

论坛元老

Rank: 8Rank: 8

积分
4579
QQ
发表于 2007-3-16 14:11:00 | 显示全部楼层 |阅读模式
这次是思考命中率和致命一击率时得出一些疑问

首先声明下,本人数学瘸腿(历史问题,尽量补上),但是在探索未知追求真理的坚定信念驱动下,斗胆献丑[em5]

设:
  总数100次试验中
  命中率的成功次数集合     为   集合A
  致命一击率的成功次数集合 为   集合B

普遍的认识是,致命一击的产生 是 补充命中率未击中造成的伤害缺失

简单的做法是令 A + nB = 1, n为爆击后的攻击力提升倍数 ,这是未考虑 A 、 B 之间的从属关系而得到的关系,显然这个公式存在着某些错误

事实上 A B 之间的关系并不是简单的并列关系

可以假设以下情况

a.
    若命中和致命分为两步单独的计算,而且致命一击必中。作为致命一击率 B 产生的同时,视为一次命中,这时真正的命中率其实是 B 与 A 的并集M,可以确定致命一击率为 B,但未算爆击的命中率是 M 与 A 的补集
b.
    若只有命中之后才计算致命。则得到,B 是 A 的子集,真正的致命一击是包含于 A 中的 B,而未算爆击的命中率为 A 与 B 的差集。

比较头疼,目前只发现了问题,但如何解决问题,即满足命中为A'、爆击为B'等价于命中为100时的伤害,式子要写成什么样,求教

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2007-3-16 14:15:00 | 显示全部楼层

Re:思考命中率和致命一击率时得出一些疑问

为什么一定要弥补未命中造成的伤害损失?

433

主题

4233

帖子

4403

积分

论坛元老

Rank: 8Rank: 8

积分
4403
发表于 2007-3-16 14:18:00 | 显示全部楼层

Re:思考命中率和致命一击率时得出一些疑问

命中率 和 cambo是两个东西。

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2007-3-16 14:21:00 | 显示全部楼层

Re:思考命中率和致命一击率时得出一些疑问

我入行时间不长,不知这个计算在做数值时有什么用啊?
只要计算一定命中率和爆击率的情况下,角色的平均伤害输出,以及最大单次伤害输出就基本够用了吧?

154

主题

4567

帖子

4579

积分

论坛元老

Rank: 8Rank: 8

积分
4579
QQ
 楼主| 发表于 2007-3-16 14:32:00 | 显示全部楼层

Re:思考命中率和致命一击率时得出一些疑问

命中率 和 cambo确实是两个东西……但现在算基础命中与基础爆击的关系,只是让初始值趋近于“平衡”状态,玩家或者角色可以通过各种手段进行强化实际值。

实际上算法不同,最终得到的DPS是不同的。

15

主题

760

帖子

1052

积分

金牌会员

Rank: 6Rank: 6

积分
1052
QQ
发表于 2007-3-16 15:02:00 | 显示全部楼层

Re:思考命中率和致命一击率时得出一些疑问

b情况好计算些。也比较好理解。

首先是确定致命一击是普通攻击的多少倍伤害,假如倍数为x。普通攻击命中率y,爆击率为z,攻击次数为M。则:
yMA+yzM(B-A)=M次攻击的伤害。若M为1。代入结果为

yA+yzA(x-1)=yA[1+z(x-1)]=若干次攻击中,平均每次产生的伤害

应该是这样。

8

主题

144

帖子

161

积分

注册会员

Rank: 2

积分
161
QQ
发表于 2007-3-16 15:06:00 | 显示全部楼层

Re:思考命中率和致命一击率时得出一些疑问

如果N只是取整的话,基本可以忽略这个问题吧

         讲究精确度很高的时候,可能需要考虑这么多。如果不需要太精确的时候,这个问题也就不是问题了

就像1.511111与1.544444  
                    如果只取小数后一位为有效的话,就是一样的1.5了

2

主题

196

帖子

196

积分

注册会员

Rank: 2

积分
196
发表于 2007-3-16 15:17:00 | 显示全部楼层

Re:思考命中率和致命一击率时得出一些疑问

关于这个问题,最近在核算数据时有过一点考虑.

以下内容仅仅对于我所讨论的场景,对于其他游戏可能并不具有一定的普遍性.

楼主文中并没有明确在命中和爆击是如何进行计算的.

有2种模型,
============模型一==============
在判定命中的时候同时判定是否爆击.
这个时候的结果就是一个并集.
因为过程是同时的,例如d20系统中的判定。
在投出20的时候,已经判定是命中了,也是爆击。
但是有个问题,就是弯刀(锐锋属性)的重击范围,是15-20,
但是命中值,实际是在17-20。
这种情况就是凡命中就有爆击可能(因为d20还需要做一次爆击判定)。
而16虽然判定爆击了,但是实际上是未命中,实际也是没有爆击,也没有命中。

这个是一种方式。
=============模型二===============
在判定是否命中之后,在判定是否命中之后。在判定该命中是否是爆击。
这个运行2次概率判定。
比如命中率为75%
爆击率说明为33%
实际上的爆击率为25% =75%*33%

是说这两种么

这2种处理方式实际上要看游戏系统如何进行设定的。

========插入==========

当初在苹果园看别人翻译的关于一个战士bulid指南中有一种计算方式
就是在评估一个职业的最终战力的时候。命中率的评估算法,可以作为一个参考。
http://www.ellesime.net/bbs/index.php?showtopic=13252

类似的计算方式是这样的。
假定一个战斗时间。根据攻击间隔算出这段时间内的攻击次数。

那么这个时间段内的总命中就是,假设每次攻击命中率相同

累积命中积=命中率X攻击次数(攻击时间/攻击间隔)

然后是武器的平均伤害,
单次攻击的平均伤害
这个算法是

武器的平均攻击力*(1+爆击概率*爆击倍率)=武器的平均伤害。
(这里的爆击是在判定命中之后再进行是否爆击的判定的算法,不同的游戏算法都有不同,比如秦的规则系统中,伤害跟命中是在一次投骰子中进行判定的,其武器的平均攻击力的算法就需要列表进行计算。)

这段时间内的累积伤害就是
武器的平均伤害*累积命中积=累积伤害。
DPs=[武器平均伤害*命中率=武器的平均攻击力*(1+爆击概率*爆击倍率)*命中率]/攻击间隔


当然所有的数据都只是数学上的概念而已。

这个是我的模型

但是d20的模型中。
因为它在单回合的攻击次数是根据bab进行计算的
每次的命中率都有所不同。
所以单回合的伤害输出就是。
(攻击1命中率*武器伤害*(1+爆击概率*爆击倍率)+攻击2命中率*武器伤害*(1+爆击概率*爆击倍率)+攻击3命中率*武器伤害*(1+爆击概率*爆击倍率)。。。。。)
这个实际上用EXCEL进行核算。

好吧,说得自己都有些乱了,反正一直都用EXCEL进行分析。
改变上面的命中率,武器伤害,爆击概率,爆击倍率之间的参数,但是使得最后的平均输出都是一样的。
这样给与的选择就多了。
比如弯刀和巨镰
一个是1d6 X2 (18-20)
一个是1d4 X4 
恩。
但是,如果随机值的范围很大的话,人品爆发的因素就不好说,所以最终输出平衡也很难保证实际真正平衡,
而且如果在定义验算参数的时候,定义的不是平均水平的值也会导致结果有很大的偏差。
这个只是能作为一个在设计中的数值参考而已,而且身为设计者要把这几个方面的因素进行自己要熟悉,才能有比较大的把握。
还需要进行测试改进。其中的价值差别可以用类似物品的价格来进行平衡。

每次都写得乱七八糟的。
其中引用的例子如果看不懂的话,就算了。
d20中
bab 基本攻击加值
命中率的算法
1-(敌方AC-该次攻击的攻击加值)/20  且最小为5%,最大为95%

154

主题

4567

帖子

4579

积分

论坛元老

Rank: 8Rank: 8

积分
4579
QQ
 楼主| 发表于 2007-3-16 16:20:00 | 显示全部楼层

Re: 思考命中率和致命一击率时得出一些疑问

D20我还是能看懂的 [em23]

现在套进二项式和组合数里面了,迷糊中

模式a确实比较难搞,貌似和D20也不太一样。模式a 是命中,爆击算作两个独立的过程,命中算一次,爆击算一次,只要爆击即算作通过命中,但爆击产生的命中自身不算作普通命中……等式不好弄 [em7]

模式b 命中才能爆击,命中是爆击的充分条件,但爆击不是命中的必要条件(这方面比较晕些)……所以爆击必通过命中的过程……
等式可以设为,(A - A*B) + n *(A*B) = 1  [em23]

25

主题

688

帖子

700

积分

高级会员

Rank: 4

积分
700
发表于 2007-3-16 16:44:00 | 显示全部楼层

Re:思考命中率和致命一击率时得出一些疑问

   一个都不明白
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-17 22:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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