rimworld吧 关注:234,923贴子:4,140,147

圣地阵、原版机制代码解读 及 旁门左道堆砌处

只看楼主收藏回复

本帖实际上是对视频内容的梳理备份,可能有地方难懂,如果有不明白的地方可以回复提问。也可能有些地方我写的不对,有些地方会有BUG或极小概率的反例,也欢迎指出。默认全DLC环境。
视频合集:https://space.bilibili.com/288177/channel/collectiondetail?sid=819156
二楼三楼放本贴代码解读和旁门左道的目录
以下链接是过去总结的内容,不过有一小部分是过期的,比如涉及灵能连发的:
①攻击、命中、伤害机制,温度、随机任务机制:https://tieba.baidu.com/p/8222244341
②1.4版本积累内容:https://tieba.baidu.com/p/8144164739
③虫灾生成解读:https://tieba.baidu.com/p/7772354255


IP属地:天津1楼2024-09-16 15:50回复
    此楼为机制类内容目录,后期更新见楼中楼:
    限流速减速机制:7楼
    敌人破坏建筑机制:8楼
    袭击带走战利品离开或绑架殖民者撤退:9楼
    商队选择闲逛位置机制:10楼
    小人和实体的部位机能解析:11楼
    丢垃圾发生报复的概率:12楼
    水中浮现袭击机制:13楼


    IP属地:天津2楼2024-09-16 15:50
    收起回复
      此楼为机制类内容目录,后期更新见楼中楼:
      圣地阵、穿心阵:4~5楼
      灵能近战阵:6楼
      饿晕法坑布施官:14楼
      蓝图法无限偷征募官黄金:15楼
      栅栏堵死巨坑血肉兽BUG:17楼
      卡位打异常尸体:18楼
      幽魂隐形法时停近战:19楼
      基因注入、语言灵能、异常医术、心灵宰杀无CD击晕:19楼
      推荐其他大佬的内容:
      ① 搬运机自动抓回幽魂&幽魂催眠布施官:https://tieba.baidu.com/p/8996711719
      ② 无需材料批发机械族:https://tieba.baidu.com/p/9002017170
      (有补充,见视频https://www.bilibili.com/video/BV17C41177XN?t=104.4
      ③ 血肉心脏刷碎片:https://tieba.baidu.com/p/8985062807
      (有补充,见16楼)
      ④ 全能机械族:https://tieba.baidu.com/p/9032913713
      (有补充,见视频https://www.bilibili.com/video/BV1KM4m167iZ?t=218.6


      IP属地:天津3楼2024-09-16 15:51
      收起回复
        圣地阵、穿心阵:
        圣地阵利用敌人在障碍物上远距离不开枪与远程AI机制(详见战斗机制贴的53楼),能够做到单方面射爆敌人射手。对于CE或移动射击MDO完全无效。
        优点:不容易破坏墙体、没有关键墙、禁止敌人远距离开枪、能够适用多种枪械(和炮塔)、能够让近战派上用场、可随意转方向
        缺点:
        ① 必须用皇权DLC并获得自然灵媒小人
        ② 蜈蚣可能在近处开枪(穿心阵无此问题)
        ③ 不防生物科技DLC的卫螽等的自动小炮塔,建议用机械体的护盾挡一下
        ④ 木圣地易燃但石圣地工作量大、石和玻璃钢圣地在敌人较少时容易被偷
        ⑤ 玩家撤退关门用时稍长
        ⑥ 占地偏大
        ⑦ 入口虽然可限流,但内部强制不限流,并且近战位堆人太多有可能把近战小人挤开
        首先介绍一下MVP:

        性质:可选木石金属类材料、零掩体率、障碍物、敌方无视、不减速、可卸载安装、有美观度、材料量工作量价值略高、来自皇权DLC
        在杂项选项卡,但必须有自然灵媒的小人才能解锁建造,一般是部落背景小人

        然后穿心阵MVP血肉心脏:

        性质:不可通过、不妨碍视野、零掩体率、来自异象DLC
        缺点:换址麻烦、使阵地占地特大、前期中期弄不到、天天产血肉兽浪费CPU和空调还可能召援军
        天生射击墙圣体,不过没那么自由,地图上有深水的话直接用深水当射击墙更方便
        圣地为什么是神?在谈论这个问题之前,我想先说说其他障碍物相较于圣地究竟差在了哪里
        首先是犯下傲慢之罪的路障和沙袋,
        作为最早限制敌人不开枪的建筑物,竟然背叛玩家为敌人提供55%的掩体率,不仅会自动吸子弹还会拦截飞行的子弹。
        然后是犯了懒惰之罪的动物睡眠箱、畜栏标牌等障碍物,
        虽然无需DLC、掩体率低达15%、不会拦截子弹,但还是存在不低的自动吸子弹概率,比路障还容易坏。
        最后是犯了色欲之罪的木雕,
        仗着零易燃和零掩体率,就试图诱惑玩家购买文化DLC,虽然不会被玩家射得千疮百孔,但会迷得敌人忘掉战场沉迷和木雕进行近战运动。玩家撤退换阵时,敌人全部会流连忘返地住在木雕阵里,大搞多人运动,一定要把所有木雕日坏才回味无穷地出阵。
        最后再补充一些圣地阵可选的可变设计:
        ① 阵地长度长于射程+1,避免射坏入口墙体
        ② 限流速设施建议使用门—门+砖—门+堆块的结构,也可以根据自己火力加快流速,机制见7楼。

        ③ 玩家侧方射手旁可以加几块探身的墙,使视野更佳、弹道集中
        ④ 铺减速物品,降低敌人移,相当于射杀区域变长一倍,或限制敌人走位避免打墙,不过不能直接往障碍物上放物品,只能用地板蓝图铺,有点麻烦
        ⑤ 近战人数,至少为通道宽度人数,人越多蜈蚣越容易在近处开枪
        ⑥ 限流炮塔可以放到基地内侧,方便随时拆掉解除限流
        ⑦ 射手尽量往前站,后面人数大于三排后会开始误伤近战位,需要为近战位穿戴护盾腰带
        ⑧ 打机械族用EMP


        IP属地:天津4楼2024-09-16 15:53
        收起回复
          最后贴一些阵地成品图,不过不是最新的,我其实是懒得出一个标准型的,实际可以自己随便改,比如我后来把限流入口延长到七格并放了个夹子
          也可以参考一些大佬的成品,适合链式的短版圣地阵:
          https://www.bilibili.com/video/BV1cKgYeLE7D
          2格宽前期版圣地阵:

          3格宽圣地阵,适合夜战速射:
          穿心阵:

          5格宽无夜战速射圣地阵:



          IP属地:天津5楼2024-09-16 15:54
          回复
            灵能近战阵:
            一个纯近战阵地,虽然可以加远程但是效果一般,优点是可以使敌人走斜线扎入近战人堆里,被五个近战同时打。
            虽然理论上可以DLC但强度必须要四个DLC齐全才够,起码需要皇权DLC的灵能。
            注意点:
            ① 远程有较小概率开枪,需要灵能小人时刻准备召唤或折跃
            ② 蜈蚣有较大概率开枪,可以造个机械超频仪让他快点进来,降低开枪概率
            ③ 打死机械族有时会掉落堆块到近战脚下,需要频繁手操活动区或征召,最好是用堆块折跃灵能一块都丢出去
            ④ 打女王最好提前杀掉或灵能控住,让它不停召唤小弟会很麻烦
            ⑤ 走廊要长,把敌人安排到外墙的外侧,不然毒蜂在外面复活尸体可能会出岔子
            ⑥ 必须用沙袋,毛绒种的猪会拆路障
            ⑦ 斜向的两个近战最不容易受伤,可以放小人


            IP属地:天津6楼2024-09-16 15:55
            回复
              限流速减速机制:
              一、减速
              ① 每格耗时=基础*斜移+事物+门
              ② 基础:默认约为每格需要13帧,这个值=1/面板移速,然后秒换算为帧乘以60。所以基础是已经包含移动能力加成、光亮等影响因素的。
              (换句话说公式的其他影响因素不影响面板的显示,只能自己算)

              ③ 当斜角移动时,”斜移”等于根号二,否则等于1
              (即减速为71%,不过这个速度是横向和纵向的分速度,所以还是符合斜角更快的常识)
              ④ 事物:
              1) 默认往事物上行动会有减速,而离开事物则没有减速。有多少减速都在def文件中用额外消耗时间(pathCost)规定好了。基础13加pathCost就是走一格的时间。其中加值为0代表没有减速,比如畜栏标牌和支撑柱。大部分建筑如路障和沙袋相当于减速至约25%。减速最高的是栅栏,减速至约14%。

              2)在大部分建筑上连续行走时会忽视减速,哪怕减速能力不一样,比如堆块、沙袋、路障和栅栏等。
              3)物品也是事物,减速效果为50%,堆叠数或种数不影响减速能力,连续通过都会减速,尸体减速性质与物品一样。
              4)事物减速能力互相叠加时,以最高者为准,由于地形也是同一套机制所以不叠加,不过门是另外的机制。
              ⑤门:只有在两个门之间移动时会有减速,单纯的进入和移出门不会减速。门是当前格pathCost增加45,也就是说只有门时减速至约22%,门叠砖能减速至18%。

              根据公式可以发现几个问题,门的45加上去后,原本的残疾减速或事物减速就显得影响很小。而门和事物的消耗时间加上去后,斜向的减速影响也变小
              (PathGrid.CalculatedCostAt、Pawn_PathFollower.CostToMoveIntoCell)
              二、减流速
              减流速的原理是碰撞体积导致每两人会差开两格距离:
              未限流时这两个人应重叠 而限流时因为不能站到同一格差开一格,前人移动时后人发呆又差开一格

              所以减流速的效果即”每两人的间隔等于敌人通过这两格所花的时间”
              那么敌人进入阵地流速只取决于”产生碰撞体积后行走耗时最高的相邻两格”
              效果最强的结构为门—门+砖—门+堆块,这样基础两格耗时26帧,进入第二格有门和砖的减速共59帧,第三格有门和堆块的减速共87帧,共耗时172帧。流速约是什么都不放(26帧)的七分之一,约是只放连续路障(65帧)的五分之二


              IP属地:天津7楼2024-09-16 15:57
              回复
                敌人破坏建筑机制:
                ① 在自己周围6*6范围内随机挑一个有视线的建筑或植物进行破坏
                ② 一定不会破坏无敌的、无需材料、陷阱类、会被无视、休眠中或机械族阵营的建筑
                被无视建筑有自然圣地、法石、栅栏、隐藏电缆、畜栏标牌
                ③ 也不会破坏不可达、正在燃烧或非敌对阵营的建筑
                ④如果目标建筑可燃,动作则会有35%转变为点火
                (会对非树的植物点火,在下雨概率大时不会点燃露天的植物)
                ⑤如果目标建筑不可燃且是无吸引力建筑,则通常不会破坏
                无吸引力建筑有远古围墙、瓮、远古水泥围栏、远古路灯杆、所有结构类建筑、沙袋、路障、电缆、矿物类建筑(包括升壁和崩落石头)、雪人、虚空系列、血肉心脏系列

                (开发者选项Draw Dest Search可查过程)


                IP属地:天津8楼2024-09-16 15:57
                回复
                  袭击带走战利品离开或绑架殖民者撤退:
                  简单来说,当敌人五秒没人受伤,且附近有比自己这边人数对应财富还多的财富就会触发带走战利品。绑架的话只要附近是倒地殖民者或奴隶就会触发。
                  一、可以带走战利品的袭击类型
                  一般人类袭击就都可以带走战利品撤退。
                  每个集团都可以单独触发撤退,一次袭击一般只有一个集团,但也有一个袭击多个集团的情况
                  二、触发带走战利品的价值阈值
                  集团的触发价值=集团中可行动的单位战斗力总和*2~10倍的随机值
                  这里计算时每个单位战斗力至少按100算
                  (Draw Lords可以看到每个集团的触发价值)

                  (各种单位的基础战斗力可以在游戏xml文件里或wiki查:https://rimworldwiki.com/wiki/Raider
                  实际战斗力好像是受基因等影响的)
                  三、触发时机
                  每集团每两秒判断一次,如果集团上次受伤在5秒以前,则统计集团的每个单位"附近最佳战利品"的价值(不会重复计同一物品),如果价值总和高于触发价值,则触发"带走战利品撤退"。
                  (Draw Steal Debug在只有一个单位时可以画出触发撤退的位置(涂绿色),不过多个单位时不准。也可以画出单位寻找到的最佳战利品(连白线))

                  四、寻找"附近最佳战利品"
                  单位必须有操作能力、能够抵达地图边缘,在可抵达、半径7格数15个区域的范围内寻找最近的市场价值不小于320、非燃烧中、可偷窃、可卸载可搬运的物品,且所有路径不能穿过温度处于舒适温度±90的区域,以上条件都不满足的情况无战利品。
                  其中可偷窃的物品不包括炮塔、加农炮、陷阱。
                  ("半径7格数15个区域的范围"是指按区域规则数15个区域,但无视门和格子全位于半径7格外的区域,也不算区域外延伸范围)
                  (站在门上时会有BUG可以无视危险温度这一条(Danger.Some))

                  五、触发后
                  触发后每个单位会持续寻找战利品,但半径变为12格,且跟自己同一分区的12格内有敌对单位时不会寻找。触发后保持之前的进攻一小段时间后撤退,撤退时不会攻击。
                  (被墙、门、障碍物、地图边缘围成的圈地都是分区)

                  六、绑架殖民者撤退
                  与"带走战利品撤退"类似,区别在于每次判断时轮流地只选一个单位,寻找附近8格有无倒地殖民者或奴隶,跟自己同一分区的12格内有敌对单位不判断,其他条件基本同"寻找附近最佳战利品"

                  (LordJob_AssaultColony、Trigger_HighValueThingsAround.ActivateOn、StealAIDebugDrawer.TotalMarketValueAround、StealAIUtility.TryFindBestItemToSteal、Trigger_KidnapVictimPresent.ActivateOn)


                  IP属地:天津9楼2024-09-16 15:59
                  回复
                    商队选择闲逛位置机制:(包括征募队之类的)
                    简单来说就是会优先跑到”优先建筑”旁边,并且必须到一片与地图边缘相连的室外空旷的地方。

                    一、流程
                    ①首先随机选取一个玩家的优先建筑,判定附近10格有无合适格,重复120次
                    ②120次都失败后,随机选取一个玩家的建筑,判定附近15格有无合适格,重复120次
                    ③120次又都失败后,随机选取一个殖民者或囚犯,判定附近15格有无合适格,重复50次
                    ③ 50次失败后,在地图上随机选取一格判定是否合适,重复1000次
                    ④ 1000次失败后商队生成失败

                    (开发者选项Draw Dest Search可查选取过程)
                    二、优先建筑:
                    除了大部分结构、防卫、电力、异象、生物技术、杂项和无需材料的建筑,比较典型的是各种家具,还包括有炮塔、交易信标、卵箱、运输舱、地址扫描仪、石碑、隐身探测器、风力发电机等等
                    具体可以下载表格来查 度盘链接:https://pan.baidu.com/s/15PZjZxBZRhGurEG7kF9KtA 提取码:s042
                    三、附近X格:
                    在以X为半边的正方形范围内,随机选择50次格,判定是否合适
                    四、合适格条件:
                    ①格无障碍物。
                    ②格所处的分区与地图边缘相连,是室外,格数大于60。(被墙、门、障碍物、地图边缘围成的圈地都是分区)
                    ③商队可直达格,路径上不能有关着的门
                    ④格附近6格内,没有门,且分区不同的格子不超过6个,此种格优先(巨石和墙体格无分区,但无分区也算不同分区)
                    ⑤格附近12个区域、半径16格内且视野内,殖民者建筑不低于5个的格优先(墙体不能处于区域内所以不计数)

                    (TryFindRandomSpotJustOutsideColony)


                    IP属地:天津10楼2024-09-16 16:00
                    回复
                      小人和实体的部位机能解析:
                      基于精品贴分析,文献链接:https://tieba.baidu.com/p/8298011984
                      下面是基于人类的机能分布作图,实体的只有原始的资料,不过还算好理解,链接为:https://pan.baidu.com/s/1wd5p_8MuIflnRLY6KTu_6A?pwd=p3pj 提取码:p3pj

                      ① 躯干是主干部位,细线往外连接的是分支部位
                      ② 位于部位之中的是内部部位,部位被摧毁时,其分支和内部部位全被摧毁
                      ②通常攻击命中内部时,也会同时伤害所有外部部位
                      ③ 灰色部位是指固体部位,主要影响钝击的效果
                      ④ 黑色数值:伤害到此部位的实际概率,外部部位的概率加上了内部部位的概率
                      ⑤ 红色数值:黑色数值加上所有分支部位的概率(意义仅为计算方便)
                      ⑥ 隐藏血条:人类为150点,累积总伤害达到后,就会立刻暴毙
                      ⑦ 图标:部位效率提供了全部或一半的对应能力,图标对应的能力如下:

                      ⑧ 身体能力=A*B*C*...
                      而对称身体能力=(A*B*C*0.5+……*0.5)*F*E
                      A=∑A/n
                      最终能力=((1+意识)*身体能力+光滑尾巴)*细长手指
                      身体能力为零时最终能力强制为零
                      ⑨ 其中图标ABC的意义是,多个部位的效率都能以100%影响能力
                      如骨盆是移动能力E,只摧毁骨盆移动能力也直接归零

                      ⑩ 多个相同的图标字母意义是,以这几个部位的平均效率影响能力
                      如肋骨和胸骨都是呼吸能力B,摧毁肋骨会使呼吸能力为50%

                      ⑾其中有一些带星号的特殊图标:

                      ⑿手腿为对称机制,各边只影响50%能力
                      身体能力=(A*B*C*0.5+……*0.5)*F*E

                      另外仿生体会将单边部分整合为一个部件
                      箭头图标代表有对称机制,也就是要跟另一边各影响50%
                      ⒀眼耳仿生体只有单侧时,更强的部分可以发挥标注的75%效率,其他仿生体则是正常的50%。
                      ⒁肢体仿生无视子部件缺失


                      IP属地:天津11楼2024-09-16 16:02
                      回复
                        丢垃圾发生报复的概率:
                        简单来说,直接往对方基地砸100个垃圾必报复。
                        ①概率实际与扣除好感量有关,不算自然好感度偏移的125%加成的,也不考虑实际扣除量之类的
                        ②只会扣除地图上与垃圾空投点最近的基地派系的好感
                        ③ 扣除好感量=垃圾数量*距离因素,计算后/100等同报复概率%
                        ④ 直接砸到对方基地的距离因素是100%,也就是丢100垃圾时必报复
                        距离因素:离对方基地0格100% 1格50% 2~4格20%5~7格10% 8~16格6.6% 16格以上5%
                        ⑤另外玩家丢垃圾如果丢在自己基地,或者丢完后对方还是非敌对的也不会发生报复。

                        (CompDissolutionEffect_Goodwill.WorldUpdate)


                        IP属地:天津12楼2024-09-16 16:03
                        回复
                          水中浮现袭击机制:
                          水中浮现机械族或吞噬兽需要存在可到达殖民者建筑的流动的浅水、流动的深水或浅海水
                          一般只有海边或地图标了河流的位置才会有这些地形
                          水地形被桥梁覆盖或被排水泵抽走便不会刷袭击 当然地图边缘的还是没法处理
                          只要存在局部至少有51格的任何水地形,就会刷袭击
                          普通的浅水深水不会刷袭击

                          (PawnsArrivalModeWorker_EmergeFromWater、IncidentWorker_PitGate.TryExecuteWorker)


                          IP属地:天津13楼2024-09-16 16:04
                          回复
                            饿晕法坑布施官:
                            虽然家人们可能已经用了好久了,不过还是正式记录一下。
                            接受授权任务,布施官就位后,让被授权的殖民者组建远行队,之后右键点击布施官接受授权,最后取消远行队就可以开始等了,小人该干什么干什么,布施官会一直罚站直到饿晕,执行救援即可。
                            不会损失好感,不过布施官会很快站起来离开,玩家地图较大的话他可能再饿晕,最好是亲手把他带到地图边缘,或者做外科检查做个伤口让他多躺会,这样还会额外得到10多点好感。


                            布施官心情太差的话,会发疯或崩溃离开,发疯会立刻被护卫打死,但也不会损失帝国好感。崩溃离开就得不到启灵装置了,不过也没有损失,立刻再叫一个布施官即可。


                            IP属地:天津14楼2024-09-16 16:04
                            回复
                              蓝图法无限偷征募官黄金:
                              ① 偷金之前最好确保只留500黄金在居住区和储存区内,其他黄金禁用。
                              ② 然后放置一个黄金桌子蓝图

                              ③ 命令一个小人运送黄金至蓝图

                              ④ 与征募队或商队交易并卖出500黄金

                              ⑤ 然后搬运小人就会自动拿回黄金。之后循环卖出就行,最后可以无限增长皇家声望

                              ⑥ 另外注意商队自带黄金或同种堆叠货物时,要先买过来,不然会没法偷。
                              ⑦ 如果让两个搬运小人运送到两个蓝图,也可以做到偷回1000黄金,这个可以自行调整
                              同原理也可以靠卖其他物品然后偷回来。


                              IP属地:天津15楼2024-09-16 16:06
                              收起回复