天才一秒记住【第一中文网】地址:www.dyzww.cc
令收不到数据以外,其他的store子命令将会获取到最后一个条件子命令的数据。
但需要注意,虽然store子命令只能获取到最后一个条件子命令的数据,但是这不代表其他条件子命令没有作用。如果前面的条件子命令发现条件不符合的话,那么store就会无法获取到任何数据而不更改分数。
我们再来看看第二个例子。假设现在还是有2个掉落物,3头牛,1个玩家,请你猜一猜,运行第二个例子会发生什么?
答案是:item_count、cow_count和player_count的分数均会变为1
当一个带有run子命令的execute指令中含有多个store和条件子命令时,store子命令仅仅只会获取到run子命令运行的数据,并不会获取到其他条件子命令的数据。
你听懂了吗?
在本章的最后,我们来稍微了解一下store的这个storage子命令。
storage子命令(store)和predicate子命令(if|unless)都是在Java1.15版本中被添加的,并不是Java1.13一开始就有的。有趣的是,这两个东西都和数据包有较大关系。谓词我们已经知道了,那这个storage子命令又是什么呢?
正如我对这条子命令的描述一样,这条子命令可以将返回的值存储到硬盘上。更确切地说,是存储到指定的存储容器中(这是minecraft wiki的说法)。
硬盘?存储容器?都是什么鬼!
待会你就知道是什么鬼了。让我们先来看看这东西的格式:
... store <返回类型> storage <目标存储容器Id><Nbt路径><数据类型><倍率>...
举个简单的例子:
\/execute store result storage minecraft:distance to_the_nearest_village double 1.0 run locate structure #minecraft:village
这条指令适用于Java1.19及以上版本,效果是:将执行地点与最近村庄的距离以double双精度浮点数类型存储到名为『minecraft:distance』容器内的to_the_nearest_village标签。
如果你的存档是个全新的,那么你在运行上述指令后,首先游戏将会给你创建一个叫做『minecraft:distance』的存储容器,这个存储容器以Nbt树状结构存储数据,并放置于你的存档目录下的data文件夹内的mand_storage_minecraft.dat文件中,具体路径如下:
存档根目录\/data\/mand_storage_minecraft.dat.data.contents.distance
其中,前面的『存档根目录\/data\/mand_storage_minecraft.dat』是文件路径,后面的『data.contents.distance』是Nbt路径。
如果你看不懂也没关系,你只需要了解一件事情:计分板数据也是差不多这样子存储的——计分板存储在data文件夹下面的另外一个叫做scoreboard.dat的文件中。
然后,游戏会在这个叫做『minecraft:distance』的存储容器内部,在Nbt根目录创建一个to_the_nearest_village标签,并以double的形
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!