天才一秒记住【第一中文网】地址:www.dyzww.cc
(注:非常不推荐在手机上阅读此章节,请使用平板或电脑阅读此章)
(本章用到了大量的字符画,有可能会出现严重的错位情况,可手动调整字体和大小至最佳状态)
(此章节已于2022年7月17日重写)
在第六十九章,我为了提醒你注意各个子命令的顺序,专门举了个例子:
\/execute as @e at @e run tp @s ~~1 ~
但是你是否有注意到游戏运行这条指令的过程:
1将玩家传送至玩家上方1米的位置(玩家此时抬高了1米)
2将玩家传送至村民上方1米的位置(玩家此时位于村民上方1米)
3将玩家传送至羊上方1米的位置(玩家此时位于羊上方1米)
4将村民传送至玩家上方1米的位置(村民此时位于玩家原本位置上方1米,玩家此时位于羊上方1米)
5将村民传送至村民上方1米的位置(村民此时位于村民原本位置上方1米,玩家此时位于羊上方1米)
6将村民传送至羊上方1米的位置(村民和玩家此时位于羊上方1米)
7将羊传送至玩家上方1米的位置(村民和玩家此时位于羊原本位置上方1米,羊位于玩家原本位置上方1米)
8将羊传送至村民上方1米的位置(村民和玩家此时位于羊原本位置上方1米,羊位于村民原本位置上方1米)
9将羊传送至羊上方1米的位置(村民、玩家和羊此时都位于羊原本位置上方1米)
这个过程有何特殊的呢?
你仔细看看第4、5、7、8和9条过程,你有没有什么发现?
当游戏将村民传送至玩家上方1米的位置时,虽然玩家已经被传送至了羊上方1米的位置,但游戏仍然将村民传送至玩家原本位置上方1米,而不是羊上方2米的位置。
这是怎么回事?
我们设玩家(2,2,2)为A、村民(3,2,3)为b、羊(4,2,4)为c,游戏在运行execute时,其实它的流程是这样的:
execute---A---------b---------c
游戏先解析as @e,得到了上面的三个目标。
execute---A---------b---------c
------------↓---------↓----------↓
---------2·2·2-----2·2·2-----2·2·2
------------↓---------↓----------↓
---------3·2·3-----3·2·3-----3·2·3
------------↓---------↓----------↓
---------4·2·4-----4·2·4-----4·2·4
然后游戏会解析at @e,预先将实体的位置记录下来。上面为了方便展示,用x·y·z来表示坐标。
execute---A------------------------b-----------------------c
------------↓-------------------|----↓------------------|-----↓
---------2·2·2—3·2·3—4·2·4-|-2·2·2—3·2·3—4·2·4-|-2·2·2—3·2·3—4·2·4
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!