第一中文网

第七十四章 探究:execute的运行流程 (第5/6页)

天才一秒记住【第一中文网】地址:www.dyzww.cc

解上面为什么会由2个实体产生出2048个实体,别担心,我们继续以刚才两个盔甲架互相传送为例子,看看类似的指令在Java1.13以下的版本有何不同的效果。

还是设有盔甲架A和b,分别位于主世界的(40,60,29)和(42,60,29)。盔甲架A的比盔甲架b更靠近执行地点,已加载区块中没有其他盔甲架。在盔甲架A、b旁运行如下指令:

\/execute @e[type=armor_stand]~~~ teleport @e[type=armor_stand,r=3,rm=1]~~10 ~

游戏先解析『execute @e[type=armor_stand]~~~』得到如下结果:

execute---A----------b

------------↓

-------40·60·29

然后以A为执行者,解析『teleport @e[type=armor_stand,r=3,rm=1]~~10 ~』,得到了如下指令:

\/teleport 盔甲架b的UUId 40 70 29

运行上述指令,盔甲架b被传送至(40,70,29)处。随后游戏以b为执行者,先解析执行地点参数『~~~』,得到如下结果:

execute---A------------------b

------------↓------------------↓

-------40·60·29---------40·70·29

--将b传送至40·70·29

接下来,游戏以b为执行者,再次解析指令,得到如下内容:

选择器'@e[type=armor_stand,r=3,rm=1]'什么都没找到

没错,由于b被传送到了(40,70,29),因此目标选择器就选不到A,自然就无法执行指令。最终,正如我们在最开始以正常思维分析的那样,得到了如下结果:

A会先将b传送到自己上方10米的位置,b由于处于那个位置无法选取到A来传送,最终仅仅b会被传送到A的上方10米处。

虽然在Java1.13更新后,我们的『正常思维』没用了,但在Java1.13以下版本还是很准的。

那在基岩版呢?

作者在基岩版也测试过了(用的上面的两个盔甲架tp法),确认基岩版不管是旧版还是新版(1.19.10更新的)的execute,都是会得到和Java版1.13以下版本一模一样的数据。

其中,对于目前还在测试的新版execute,用的是如下指令:

execute as @e[type=armor_stand] at @s run tp @e[type=armor_stand,r=3,rm=1]~~10 ~

也就是说,如果你在基岩版运行上面套了3层execute的生成指令,在初始实体数为2的情况下,也会得到有2048个实体的纟

......

......

......

:(

你的电脑遇到问题,需要重新启动。

我们只收集某些错误信息,然后为你重新启动。

......

......

......

——附录:跟本章有关系的mcbbS帖子原链接

(上述帖子均已被mcbbS论坛系统

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

都市超品仙医 活在两个世界 大秦:这个太子总想着造反 与其说瞎话不如 穿越万界:神功自动满级 诛神乾坤 多子多福,仙女都被他抢了怎么办