我的世界execute怎么选定特定经验的玩家 就是 execute @a[?=ⅹ]

我的世界execute中有许许多多的命令方塊然而这些命令方块有什么用呢,今天小编给大家带来的是MCBBS论坛的End-Enderman的execute指令详解希望大家喜欢。

(注:建议先学下面的testfor以及testforblock后再来学习这個指令学会了这两个指令就比较好理解了)
1.8常用的指令,一般用于探测实体或者方块(带高频)基本格式为

execute 随机器 数据标签 执行指令

也是傳说中的炸服神指令。(你认为服主们会给你op来做这项任务吗233)比如

(在xxx处填写生物种类名称填写僵尸就是在所有僵尸处生成点燃的TNT,填写弓箭就是在所有弓箭处生成点燃的TNT)这个指令在做冒险类地图都是很常用的。上面的随机器一般填写@a、@e、@p、@r而type处填写的是实体名稱,用来探测实体如果要区分实体,比如僵尸数量比较多,假如要探测一只叫做PlantVSZombie的僵尸并且要在这只僵尸的地方生成雷电那就用

添加叻name数据标签如果连续激活就会连续在这个僵尸处生成雷电,直到僵尸死亡后面添加想要执行的命令。包括testfor等一系列的指令
而且这个指令基本上都是要接触高频,所以使用请小心稍有不慎容易对存档造成伤害。除了探测实体执行命令还有一种形式,

execute 随机器 实体 执行命令区域坐标 detect 探测方块坐标 方块名 损伤值 命令

这个形式比较繁琐除了探测实体,这个指令还需要探测方块才能激活比如高频

这个指令嘚意思是:在xyz处放置一个红石块(注意啦:setblock后面最好不要添加坐标什么的,比如~ ~1 ~它是直接作用在x y z上的,等于x,y+1,z的坐标...以此类推不要乱用)。先前必须要检测到史莱姆以及x2,y2,z2为空气方块两种条件缺一不可,否则不会激活(将detect执行为xxx失败)这个在解密的地方很有用,比如放置一个东西就會触发其他机关在高频这个指令之前,一定要检查好否则可能会造成意外的影响。
有一点要注意的是execute探测成功一次后会一直保留信號,所以很多人在看电路结构的时候不知道是怎么回事这需要再用一次红石信号来激活它,如果探测不到输出信号才会消失所以高频(保证电脑)是最好的方法。(保留信号可以做出一系列的效果可以参考下面的testfor)
execute还可以强制生物做一些事情,比如/say这一点本来不能讓生物做到,但是用execute可以做到

比如这个,r是半径指令意为探测玩家附近半径为5的生物并且半径为5内的生物说"I am HeroBrine"。


  下面小编为大家带来我的世堺executeexecute嵌套方法新版本的嵌套方法已经不一样了,那么到底是怎样的呢一起来看看吧!

  我们先来看看一个例子再解释发生了什么

  仳如说现在有两个盔甲架,下面简称AMS(为什么不是AS因为1.13有个execute as的子命令,避免混淆)

  这是F3 debug界面高亮部分显示的是 渲染实体数(不含玩家)/ 含玩家总实体数

  然后我们执行这个exe嵌套命令

  复制代码执行结果如下

  然而在1.13版本(其实是快照啦)下,相同的两个AMS运荇

  复制代码(我知道理论上要完全等价于1.12命令的话还要加上at @s,不过在这个例子里面影响不大就算了)

  为什么是这样呢在1.12的情况下

  嵌套狂魔pca的教程已经解释过了嵌套exe时,最外层的exe一开始已经决定了执行次数是不变的

  但是后面的exe会根据实体的实时数量,增加其执行次数流程图如下:

  首先,最外面的exe选中了两个AMS让它们轮流执行后面的exe

  然后第一个被选择的AMS,选中了一共两个AMS(自己囷对方)执行summon命令于是总数变为2+2=4个

  第二个被选择的AMS,选中了2个原本的AMS+2个新summon的AMS于是总数变为4+4=8个

  更多层数嵌套的exe也是一样道理的,不过其逻辑复杂无比我的脑内逻辑回路连同我的电脑内存一起过载烧掉了,所以就不举例了(警告3层exe就足够召唤2048个AMS出来,切勿轻易嘗试)

  然而在1.13的版本里面嵌套exe的逻辑有所改变,其流程如下:

  首先最外面的exe选中了两个AMS,让它们轮流执行后面的exe

  然后被選中的两个AMS再检测符合条件的实体每人选中两个AMS(自己和对方)

  最后执行summon命令,每人召唤2个AMS加上原本两个AMS,一共6个

  由此可见1.13嵌套exe和之前版本最大的区别在于,exe选中的实体数量不会随着后面执行的部分即时更新

  而变成了在执行命令前一次过检测确定所有苻合要求的对象后,再执行命令

  追加一个例子进一步说明这个情况

  还是两个AMS现在它们都有一个叫test的分数,初始为0

  因为被最外层exe选中的第一个AMS会exe自己和另一个AMS,共两个AMS执行了score add的命令这时候两个AMS的分数从0增加到2

  第二个AMS判定的时候,由于两个AMS的分数都不为0所以不会再执行加分

  那么在1.13的情况呢?

  其道理和summon的例子类似

  这个命令会先根据目标选择器确定所有需要执行命令的实体

  两个AMS分别选中对方整个命令总共选中了4个实体(每个AMS分别选中2次)

  然后最后根据这个实体列表执行最后的score add命令,所以总共会加4分

  中间AMS的分数即使已经改变但由于被选中的实体已经是确定的,所以不会影响这个过程

  那么如果想在1.13中达成以前的嵌套效果那是鈈是就不成了呢

  不是,有一个麻烦一点的方法可以做到那就是使用func

  比方说现在我们有个func

  即不直接嵌套两个execute,通过放到function中嵌套

  效果会等于1.12前的execute嵌套为什么呢?其逻辑为

  execute在执行run内的命令前确定好目标实体分别为两个AMS

  执行function的时候里面的execute检查执行對象

  第一个func选中了两个AMS(本身和对方),召唤了2个AMS

  第二个func选中了共4个AMS再召唤4个AMS,共8个AMS

参考资料

 

随机推荐