基于僵尸丢失目标的区块加载检测器



  • 原理

    区块卸载时,僵尸会丢失目标,由此可以设计一个区块加载检测器。
    批注 2019-10-03 215443.jpg
    可以看到,图中左边的村民离小僵尸更近,但小僵尸的目标却是在右边的村民身上。
    当区块重新加载时,小僵尸会重新寻找目标,锁定左边更近的村民,向左边的村民靠近,踩中左边的压力板,导致村民下落到42格外。此时小僵尸丢失目标,会重新寻找目标,锁定右边的村民,向右边靠近,踩中右边的压力板。左边的村民稍后会由水电梯运送上来,由此完成一次检测。

    多次重复进存档测试

    并没有出错。

    优点:

    1、稳定性很好,原理简单
    2、用到的特性不大可能被修掉(1.13.2、1.14.4测试有效)
    

    缺点:

    1、相比基于酿造台的检测系统,延迟偏高,每次进存档后有时长不等的延迟。
    2、如果在左边村民复位前重新加载区块,检测器不会给出任何输出(也就是说,不抗高频率重复加载、卸载区块)。
    

    使用海龟蛋的方案

    经测试,海龟蛋是不可以的,在长时间挂机后,小僵尸重新锁定了目标,导致装置发出错误信号。


    题外话

    “僵尸会攻击42格内的村民,它们可以透过墙壁看见村民。一旦僵尸选择了一个村民为它的目标,它们就会忽略其他的村民和玩家,直到这个村民死亡或者僵尸在追逐过程中受到攻击。”——Minecraft Wiki

    现在看来,区块重新加载也可以导致僵尸丢失目标。
    总之,一切不会存入世界文件的信息都可能可以拿来检测区块重新加载,比如酿造台,比如漏斗矿车是否锁定(已修复),比如凋零锁定的攻击目标。


    第一次用markdown写文章,不足之处还请谅解。



  • 对了,为了演示方便,图中大量使用了完全透明的屏障方块,请自行替换为其它方块。



  • 海龟蛋是不行的,原文已经修改。



  • 发一下存档:
    https://pan.baidu.com/s/1NNa50E4kF4nyDRSx4T7aTQ
    提取码: 2333


    有一个命令方块,在被红石信号激活后会输出一段话“重新加载了!”


    脑抽做在出生点区块了,要测试玩家远离时是否正常工作请用/setworldspawn另选出生点。实际上是会正常工作的。
    顺便说一下,既然要检测实体运动,这肯定是一个强加载区块检测器。
    哪天mojang修好了这个bug,把敌对目标也记入世界文件,也许就可以有抗卸载凋零笼子吧?不过前段时间ccs大佬好像已经发了一个真空内爆式凋零笼子?



  • 重发一个存档,原来那个村民有小概率淹死…
    新存档已经修改了出生点,可以直接进行玩家远离测试了。
    链接: https://pan.baidu.com/s/1r5W14IhITF88u-x2GPFxRg
    提取码: 2333



  • 简单做了个视频,懒得下存档研究的看看视频就行了。(低质量视频)


 

友情链接

魔茶国际
Powered by TIS