2.很明显就可以发现,这张图片看起来好像很复杂,其实是有层次的——第一层是每个区块(1x1),第二层是每4个区块(4x4),而更巧的是如果以4x4来看待这张图片,就会发现其实只有两种4x4的方形,只不过它们有些被镜像化了。
同时这张图片也证明了我们上面的说法:.....来反推出坐标里有一个数值为0的坐标(比如5,0)排序是最靠后的,数值为0的坐标即正东西南北方向。
说了这么多,区块的卸载顺序大致也搞懂了吧?但是此时又有一个新的问题出现了:如果一个“桶”里装了很多个区块,比如优先量都为0的区块全部装在一个桶里,这该怎么办?
其实也不需要太深究,这些已经够了。
接下来,让我们回到Minecraft。了解了上面这些东西后,下面这些东西就已经很简单了。
我们知道每刻游戏最多卸载掉100个区块,那么我们就可以找100多个没用的优先级高的区块,比如全部找对角线的区块,让它们卸载了再加载,再卸载,不就可以了?
没错,这是一个很棒的想法,实际上区块加载器的原理也差不多就是这样。我们得一直运行100多个加载区块才能让特定区块保持加载。
别担心,这个工程只不过有点耗肝,脑袋配置较低稍微有点肝的话也能做得出来的。
(只不过除了肝,还有亿点耗铁)
大致方法已经敲定了,接下来就是细节了。
我们遇到的第一个问题就是:怎样让那些占哈希表的区块卸载了再加载,再卸载?
很简单,我们可以把旁边的区块也一起用上帮助加载。
我们以下面这个2x1的区块为一个例子:
0,16
你只需要准备两个漏斗和一些方块就可以搞定这个计算结果为0的区块。
参照上面的漏斗加载例子,你需要在0区块在对着16区块的边缘处放一个朝向16区块的漏斗,16区块那边也在对着0区块的边缘处放置一个对着0区块的漏斗,两个漏斗都放置一些物品。
那么这是怎么运作的呢?
假设你已经成功的按照上面的步骤制作出了100个常加载的0区块,那么你就会发现这个的运作原理是这样的:
1.在清除那一刻,0区块被卸载,而16区块继续运作,只不过被打上了死亡标签。
而下一刻,16区块的漏斗激活了0区块,0区块激活后其漏斗又把16区块给拉出了死亡表里。
45秒后,0区块又卸载,16区块漏斗又激活0区块,然后0区块漏斗又加载16区块,两区块又是这么平安无事。
就是这么个原理。
搞定了那100多个常被杀区块后,接下来你就可以来自由的设置你的常加载区块了。
(只不过处在对角线的要加载区块最好还是把里面的设施搬走吧,换一个区块)
假设你要不断加载相邻的4个区块(2x2)该怎么办?
在四个区块的交界处弄一个2x2的漏斗循环。
假设你要搞定相邻的两个区块该怎么办?
照着那100个常被杀区块那样做就行了。
假设你只需要弄好一个区块该怎么办?
很简单,其相邻的4个区块每一个都弄一个朝向该区块的漏斗。
这就是最简单的区块加载器做法。
(事实上还有更高级的维度加载器,通过维度加载器,可以同时加载两个三个甚至个维度,但那个装置更加的复杂)
但这些区块加载器仍然有被卸载的危险。
这个危险不是每45秒的卸载,而是玩家离开那一刻的区块卸载。如果玩家离开那一刻两个区块都同时被卸载。那就糟糕了。
(对了,按下F3+G可以打开区块调试界面,这个时候就可以看见区块的边界了,不再需要按F3一步一步试探)
现在,你已经知道怎么让多个区块同时加载了。如果你经常玩纯生存服务器,那么这个装置肯定会帮到你的自动化机器的,让其挂机也有收益。
只不过腐竹会不会找你算账那就不一定了。
喜欢Minecraft指令手册请大家收藏:(m.zuiaixs.net)Minecraft指令手册醉爱小说网更新速度全网最快。