【异想世界】MC指令还原模组?可能吗(2)

前言:本专栏为《MC指令还原模组?可能吗》第二期
编写时间有限,有错误欢迎指正
在中国版MC中,单人/联机都可以加装模组,而服务器中就不可以,同样,在中国版端游MC中,可以开设能加模组的服务器,但价格更贵,因为我是基岩版的指令师,所以本专栏只探讨基岩版

本专栏讲如何看能否用指令还原出模组并在服务器上支持多人使用

本章以制作传送点为例
模组中的使用方法是:
到达目标要设置传送点的位置
打开模组自带的地图操作界面
创建传送点,可改名

首先分析需求:
能设置和删除传送点
可以随时传送,哪怕区块没有被加载
可以改名

然后就是理清思路
设置和删除传送点可以靠实体来完成,但传送是第一个要遇到的难题:具体原因,玩家可能会离开实体所在的区块,导致区块无法加载,从而没有办法从远距离传送到传送点,解决方法是使用常加载区块,但一台服务器最多只能创建十个常加载区块,跑去指令区的一个常加载区块,还剩九个。也就是说,一个服务器最多只能存在九个传送点,个人建议,可以将传送点制度改为收费,需要注意的是,常加载区块不只会加载实体,还会一直加载方块,如果玩家将传送点建立在全物品仓库附近,那么其中箱子中的物品,漏斗以及流水掉落物等全都会一同加载,会造成服务器不必要的卡顿。但除去用长加载,也只能用游戏特性:重生点。
在我的世界中,世界生成点可以弱加载(不确定,只在单人存档中用过)

理论实现部分:
显示部分可以给盔甲架一个tag标签。但此方法执行起来较为困难。需要给每一个玩家分配一个独立的uid tag,相对于标签而言,计分板更容易实现此类功能。创建盔甲架传送点时,将玩家的uid计分板复制给盔甲架的积分板,需要判断哪一个盔甲架,传送点属于使用者时,只需要将计分板分数全部复制到另一个临时计分板中,并进行减法运算,数值等于零的传送点,就是属于该使用者的。
传送和显示时,只需要用scores选择器即可。
传送点创建完毕后,还需在盔甲架处创建一个常加载区块,通过常加载区块的特性,来保证玩家远离后不会卸载区快而导致无法传送的尴尬场面。