我的世界怎么设置结界?
要有一个足够大的地图(建议100×100以上)并保证其中的所有区块都被加载到RAM中。当然你也可以用几个大型存档来模拟一个结界域; 然后我们建立一个名为“magic”的实体类型,用来储存我们的魔力数据并且提供一些魔法的基类。 然后我们将创建一个基类用来表示一个可用的结界,并在里面添加一些默认的属性。 然后我们再创建一个类继承自这个基类,并重载相关的方法,给结界添加具体的功能。 这样,我们就可以使用新的命令/give 来给玩家发放结界了!
为了测试我的方法是否有效,我新建了一个世界并进行实验,得到了以下截图: 我在这个世界的地底下放置了一些金块作为法力源,并用红石电路将它们连接起来,在上方使用活塞推进红石粉让它们不断产生能量。 在离金矿较远的地方用灵魂火把建立了一个基地,并在其中放上了很多工具、食物和火焰弹,用于测试结界范围。 在离金矿约250格的地方我用黑曜石建了一座高塔,并在顶端摆放了一根火焰柱,用来测试最大高度。
当玩家靠近这座塔的时候,游戏内会提示 (未授予权限),但一旦拿到了这跟火焰柱,游戏就会立刻终止,提示玩家失去了所有的耐久度并且无法再生。 所以我们可以得出结论,这个游戏的结界半径大概是250格,最高点大概125格。 但如果是使用大型存档的话,需要修改的数据就更多了。 因为我的世界是一个开放性世界,所以结界的检测是从玩家脚下开始向上推的。
如果在结界边缘处向下延伸一条线,那么这条线上的所有方块都会被消去,所以在结界边缘处放一些危险生物或是爆炸物可以更好地测试结界效果~