csol灾变吧 关注:20,946贴子:769,523
  • 10回复贴,共1

关于怪线、出怪原理的说明

取消只看楼主收藏回复

这个问题要回答恐怕得长篇大论才能解释得清楚,只可惜我一直没什么精力搞这些,这游戏实在是提不起兴趣了。
现在既然有人问起,我就花点时间梳理一下吧,正好也是放假,我耐心点写,你们就耐心点看。


IP属地:广东1楼2023-01-14 13:56回复
    具体呢,怪线这个东西,准确的说应该是一个有体积的长方体触发区域,金源开始,这种东西一般称之为实体。其实在游戏里,能影响出怪的实体,印象中一共就只有两种实体:一个是zbstrigger,就是最普通的那种,这种实体在游戏中占绝大部分,还有一种是zbs_wave_trigger,这种点实体在第六季才开始出现。
    这两种实体的区别是zbstrigger是实体,而zbs_wave_trigger是点实体。
    先说下这两种触发方式:
    首先zbstrigger如下图,作为实体,它是通过玩家走过触发的。

    不过这个实体和半条命就有的一些实体(如trigger_once、trigger_multiple等)不太一样,它是棒子自己写的一个实体,检测相关代码比较垃圾,只要你达成以下任意一点就可以走过而不触发它:
    地速够快、网络够差(包括延迟和丢包率还有网速)、帧率够低。
    当然也有特例,如下图,库拉肯的boss的吼叫技能是把zbstrigger作为一个可重复触发的点实体去触发,这个例子整个游戏只见过一次,不再赘述。

    而zbs_wave_trigger如下图,这个是一种点实体,点实体是不能通过玩家走过或者其他实体的触碰来触发的(虽然很久很久以前可以,但是这个已经修了)。
    它这种实体的触发方式很多,比较常见的也是通过玩家走过去触发,不过这种情况下玩家并不是直接触发的这种点实体,而是首先触发一个trigger_once(半条命),由trigger_once引导,再触发这种实体。

    如上图所示,此图中下方红色大方块是一个trigger_once,上方是zbs_wave_trigger。可以看见两个方块之间由一条暗紫红色箭头连接,这表示这两个实体之间存在逻辑关系。
    以上两种,同样是通过玩家触碰触发,区分出是哪一种类型十分重要,因为前面提及过,半条命的实体是不能通过上述方法略过的。想要避免触发由trigger_once引导的这种类型,只能用尖端或者其他方法跳过。
    zbs_wave_trigger还有一些其他的触发方式,如破墙引导触发、还有开关引导触发以及剧情引导触发等。


    IP属地:广东2楼2023-01-14 13:58
    回复
      接下来解释出怪的原理。
      首先需要解释几个名词:
      怪点(spawnPoint):简称SP,意为小怪出生点,和玩家一样,小怪必须在已知的出生点复活,每一个怪点都有自己独立的编号。
      波次(waveID):简称WID,当房间内触发一个出怪逻辑时,该逻辑会打开一个或多个波次。波次和怪点直接并不是一一对应的关系,一个波次往往对应多个怪点;而为了避免错乱,一个怪点一般只对应一个波次,但一个怪点也可以对应多个波次。波次可以被不同的怪线重复打开也可以被重复关闭。下面用一些图来讲解这个机制:

      如上图,现有一表,初始值全为0,这种情况就是整个地图不会出怪。一般开局就是这种情况。
      现在由玩家跑图触发了一系列怪线:

      此时有1、2、3、4四个波次被打开,于是这四个波次对应的怪点都会有小怪复活。其中2号波次被重复触发,但是实际上和只触发一次没有区别。
      而玩家继续跑图,触发了关闭2、3号波次的逻辑:

      于是所有的2和3都从此表中移除,此时表中剩余1、4波次,于是1、4波次对应的怪点都会有小怪复活。


      IP属地:广东3楼2023-01-14 13:59
      回复
        下面是怪线的功能
        这里先讲zbstrigger型的怪线。下图为蝗虫第三场景触发表:

        一个zbstrigger型实体影响出怪的有两种类型(type):k和w,也就是kill和wave——秒杀和出怪。
        K型实体,它的功能就是调用秒杀逻辑,无论如何它都会秒杀掉全图的小怪,而是否秒杀小BOSS、大BOSS具体由秒杀逻辑的参数而定。如库拉肯挖掘机就可以被竖井zbstrigger调用的秒杀逻辑秒杀。此外,k型实体也可以同时关闭一个或多个波次(end wave)。
        W型实体,它会打开一个或多个波次(wave id),同时他也可以关闭一个或多个波次(end wave)。
        任何一个zbstrigger实体都不能同时秒杀和引发新的出怪,如果你在游戏中遇到过这种例子那就是地图作者把一个k型和一个w型zbstrigger叠到了一起。
        此外,这两种实体都支持延时,但是一般地图作者不喜欢使用这个延迟,而倾向于使用后面会讲到的怪点的延迟。
        而在第六季以后新出的图里新增的这种zbs_wave_trigger点实体,它的功能和zbstrigger大同小异,如下图:

        其中zombiekill为秒杀,非0则调用秒杀;waveid,打开的波次,0为不打开任何波次;wavedelay,延时。
        唯一比较特别的是stopwave这个参数,它原本的意思应该也是和zbstrigger一样,只关闭对应波次,但实际上不知道是棒子程序员的问题还是后来策划的问题,这个参数一旦被调用,则将直接一次性关闭所有波次。(其实它关闭所有波次的方法比这里说的更为复杂,这里涉及到一些指针以及栈帧的知识,这里没办法展开讲了)
        综上,也就是说zbs_wave_trigger实际上是一个升级版的zbstrigger,它可以同时打开和关闭波次,并且同时可以秒杀。并且也可以一次性关闭所有波次。


        IP属地:广东4楼2023-01-14 14:00
        回复
          下面再来讲怪点的功能
          下面以蝗虫第三场景第一波次对应的出怪点为例:

          首先,怪点分为实点和虚点,虚点即上图中spawnPoint参数为9999的点,这种点仅仅是作为一种逻辑发起场景剧情对话的显示(eventmessage)。
          而实点在地图上都对应有唯一的坐标。每一个点支持有延时(startTime)以及关闭时间(endTime),事实上除非关闭整个波次,唯一能关闭一个怪点出怪的形式只有关闭时间,不存在任何怪点是以出怪数量终结出怪的。
          此外参数intervalTime是这个怪点出怪CD,而zombie参数是规定了这一个怪点只能出对应编号的小怪(品种),zombiRatio表示的是这几种品种的小怪的出怪概率比。此外在高难度有额外的出怪表,额外的出怪可以在任意一个怪点刷出彩虹大军,不受zombie参数的限制。


          IP属地:广东5楼2023-01-14 14:00
          回复
            卡怪的原理
            卡怪说白了就只有一种思路:利用地形囚禁住小怪。
            实现方式一般就两个:
            1.打乱波次
            2.让玩家吸引仇恨,然后站在某个小怪达不到的地方
            当然这两种方式都建立在怪物上限机制之下:一张地图中最多存在39只小怪,4只小BOSS,2只大BOSS。下面解释第一种方式具体实现原理。
            还是参考蝗虫第三场景触发表:

            可以看到,一条怪线打开一个波次的出怪,然后马上下一个波次就会关掉这个波次,并打开新的一个波次。事实上绝大部分图都是如此。因此从这个方面来讲,只要你先不触发某个怪线,然后把这一条怪线的下一条触发了,再回过头来触发这个怪线,于是第一条怪线打开的波次,就再也没有什么能关闭它了。这样,小怪就会一直刷在第一个怪线触发的波次对应的怪点。在这游戏中常常因为地形的分隔,当玩家走到后面以后,先前区域刷出的小怪往往无法再移动到玩家所在区域。


            IP属地:广东6楼2023-01-14 14:00
            收起回复
              说实话挺感慨的,这游戏以前确实是让人玩得感觉有点上瘾,也正是如此,像我这样的玩家才愿意去花费如此多的时间去研究以上说的种种内容。
              但是回顾十年来,从最先许多人怀念的一把毁灭突到底,再到47、800,然后是雷神鹰眼破晓的天下,再到海皇、只因炮,然后到修仙时代,最后到cxk插件时代。一路经历了太多变化。
              我说实话,我很欣赏一个游戏策划能有心思去想办法做出各种改版,毕竟,就像他们开玩笑一样,一个游戏从最先开始的打小龙虾,再到最后打究极进化的小龙虾,那还有什么意思?
              但是这策划真的有倾听过真正的玩家的反馈吗?如果玩家真的就是喜欢打小龙虾,你把小龙虾换成螃蟹做什么?然后螃蟹旁边还放个屎壳郎?并且告诉玩家,打屎壳郎很好玩,并且打屎壳郎还可以获得屎球!特别好吃的屎球呀,还有各种口味的,你们快来打呀!
              话说回来,如果真的想要玩家去打螃蟹,为什么不单开个模式让玩家去打?
              我只能说,这样的公司,活该他倒闭,如果有一天他真的倒闭了,我会很开心。
              一个还没倒闭的游戏,居然有玩家宁可跑去私服充钱也不想玩官服,你做的有多失败你知道吗?


              IP属地:广东7楼2023-01-14 14:01
              回复
                被吞了不少,具体可以看睿站,我也发了
                https://www.bilibili.com/read/cv21200407


                IP属地:广东8楼2023-01-14 14:03
                收起回复
                  @蓝天白云go 那么我写了这么多,你看了能解释清楚你问的问题了吗


                  IP属地:广东9楼2023-01-14 14:04
                  回复



                    IP属地:广东17楼2023-01-14 17:34
                    回复


                      IP属地:广东27楼2023-01-14 21:06
                      回复