有关于落地物品事件的其他问题
版本1.12+ 主要是单机,最好支持多人
之前需要
1.检测有特定lore且在地面上的物品,例如检测lore或者名称为“扔到地上变成宝箱”的箱子物品掉落物
2.在该物品处生成有内容的容器,例如在该物品处生成一个有颗钻石的箱子
3.应当删除该掉落物
在前面大神的帮助下成功实现:http://www.mcbbs.net/thread-773909-1-1.html
- /scoreboard players tag @e add sc {Item:{id:"minecraft:chest",Count:1b,tag:{display:{Name:"扔到地上生成箱子"}}},OnGround:1b}
- /execute @e[tag=sc] ~ ~ ~ /setblock ~ ~ ~ chest 0 keep {Items:[{Slot:0b,id:"minecraft:diamond",Count:1b}]}
- /kill @e[tag=sc,type=Item]

在非整格高的上面(比如雪,地毯,半砖)上不视为落地,不生成宝箱
我使用条件,虽然不会出现没生成宝箱就刷掉物品的情况,但还是会出现上面的
出现一个生成箱子事件,就删除物品
应该如何解决?

还有,放在展示框里也会被视为放在地上,且不会被删掉物品,能无限刷宝箱

=====================================================================================
因此,有这两个问题需要帮助:
1:需要解决刷一个宝箱,会删掉其他没刷宝箱的物品的问题(主要问题)
2:有办法解决在半砖上不能生成的问题吗(会需要像手榴弹,扔出物品爆炸,不然会出现扔到地毯 上不爆炸的尴尬情况)
2:展示框里的物品也能出事件的问题(如果不能解决,我只能指定一个不能放展示区的地方,专门用来 开箱)
因为你setblock 后面是 keep,也就是说如果当前位置不是空气的话不放置方块
如果想要替换的话改成replace即可,但是注意到这样会将雪层和半砖一类的都替换掉
如果你的本意不是,你就需要指明你的意思了
展示框的问题你把第一条 @e 改成 @e[type=item] 即可,限定只有掉落物才检测。
如果想要替换的话改成replace即可,但是注意到这样会将雪层和半砖一类的都替换掉
如果你的本意不是,你就需要指明你的意思了
展示框的问题你把第一条 @e 改成 @e[type=item] 即可,限定只有掉落物才检测。
你为什么要用keep
何replace而不为呢
坚持keep?瞎[和谐]乱嵌套execute大法好
复制代码
何replace而不为呢
坚持keep?瞎[和谐]乱嵌套execute大法好
- /scoreboard players tag @e add sc {Item:{id:"minecraft:chest",Count:1b,tag:{display:{Name:"扔到地上生成箱子"}}},OnGround:1b}
- /execute @e[tag=sc] ~ ~ ~ /execute @s[tag=!scc] ~ ~ ~ setblock ~ ~ ~ chest 0 keep {Items:[{Slot:0b,id:"minecraft:diamond",Count:1b}]}
- 可以和你之前一样使用制约模式(可以改成不用制约模式的,但是既然你用了我就不改了)
- /execute @e[tag=sc] ~ ~ ~ kill @s[tag=!scc]
- /scoreboard players tag @e[tag=sc] add scc
我可能没看明白你这个
你到底是想不想在半转上生成
你到底是想不想在半转上生成