cataclysmdda吧 关注:22,096贴子:342,039

关于弱点系统

只看楼主收藏回复

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
                收起回复
                  赶上直播


                  IP属地:浙江10楼2024-06-13 12:34
                  回复
                    普通丧尸的腿部弱点空隙为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属地:广西来自Android客户端14楼2024-06-13 13:18
                          回复
                            楼主nb,原来解刨出的专长还有弱点加成


                            IP属地:湖北来自Android客户端15楼2024-06-13 13:49
                            收起回复
                              我的手术刀用了几百小时了,努力真的有用。现在打怪确实比前期简单了,但还是比不上我的前后有撞锤的焊马。


                              IP属地:广西16楼2024-06-13 14:18
                              回复