qweshen
如题。比如我想制作“食物腐败”的效果,让玩家背包里的面包放置超过一定时间就会“发霉腐败”变成腐肉。item指令只能替换指定槽位上的物品,而如果要替换某一件指定的物品而且继承它的槽位该怎么操作呢?如果使用clear和give指令则不能控制新物品的槽位是否与旧物品相同(比如面包放在背包里,clear面包后give腐肉的时候如果快捷栏有空位就会优先放在快捷栏里面)。我看到很多地图都能做到类似的效果,遂想求问,是否除了item穷举所有槽位还有别的更便捷的办法?游戏版本是1.20.

开心的阿诺
https://www.mcbbs.net/thread-1363931-1-1.html

qweshen
开心的阿诺 发表于 2023-7-24 14:11
https://www.mcbbs.net/thread-1363931-1-1.html

也就是说只能穷举了对吧😭

开心的阿诺
qweshen 发表于 2023-7-24 15:37
也就是说只能穷举了对吧😭

我是这么干的

Ph-苯
我有一个没试验过的设想:先给一个潜影盒装满不能由其它途径得到的特定物品(记为I1),然后用data modify append from把玩家的物品栏加入到潜影盒,这样玩家的前27个槽位中的非空槽位就会替换掉潜影盒的槽位,然后就可以用data对潜影盒批量操作,再loot replace替换掉玩家物品栏的前27个槽位,最后clear清除I1,这样就实现了对玩家前27个槽位的非穷举操作。这个方法利用的是列表中Slot相同的槽位复合标签,后面的会覆盖前面的,所以用data modify append from能用玩家槽位覆盖潜影盒已有槽位。但是其它槽位我还没想到什么非穷举方法。

qweshen
Ph-苯 发表于 2023-7-24 16:30
我有一个没试验过的设想:先给一个潜影盒装满不能由其它途径得到的特定物品(记为I1),然后用data modify  ...

是个好思路,我刚刚试了一下,的确可以用玩家的前27个槽位替换掉潜影盒的槽位并对里面的数据批量编辑,最后返回到玩家的时候出了问题,loot指令我不太会用,现看的wiki然后试着用/loot replace entity @p container.0 27 mine 0 0 0 mainhand指令返回,但是只会返回一个装着那些东西的潜影盒而不能把潜影盒里面的东西直接返回到玩家背包。。。

下一页 最后一页