QWERTY770
我用数据包自定义了一个物品,是一个tag中id为more_dim:overworld_teleporter的胡萝卜钓竿,并且已经做好了右键判断和右键时执行的函数more_dim:tp/overworld
现在我要在该函数内加上一些命令,使这个物品右键使用3次后就消失,如何实现?

必须用1.17.1的原版数据包内容






MCOC_PH
可以给这个胡萝卜钓竿加一个自定义的nbt标签,比如{abc:3},初始值为3,在右键运行的函数中写,execute if data entity @s SelectedItem{id:"minecraft:carrot_on_a_stick",tag:{abc:3,(加上这个自定义物品的nbt}} run item replace entity @s weapon.mainhand with minecraft:carrot_on_a_stick{abc:2,(加上这个自定义物品的nbt)} 用这个命令检测物品abc值如果是3就改成2,以此类推如果是2就改成1,如果是1就把玩家主手换成空气即可。

QWERTY770
MCOC_PH 发表于 2021-10-6 12:35
可以给这个胡萝卜钓竿加一个自定义的nbt标签,比如{abc:3},初始值为3,在右键运行的函数中写,execute if d ...

请问这个能否用data或者item modifier做呢?因为我这个物品的nbt并不确定,还有别的变量,而item replace这个命令无法让其他变量保留,而如果一一枚举的话又太麻烦了

Chelover_C60
QWERTY770 发表于 2021-10-6 13:08
请问这个能否用data或者item modifier做呢?因为我这个物品的nbt并不确定,还有别的变量,而item replace ...

先判断使用次数,若为1则直接设置为空气。若不为1,则获取剩余使用次数乘以0.99后以整形数据的形式存入storage,然后使用item_modifiers的copy_nbt参数复制回原物品

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