不动要塞

有关于落地物品事件的其他问题
版本1.12+     主要是单机,最好支持多人
之前需要
          1.检测有特定lore且在地面上的物品,例如检测lore或者名称为“扔到地上变成宝箱”的箱子物品掉落物
          2.在该物品处生成有内容的容器,例如在该物品处生成一个有颗钻石的箱子
          3.应当删除该掉落物


在前面大神的帮助下成功实现:http://www.mcbbs.net/thread-773909-1-1.html   
  1. /scoreboard players tag @e add sc {Item:{id:"minecraft:chest",Count:1b,tag:{display:{Name:"扔到地上生成箱子"}}},OnGround:1b}

  2. /execute @e[tag=sc] ~ ~ ~ /setblock ~ ~ ~ chest 0 keep {Items:[{Slot:0b,id:"minecraft:diamond",Count:1b}]}

  3. /kill @e[tag=sc,type=Item]
复制代码
但是,我发现,出现一个生成箱子的事件,会把其他没有生成箱子的物品也删掉


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



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


=====================================================================================
因此,有这两个问题需要帮助:
        1:需要解决刷一个宝箱,会删掉其他没刷宝箱的物品的问题(主要问题)
        2:有办法解决在半砖上不能生成的问题吗(会需要像手榴弹,扔出物品爆炸,不然会出现扔到地毯                        上不爆炸的尴尬情况
        2:展示框里的物品也能出事件的问题(如果不能解决,我只能指定一个不能放展示区的地方,专门用来                   开箱)


ruhuasiyu
因为你setblock 后面是 keep,也就是说如果当前位置不是空气的话不放置方块
如果想要替换的话改成replace即可,但是注意到这样会将雪层和半砖一类的都替换掉
如果你的本意不是,你就需要指明你的意思了

展示框的问题你把第一条 @e 改成 @e[type=item] 即可,限定只有掉落物才检测。

pineapple_
你为什么要用keep
何replace而不为呢


坚持keep?瞎[和谐]乱嵌套execute大法好

  1. /scoreboard players tag @e add sc {Item:{id:"minecraft:chest",Count:1b,tag:{display:{Name:"扔到地上生成箱子"}}},OnGround:1b}

  2. /execute @e[tag=sc] ~ ~ ~ /execute @s[tag=!scc] ~ ~ ~ setblock ~ ~ ~ chest 0 keep {Items:[{Slot:0b,id:"minecraft:diamond",Count:1b}]}

  3. 可以和你之前一样使用制约模式(可以改成不用制约模式的,但是既然你用了我就不改了)
  4. /execute @e[tag=sc] ~ ~ ~ kill @s[tag=!scc]

  5. /scoreboard players tag @e[tag=sc] add scc

复制代码

pineapple_
我可能没看明白你这个
你到底是想不想在半转上生成

下一页 最后一页