次元方块背包指令
CQsomt
编辑于 2022年11月07日 22:04

注意事项:

1.球球给个币罢[doge]

2.前八条指令可以删掉(是为了显示方块轮廓)

3.要添加常加载区域

4.有什么不懂或者运行失败加3409905252

备注来源 如果我在线的话会给你讲

5.指令提示刷屏用

/gamerule commandblockoutput false

6.网易版轮廓不可显示,拿起的方块不可显示(可以选择删除hasitem条件,这样拿起的方块就可以显示)

7.多人模式会出现bug

8.第一条指令为循环无条件保持开启

以后的命令方块若无说明就是连锁无条件保持开启

1粒子特效

execute @e[hasitem={item=fishing_rod,location=slot.weapon.mainhand}] ~~~ particle minecraft:balloon_gas_particle ^0.5 ^1 ^2.5

2粒子特效

execute @e[hasitem={item=fishing_rod,location=slot.weapon.mainhand}] ~~~ particle minecraft:balloon_gas_particle ^-0.5 ^1 ^2.5

3粒子特效

execute @e[hasitem={item=fishing_rod,location=slot.weapon.mainhand}] ~~~ particle minecraft:balloon_gas_particle ^0.5 ^1 ^3.5

4粒子特效

execute @e[hasitem={item=fishing_rod,location=slot.weapon.mainhand}] ~~~ particle minecraft:balloon_gas_particle ^-0.5 ^1 ^3.5

5粒子特效

execute @e[hasitem={item=fishing_rod,location=slot.weapon.mainhand}] ~~~ particle minecraft:balloon_gas_particle ^0.5 ^2 ^2.5

6粒子特效

execute @e[hasitem={item=fishing_rod,location=slot.weapon.mainhand}] ~~~ particle minecraft:balloon_gas_particle ^-0.5 ^2 ^2.5

7粒子特效

execute @e[hasitem={item=fishing_rod,location=slot.weapon.mainhand}] ~~~ particle minecraft:balloon_gas_particle ^0.5 ^2 ^3.5

8粒子特效

execute @e[hasitem={item=fishing_rod,location=slot.weapon.mainhand}] ~~~ particle minecraft:balloon_gas_particle ^-0.5 ^2 ^3.5

9把鱼钩为半径3格内最近的标签不为"NP"的玩家面前3格的方块保存结构为"次元方块背包"

execute @e[type=fishing_hook] ~~~ execute @p[tag=!NP,r=3] ~~~ structure save 次元方块背包 ^ ^1 ^3 ^ ^1 ^3 false

10有条件

把那个人面前三格的方块替换为空气方块(就是把那个方块清除)

execute @e[type=fishing_hook] ~~~ execute @p[tag=!NP,r=3] ~~~ setblock ^^1^3 air

11有条件

加载那个结构在第18条指令命令方块所在上方

structure load 次元方块背包 x y z

12有条件

把第18条指令命令方块上方的方块清除为掉落物(有些特殊方块无法掉落实体,因此不会显示名称)

setblock 16 -59 -25 air 0 destroy

13有条件

给那个人添加标签NP

execute @e[type=fishing_hook] ~~~ tag @p[tag=!NP,r=3] add NP

14有条件

收回鱼钩

execute @e[type=fishing_hook] ~~~ tp ~~-1000~

15鱼钩为半径3格内最近的标签为"NP"的玩家面前3格的方块加载结构为"次元方块背包"

execute @e[type=fishing_hook] ~~~ execute @p[tag=NP,r=3] ~~~ detect ^^1^3 air 0 structure load 次元方块背包 ^^1^3

16有条件

给那个人删除标签"NP"

execute @e[type=fishing_hook] ~~~ tag @p[tag=NP,r=3] remove NP

17有条件

给那个人显示字幕"次元背包方块已放出"

title @a[tag=!NP] actionbar §l次元方块背包方块已放出

18有条件

杀死以命令方块为半径两格内的掉落物

kill @e[r=2,type=item]

19

你们好,这里是后期的up,在写专栏时我觉得这条指令好像没有用,所以你可以直接跳过写下一条

20

给手里拿着钓鱼竿且标签为"NP"的玩家显示字幕"当前次元背包方块 <位于第18条指令的命令方块上方位置的掉落物名称>"

<指令中等号后面的x y z均为第18条指令所在命令方块的上方的坐标,自行填写>

title @a[tag=NP,hasitem={item=fishing_rod,location=slot.weapon.mainhand}] actionbar §l当前次元方块背包§r§b @e[x=x,y=y,z=z,r=2,type=item]

21杀死钓鱼竿

execute @e[type=fishing_hook] ~~~ tp ~~-1000~

22把两格内的掉落物全部传送到第18条指令命令方块所在位置上方

execute @e[r=2,type=item] ~~~ tp x y z

23有条件

生成玻璃(可加可不加,这里up主只是为了好看)

setblock ~~-2~ glass

若有错误请私信或qq指出

来自UID:595618907

REAL_XD的评论(up觉得很有用就加进专栏了):

如果想要多人使用/网易使用可以看看

Q:为什么这个指令组多人模式会出现bug?

A:因为存储“次元方块背包”是所有人共用一个结构 因此如果一个玩家保存某个方块后还未放置时又有另一个玩家保存某方块 那么前一个玩家保存的方块会被后保存的方块替换

解决方案:不选择用结构方块保存 而是用uid系统+实体解决 大概思路如下:保存方块时在原地生成一个盔甲架(可以用其他实体代替) 然后uid赋值为玩家uid 当玩家执行搬运操作时将此方块复制到对应位置并清理盔甲架所处的方块(uid相减法检测与玩家相等uid的盔甲架)再清理此盔甲架

优点:多人可用 解决了方块被替换问题

缺点:指令量增加 而且仅仅解决了个无关紧要的bug 使用时也需要实体 容易造成实体堆积过多的问题

Q:为什么网易不能用?

A:因为网易还没有更新hasitem选择器,可以等几个月更新或者用其他方法解决

解决方案:移除所有玩家手持鱼竿标签 遍历所有玩家并enchant玩家手中物品“饵钓”/“海之眷顾” 执行成功则加上手持鱼竿标签