terraria吧 关注:737,709贴子:9,727,475
  • 16回复贴,共1

【教程】如何为NPC建造一个多功能豪华监狱

只看楼主收藏回复

玩了这么久的泰拉瑞亚,已经见识过了各路神仙盖出来的各种奇葩监狱,从密密麻麻的火柴盒公寓到平台做的3*10极简风。
但是,身为一个真正的泰拉人,我认为NPC没有得到他们应有的待遇。作为向玩家出售各种有用道具的重要角色,随便找个漏风的火柴盒就把人家丢进去,这合理吗?
太合理了!
然而鄙人认为光是这样还不够,所以我建了下面这个东西:

让我们开始介绍《现代化NPC监狱系统建设》,为每一个NPC都提供一个舒适、便利、足 不 出 户(划重点)的生活环境。
警告:本设施纯属娱乐,虽然看起来有一定实用性但完全没有考虑过性价比,只推荐家里资源用不完的人投入使用。


IP属地:浙江1楼2024-06-26 13:08回复
    虽然我觉得这个结构已经比较一目了然了,但还是让我们把它拆分成不同的组件,来一一介绍(为了方便一部分内容直接在TEdit中展示):

    红色部分的向日葵很好理解,房屋周围有邪恶环境图块时会增加房屋的邪恶分值,导致房屋无法入住NPC,而向日葵能减少这个数值。
    蓝色区域除了方便玩家行走之外,可以看到我还特意装了一个幽灵臭虫拦截器(实际上在我图里这个监狱中不装也是可以的),具体用途让我们留待之后再说。
    黄色部分就是监狱最重要的组成部分——牢房单元。在图里的这个监狱里一共有6个牢房单元,三个在左侧、三个在右侧,中间隔开了25格。
    这么设计的目的是:1个NPC在25格范围内如果超过2个其他NPC就会触发拥挤惩罚,而如果25-120格范围内有另外3个(不算25格内的2个)也会触发拥挤惩罚。因此,在通常的晶塔网络设计中,我们不会在每一个25格范围内(以下称为小城镇)放置3个以上的NPC,同时不会在120格范围内(以下称为大城镇)放置超过6个NPC。所以这样一个监狱基本就可以满足任何情况下,单个生物群系的NPC城镇安排。


    IP属地:浙江2楼2024-06-26 13:17
    回复
      接下来就开始正式介绍本监狱的组成核心——牢房单元。
      虽然这个结构看上去简单,但其实是我经过多次迭代后的产物,这个我们之后再说,首先还是先上结构图,这次我打开了电线显示来让各位看得更清楚:

      首先是居住模块,可以看到我们非常贴心地给NPC开了一扇窗,让他们在白天能享受到充足的日光和新鲜的空气。
      同时,我特意将工作台和椅子都搬到了房屋上半部分的平台上,这个平台高度是为了让NPC跳不上去而特别设计的(工作台和椅子下方的平台高度错开是因为这样才能把平台上面的部分也判定为房屋的一部分),这样可以确保NPC不会长时间久坐在椅子上危害健康。
      居住模块有一个很贴心的设计,只要按下绿色开关,房屋顶上的一个平台就会被虚化,破坏房屋的封闭结构,此时系统就会把上方的走廊也判定为房屋的一部分。而又因为我们在走廊里放了幽灵臭虫拦截器,所以房屋判定会失败,这会导致房屋结构立刻失效(但实际上由于走廊比较大这里不装幽灵臭虫拦截器也能让房屋失效)。因此只要开关绿色开关就能切换房屋的激活状态,这个设计是为了防止NPC随便乱住进没准备给他们住的房间里,严格实施牢房配给制。
      有人可能要说:这都3*20了,为啥要让NPC住的那么大,那接下来就要提到我们的微光转化模块了


      IP属地:浙江3楼2024-06-26 13:35
      收起回复


        IP属地:江苏来自Android客户端4楼2024-06-26 13:36
        回复
          微光转化模块的工作原理很简单,当我们按下蓝色按钮时,会启动居住模块下方的传送机,将NPC传送到左侧从下往上第二个传送机处,此时接触到微光的NPC会转化为微光形态。这也是为什么我们需要把牢房模块的整体高度太高一些,因为NPC在进行微光转化时会向上飘起一段距离,如图(来自泰拉瑞亚官方中文Wiki,使用CC BY-NC-SA 3.0协议授权):

          此时如果天花板太低,NPC就有可能会逃脱,这是我们不希望发生的。同时,利用这个机制,NPC在浸入微光并发生转化时,会直接穿过微光上方的砖块,从上面掉下来,然后落到左边最上面的传送机上。传送机上安装了压力板,所以NPC只要一踩上去就会被传送回居住模块中。
          如果你连续按了两次按钮,那么NPC会在微光转化开始之前就被送回居住模块中,并且在居住模块里开始转化。但我们仍然不用担心,因为就像我前面说的,放椅子和工作台的平台高度经过特殊设计,刚好放在了NPC用微光转化也跳不上去的位置上。


          IP属地:浙江5楼2024-06-26 13:49
          回复
            最后是处决模块,这个模块也是我经过多次试验设计的。
            不过要指正一下,左边最底下那个传送机的压力板是多余的,单纯是我放错了,请忽视。
            这个模块间的工作原理是在我们按下红色按钮后,将NPC传送到水牢中,让NPC溺水。这里使用了水牢的原因是为了对付护士。
            经测试无论是机关还是熔岩都无法有效杀伤护士,因为她会以非常吓人的速度往自己身上丢治疗针。但我无意中发现只要在满血状态下把护士丢进水里,她就不会丢治疗针,这个设计就这样诞生了。
            当然,如果你嫌溺水伤害太低了,可以直接打开黄色计时器,这样两侧的机关也会开始工作,帮助我们的NPC快速趋势。
            顺带一提,由于我们可以把其他的牢房都禁用掉,继任的NPC没有办法找到别的房子,还是只能搬到原来的牢房里,成为下一个受害者(当然你也可以手动放NPC旗帜)。你可以稍加改造把这个过程全自动化,例如我们可以让渔夫一重生就被扔进水牢,这里就看各位的想象力了。


            IP属地:浙江6楼2024-06-26 14:01
            回复
              微光转化模块和处死模块可以做成所有牢房共用的


              IP属地:安徽来自Android客户端7楼2024-06-26 14:01
              收起回复
                最后说一下牢房模块的设计过程吧,最开始我其实是使用泵和液体瀑布来实现微光转化和处决的,但是在这个过程中,我发现要做一个能够分离熔岩和微光的公共液体存储区很麻烦,同时液体会在使用过程中慢慢变少。
                后来我又改成了在牢房下面加微光,配合制动器实现转化,并使用陷阱处决。但我发现制动器打开后房屋结构可能会被破坏导致失效,非常不便。同时陷阱对护士基本没什么用(但是可以打开陷阱时和她对话,因为对话时护士不会丢针)。
                再然后,我就想出了使用传送机的设计,最开始所有NPC的处决和微光转化模块是共用的。但我又发现这样做的话,如果想要把NPC送回原本的牢房电路设计就会很复杂,因此最后还是选择了将其解耦。
                再最后说几个小细节:
                1.这个监狱的门装的都是玩家传感器,所以即使NPC跑出了自己的牢房也没法去到外面,当然怪也是进不来的。
                2.不同于其他许多极简风的监狱,鉴于内部是全部铺上了墙的,再加上四面封闭刷怪判定是不可能落在里面的。


                IP属地:浙江8楼2024-06-26 14:09
                回复
                  共用模块不复杂,另外微光转化模块一个传送机就够了



                  IP属地:安徽来自Android客户端9楼2024-06-26 14:30
                  收起回复


                    IP属地:广东来自Android客户端10楼2024-06-27 04:02
                    回复