__NKID00__
本帖最后由 mcsam123 于 2020-3-28 23:41 编辑

(潜了一年半后我又来水贴了,这一年半里发生了好多事情…)

大家好我是NKID00。(没绿宝石改名……之前火星了)
几天前,Bugjang 终于在 20w13a 版本出了可以自己定磁石位置的指南针了。
于是制作「真 · 指南针」就更容易了,不用这篇帖子里的改出生点大法了,而且还能用于多人游戏。

效果:
(灵魂火把是戴头上的,苦力怕头是正版皮肤)

(下面这张图的意思是面向东方,右侧是南方,指南针也指向南方)


原理:
经测试,正常的磁石指南针的NBT里有以下两个标签:
  1. {LodestoneDimension: 磁石所在维度, LodestonePos: {X: 磁石所在位置x坐标, Y: 磁石所在位置y坐标, Z: 磁石所在位置z坐标}}
复制代码

所以只要给玩家一个指向南方的接近无限远的磁石的磁石指南针就好了:(貌似再加个0就会溢出)
  1. /give @a minecraft:compass{LodestoneDimension: "minecraft:overworld", LodestonePos: {X: 0, Y: 0, Z: 1000000000}}
复制代码

然而这样只会给玩家一个指针乱转的磁石指南针……
接着又经过一波测试,发现当磁石指南针指向的磁石被破坏时指向磁石的位置会被自动删除,只剩下一个标签:

  1. {LodestoneDimension: 磁石所在维度}
复制代码

而生成一个指向不存在磁石的磁石指南针时磁石位置的NBT也会被删除,因此指针会乱转。
所以,用一个循环命令方块持续替换玩家手中物品就行了:

  1. /replaceitem entity @a weapon.offhand minecraft:compass{LodestoneDimension: "minecraft:overworld", LodestonePos: {X: 0, Y: 0, Z: 1000000000}}
复制代码

于是「真 · 指南针」就被制作出来了呢!
想要做指北针的话,只要改变磁石指南针指向磁石的位置为北方的接近无限远的磁石即可:

  1. /replaceitem entity @a weapon.offhand minecraft:compass{LodestoneDimension: "minecraft:overworld", LodestonePos: {X: 0, Y: 0, Z: -1000000000}}
复制代码

同理,指东针、指西针甚至指东北针都能被制作出来。(笑)

Ph-苯
先强加载远方区块放置一个磁石然后再卸载会有用吗?

brooke_zb
按这个思路为何不在世界边境放磁石(先forceload再setblock磁石),这样就不用高频修改了,正常玩家也跑不到那里去

深绿世界
持续替换差评。。。不如在诗和远方放一个磁石简单粗暴

深绿世界
brooke_zb 发表于 2020-3-28 23:20
按这个思路为何不在世界边境放磁石(先forceload再setblock磁石),这样就不用高频修改了,正常玩家也跑不 ...

大佬/forceload具体什么作用呢

深绿世界
brooke_zb 发表于 2020-3-28 23:20
按这个思路为何不在世界边境放磁石(先forceload再setblock磁石),这样就不用高频修改了,正常玩家也跑不 ...

那可以卸载吗?卸载之后会不会炸裂

第一页 上一页 下一页 最后一页