iMoonDay
本帖最后由 iMoonDay 于 2020-7-31 22:35 编辑

标题的问题我自行解决了,我想换个问题:如何将两个不同实体但类型相同的nbt进行配对,进而执行另外一个指令.比如某个玩家丢了个东西,这个掉落物的Thrower和玩家的UUID一样,但如何检测他们是否一样并执行指令?


renyunzhong
你看看其他指令能执行是不是其他的指令没有调用这个断言,因为有时候断言会莫名其妙不工作

解决方法execute if predicate 断言 就行

iMoonDay
renyunzhong 发表于 2020-7-31 22:11
你看看其他指令能执行是不是其他的指令没有调用这个断言,因为有时候断言会莫名其妙不工作

解决方法execut ...

我另外新建了一个函数把指令单独放进去又能用了...

renyunzhong
iMoonDay 发表于 2020-7-31 22:13
我另外新建了一个函数把指令单独放进去又能用了...

你看看会不会出现有时候能用,有时候用不了的情况,如果是就是断言的bug

iMoonDay
renyunzhong 发表于 2020-7-31 22:14
你看看会不会出现有时候能用,有时候用不了的情况,如果是就是断言的bug ...

试了几次目前还没出现失灵情况

VCS-Official
= =自行解决请申请退回赏金,一个帖子循环利用可还行。

利用data命令执行失败时返回值为0的特性
可以先将需要比对的其中一个nbt转移到storage或其他安全的地方,然后execute store result run data modify进行覆盖。
若两个nbt完全一致,则覆盖会失败,返回值为0
于是可以得出两nbt相同/不同。

另外这个方法我印象中是ph想到的。

iMoonDay
VCS-Official 发表于 2020-7-31 23:58
= =自行解决请申请退回赏金,一个帖子循环利用可还行。

利用data命令执行失败时返回值为0的特性

我自己当时是直接一个覆盖另外一个,虽然成功了但是nbt被改了就放弃了

VCS-Official
iMoonDay 发表于 2020-8-1 01:28
我自己当时是直接一个覆盖另外一个,虽然成功了但是nbt被改了就放弃了

先把要覆盖的NBT复制一份到临时的存储位置中,然后再覆盖就不影响原标签了。

所以最佳呢?

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