那么怎么才能对比自定义的实体名和指定字符串是否相同呢
指定字符串也可以是别的实体名
就是用告示牌手写,然后用实体名抄写
如果实体名不行,也可以用别的字符串储存方式
就是问能不能对比字符串,怎么对比
本帖最后由 晴路卡 于 2022-4-21 10:49 编辑
实体名称和木牌上的那些通常称为json文本...和字符串(书与笔,命令方块中的文本内容)还是有区别的。
比对俩实体名称是否相同:复制代码
另外这样比对json文本的时候不只是比对文本本身的内容,json文本当中的其他格式信息(如粗体,斜体等)也是会被比对的。
实体名称和木牌上的那些通常称为json文本...和字符串(书与笔,命令方块中的文本内容)还是有区别的。
比对俩实体名称是否相同:
- data modify storage custom:test temp set from entity @e[tag=entity.0,limit=1] CustomName
- execute store success score #result temp run data modify storage custom:test temp set from entity @e[tag=entity.1,limit=1] CustomName
- # 如果是和木牌上的内容比对第二条指令换成这个
- # execute store success score #result temp run data modify storage custom:test temp set from block 2 10 -28 Text1
- execute unless score #result temp matches 1 run say 名称一致
另外这样比对json文本的时候不只是比对文本本身的内容,json文本当中的其他格式信息(如粗体,斜体等)也是会被比对的。
晴路卡 发表于 2022-4-21 10:45
实体名称和木牌上的那些通常称为json文本...和字符串(书与笔,命令方块中的文本内容)还是有区别的。
比 ...
直接复制?#result是个什么,要我改的意思吗,temp应该是计分板名字吧,可为什么最后出来是一个一直输出成功的命令方块,名字不一样也输出成功
迪s尼在逃律师函 发表于 2022-4-21 11:39
直接复制?#result是个什么,要我改的意思吗,temp应该是计分板名字吧,可为什么最后出来是一个一直输出 ...
#result是假玩家名,用以存储比对结果的
具体情况你可以直接发你那边的存档。
晴路卡 发表于 2022-4-21 12:00
#result是假玩家名,用以存储比对结果的
具体情况你可以直接发你那边的存档。 ...
我自己调试了一下,可以用了,但execute store success score #result temp这段不太懂啥意思,后面懂
晴路卡 发表于 2022-4-21 12:00
#result是假玩家名,用以存储比对结果的
具体情况你可以直接发你那边的存档。 ...
还有一个就是custom:test temp中的temp显示的是targetpath,我不太懂,是计分板的名字吗,为什么存储一个实体名的数据需要计分板的名字,或者是其他意思
迪s尼在逃律师函 发表于 2022-4-21 12:27
还有一个就是custom:test temp中的temp显示的是targetpath,我不太懂,是计分板的名字吗,为什么存储一个 ...
store success子命令可以讲后**令的执行结果(成功/失败)存储下来(可以存到分数或是NBT里)。
custom:test是自定义的一个storage,可以在storage下存储NBT数据(你输data get storage custom:test就能看到这个storage底下的信息了),这里的temp并非记分板而是nbt路径。
晴路卡 发表于 2022-4-21 13:35
store success子命令可以讲后**令的执行结果(成功/失败)存储下来(可以存到分数或是NBT里)。
custom: ...
整段指令用到计分板了吗,wiki说 store success score是把输出的结果或成功的次数记录到计分板里
score #result temp的意思应该是记录在temp计分板上玩家名的分数,可是我创建了temp计分板一直无变化
score #result temp应该被理解成什么意思
store子命令只是一个附加项用于记录输出结果,不是一个条件吗,也就是说后面的run是百分百运行的?
晴路卡 发表于 2022-4-21 13:35
store success子命令可以讲后**令的执行结果(成功/失败)存储下来(可以存到分数或是NBT里)。
custom: ...
我突然发现带#名字的积分版不会显示,我理解了
晴路卡 发表于 2022-4-21 13:35
store success子命令可以讲后**令的执行结果(成功/失败)存储下来(可以存到分数或是NBT里)。
custom: ...
execute store success score #result temp run data modify storage custom:test temp set from entity @e[tag=entity.1,limit=1] CustomName
所以这条指令的意思是用#result的计分板记录“用比对实体的实体名替换掉被比对实体的实体名”的输出成功次数
运行一次就是1,然后execute unless score #result temp matches 1 run say 名称一致
这句的意思是如果#result的temp记分项≠1运行成功,因为不等于1也就是两者名字一样,无法替换,上条指令运行失败,计分板没有数值,但如果这样的话需要重置计分板才有效吧,不然计分板除了第一次不是永远都处于1吗
命令执行成功输出1 执行失败输出0
不是说执行失败就不会改记分板分数的
不是说执行失败就不会改记分板分数的
晴路卡 发表于 2022-4-21 13:35
store success子命令可以讲后**令的执行结果(成功/失败)存储下来(可以存到分数或是NBT里)。
custom: ...
好了,没事了,我去掉#测试了一下,如果运行失败还会自动清零,智能到不像mojang的东西,离谱