cataclysmdda吧 关注:22,133贴子:342,499

关于弱点系统

取消只看楼主收藏回复

cdda当前弱点系统的框架在21年就已经完成,不过内容其实一直没有充分填充,不仅有大量mod怪物没有弱点,原版怪物也仍有一些的弱点没有设置完,当然玩家能遇到的常规敌人,基本都有完整的弱点了
我看吧里虽然有一些关于弱点的零星讨论,包括早年的攻略也有对弱点工作原理的简单描述,但似乎没有人详细解析弱点系统
正好这两天和kevin交流的时候研究了一下,虽然我的PR被否了,但关于弱点的分析可以贴出来


IP属地:陕西1楼2024-06-13 10:09回复
    关于弱点,首先要区分两个可能产生混淆的概念:弱点族(weakpoint families)和弱点组(weakpoint sets)
    所谓的弱点族,其实就是玩家所能习得的各种弱点专长,因为这些弱点专长是根据怪物种族设定设定的所以有这个名字,比如所有丧尸都有的丧尸生物学基础,真菌、三尖树、水蛭花、米戈各自的构造,等等
    弱点族/弱点专长会定义在怪物的数据里,除了这些弱点专长,还有一些其他专长也会有相同的作用,比如烧伤护理之于烧伤丧尸


    IP属地:陕西2楼2024-06-13 10:39
    收起回复


      IP属地:陕西来自Android客户端3楼2024-06-13 10:41
      收起回复
        弱点族/弱点专长的作用是提供两个数据,未习得时的弱点命中惩罚和习得后的弱点命中加成
        其实不局限于弱点专长,每个专长都可以定义这两项数据,比如说上面提到的烧伤护理,未习得时的弱点命中惩罚为0,习得后的弱点命中加成为2
        对于怪物数据里的弱点族,原本还可以具体定义专项惩罚/加成,可以覆盖专长的默认惩罚/加成,不过目前似乎没有人这么用,所以按照专长里的数字算就好


        IP属地:陕西4楼2024-06-13 10:46
        回复
          弱点专长先说到这里,下面我们看一下弱点组
          所谓弱点组,是根据怪物特征而设计的真正用于计算伤害及效果的一组部位
          以人形怪物身体为例,里面包含了手、腿、眼、头四个弱点
          在每个具体的弱点里,都会定义一系列数据,包括由几个参数决定的综合命中难度,各种伤害系数,可能触发的debuff等等
          debuff效果会根据弱点的特征而设定,如击中手臂有概率导致怪物踉跄,腿部概率击倒,头部概率击晕,眼部概率致盲
          弱点除了本身的命中难度之外,还可能有额外触发条件,比如被击晕后才能触发
          怪物也可以单独设定弱点,不过同时有弱点组的话,弱点组的数据会覆盖它


          IP属地:陕西5楼2024-06-13 11:03
          回复
            说了这么多,总而言之就是一句话,玩家在攻击时使用自己的面板数据对抗怪物的弱点命中骰子,满足条件就可以命中弱点,造成更多伤害并削弱怪物
            下面才是本贴的重点,哪些面板数据会影响玩家命中弱点的效率呢?答案是:
            技能等级,敏捷和感知,肢体系数,弱点专长增益/惩罚
            首先是前三者一同计算出一个弱点技能等级,公式为
            ((技能等级1+技能等级2)/2+(敏捷-8)/8+(感知-8)/8)*(肢体系数1+肢体系数2)*1/2
            技能等级部分就是近战+对应武器(钝斩刺徒手),或枪法+对应武器,或投掷*2
            肢体系数分近战和远程,近战是视野+反应,远程是视野*2
            默认情况下视野系数100%由眼部提供,反应系数70%眼部30%头部
            肢体系数默认值均为1,随累赘和受伤增加而降低,所以肢体系数部分在计算中仅用于削弱最终弱点技能等级



            IP属地:陕西来自Android客户端6楼2024-06-13 11:27
            收起回复
              下面以一个普通僵尸为例计算弱点
              首先玩家按照徒手近战双5,敏捷感知双12,无累赘和受伤,那么基础的弱点命中等级为6
              基础丧尸拥有两个有效弱点族,生理学和基础丧尸,惩罚/增益均为0/2,同时掌握的话则玩家最终弱点命中为10


              IP属地:陕西7楼2024-06-13 12:04
              回复
                接下来我们计算实际命中概率
                首先roll一个0-100的随机数作为浮动难度,然后依次选取怪物弱点组里的每个弱点进行判定
                普通丧尸的弱点组即前述人形怪物身体:手、腿、眼、头
                弱点拥有空隙率、命中难度和空隙系数,均可对应特定的伤害类型单独定义
                我们首先使用玩家最终弱点命中对抗一次,公式为
                空隙率*空隙系数*命中难度系数
                命中难度系数的计算方法为
                0.5*(1+erf((弱点命中-命中难度)/2√2))
                erf即为高斯误差


                IP属地:陕西9楼2024-06-13 12:29
                收起回复
                  普通丧尸的腿部弱点空隙为15,刺击及远程空隙系数为0.75,命中难度为远程3近战1
                  眼部弱点空隙为1,钝及斩的空隙系数为0.5,命中难度为远程8近战6
                  则单次roll点下的基础命中值为:腿部15,眼部0.5


                  IP属地:陕西11楼2024-06-13 12:42
                  回复
                    15就是说单次概率为15%
                    不过还没完,根据弱点命中等级,玩家将拥有额外判定的机会,每2.5点多一次
                    所以实际的判定就是独立重复事件概率,多次不中的概率为(1-0.15)的n次方


                    IP属地:陕西来自Android客户端12楼2024-06-13 12:54
                    收起回复
                      我们此时用55.6对抗前述的0-100随机浮点数,那么命中概率实际就是55.6%
                      如果就此命中了那么判定就结束了,不过若是没有命中,那么当前弱点的判定树枝将会累加到下一个弱点的判定上


                      IP属地:陕西来自Android客户端13楼2024-06-13 13:03
                      回复
                        突然发现我脑抽了,前面几段删掉,重新组织一下


                        IP属地:陕西19楼2024-06-13 15:04
                        回复
                          刚刚把累加判定的算法写错了,增加的概率跟一开始的roll点没有关系
                          单个弱点判定点数分别为a和b,那么a失败且b成功的概率应为
                          b`=pow(100-a)^n-pow(100-a-b)^n)+a/100
                          以前面的普通丧尸情况计算,那么眼部单独判定最终命中率为2.47%,腿部失败后眼部成功概率应为16.3%


                          IP属地:陕西20楼2024-06-13 15:37
                          收起回复
                            昨天头疼,还有两条重要没写
                            然后这么多年贴吧始终不能编辑已发布内容,这点实在蛋疼,前面有好几处用词都不够准确,我想想怎么办吧
                            言归正传,首先是弱点专长的获取
                            每个专长都有标注获取所需时间,弱点专长也一样,比如最烂大街的丧尸生物学基础,学习用时6小时
                            获取弱点专长经验的方式有三种,击中、击杀或解剖拥有这个弱点族的敌人,只不过三者效率天差地别
                            每次命中增加2秒,每次击杀增加1分钟,每次解剖100%完成增加30分钟
                            经验数字是固定的,和敌人难度、玩家技能、装备等无关
                            当然增加量最终适用的时候,还是会受到当前专注影响及智力经验百分比调整
                            解剖不仅在当前是最有效率的,而且未来将会更有优势,因为kevin是这么计划的
                            虽然我强烈主张应该增加击中、击杀敌人时的经验量,也有数位制作组成员希望引入类似更改,但kevin强烈反对,并且表示解剖应当比现在具有更高的权重


                            IP属地:陕西23楼2024-06-14 09:35
                            收起回复
                              如图,解剖一具普通丧尸获得8%进度,算下来就是28.8分钟
                              平均解剖十具左右可以获得这个专长,如果是杀怪,得需要杀几十上百倍的量
                              而且kevin的计划是以后解剖一具就行,所以大家就别想着打怪涨进度了


                              IP属地:陕西来自Android客户端24楼2024-06-14 09:40
                              收起回复