条件语句
下一页为 条件嵌套概念
条件语句是模块中的一个重要指令
它用于判断事件是否成立,
若成立则输出;
若不成立则跳过。
条件语句将会涉及到
execute
- 条件与变量
- 相对性
testfor
关于枚举多个条件输出
或|| 与 且&&
- 或||
- 且&&
- 或且结合
!非的表达
- !非 单个变量
- !非 多个执行体
条件嵌套
- 条件嵌套相对性
- 条件嵌套与变量
- 子条件detect
全索引链接
§3.5 条件嵌套
下一页为 条件潜逃与相对性 3.5.0 基本概念
条件嵌套表示多重条件的从属关系。
他的作用与且相同;
基本逻辑格式:
条件1:
条件2:
条件3:
┊
条件n→输出
指令基本格式:
/execute 选择器 相对坐标 /execute 选择器 相对坐标 /execute 选择器 相对坐标 …… 输出
*代表着多个条件同时存在↑
*简化↓
/execute 条件1 /execute 条件2 …… 输出
这正是利用execute指令末尾的command可以为任何指令,
所以原本的输出也可以替换成条件。
因此可以理解条件嵌套就是且关系的嵌套,
但是有后续的不同。
3.5.1 相对性
条件嵌套表示多重条件的从属关系。
他的作用与且相同;
基本逻辑格式:
条件1:
条件2:
条件3:
┊
条件n→输出
指令基本格式:
/execute 选择器 相对坐标 /execute 选择器 相对坐标 /execute 选择器 相对坐标 …… 输出
*代表着多个条件同时存在↑
*简化↓
/execute 条件1 /execute 条件2 …… 输出
这正是利用execute指令末尾的command可以为任何指令,
所以原本的输出也可以替换成条件。
因此可以理解条件嵌套就是且关系的嵌套,
但是有后续的不同。
3.5.1 相对性
下一页为 条件潜逃与变量条件嵌套最大的不同就是相对性。
例如两个实体,f g间距1格;
对比以下指令:
复制代码复制代码复制代码
分别有以下输出:
第一条指令相对g输出了,
是因为
1.g为最后的相对执行体;
2.相对f半径大于1,检测到了g。
第二条指令没输出
是因为
1.相对f半径等于1,不足以检测g。
第三条指令相对f输出了
是因为
1.f为最后相对执行体;
2.相对g半径大于1,检测到了f。
由上可得出标准结论:
在条件嵌套中,execute的相对执行是
对于最后的执行体执行的;
而且在条件嵌套中更应当注重相对坐标。
标准格式:
/execute 条件1 相对坐标 execute 条件2 相对坐标 …… execute 条件n 相对坐标
那么执行体为条件n,而不是条件1。
3.5.1 变量
例如两个实体,f g间距1格;
对比以下指令:
- /execute @e[name=f] ~ ~ ~ /execute @e[name=g,r=2] ~ ~ ~ say 1
- /execute @e[name=g] ~ ~ ~ /execute @e[name=f,r=1] ~ ~ ~ say 1
- /execute @e[name=g] ~ ~ ~ /execute @e[name=f,r=2] ~ ~ ~ say 1
分别有以下输出:
第一条指令相对g输出了,
是因为
1.g为最后的相对执行体;
2.相对f半径大于1,检测到了g。
第二条指令没输出
是因为
1.相对f半径等于1,不足以检测g。
第三条指令相对f输出了
是因为
1.f为最后相对执行体;
2.相对g半径大于1,检测到了f。
由上可得出标准结论:
在条件嵌套中,execute的相对执行是
对于最后的执行体执行的;
而且在条件嵌套中更应当注重相对坐标。
标准格式:
/execute 条件1 相对坐标 execute 条件2 相对坐标 …… execute 条件n 相对坐标
那么执行体为条件n,而不是条件1。
3.5.1 变量
下一页为 子条件detect
我们可以进一步举例:
使用指令:
复制代码得到了如下效果:
如果f的a=1,g的a=2,
不符合条件,没输出
只有都为1,才能输出
这和且有着类似关系。
将条件前后调换:
复制代码
对比两个输出,发现相对执行体不一样,这和之前的相对性有着共同特点,
是相对于最后的执行体执行的。
3.5.1 detect
- 与且相同
我们可以进一步举例:
使用指令:
- /execute @e[name=f,score_a=1] ~ ~ ~ execute @e[name=g,score_a=1] ~ ~ ~ say 1
如果f的a=1,g的a=2,
不符合条件,没输出
只有都为1,才能输出
这和且有着类似关系。
- 与且不同
将条件前后调换:
- /execute @e[name=g,score_a=1] ~ ~ ~ execute @e[name=f,score_a=1] ~ ~ ~ say 1
对比两个输出,发现相对执行体不一样,这和之前的相对性有着共同特点,
是相对于最后的执行体执行的。
3.5.1 detect
execute表示对于实体的条件
而execute还有一个子条件:
detect
他是对于方块的条件。
所谓子条件, 是因为它之前必须有execute。
它在且中出现过。
↑输出与不输出
这是基本用法:
复制代码表示相对f探测脚下(y-1)的方块。
detect基本格式就是:
复制代码值得注意的是,detect只能探测相对实体y-1及以下的方块,
可以理解为只能探测脚下及以下的方块。
子条件同样可以连用条件嵌套,
和execute相差无几。
比起基本格式中的输出,发现detect输出也有条件嵌套相对特点。
而相对的实体是最后出现的execute。
detect依然能连用execute↑,表示的关系也是且。
这方便了制作者检测方块(testforblock需要执行值,以后会讲到)
与相对性中的输出相同,但表达的意思不同;
相对性中的是相对g来检测方块,相对g输出;
而这里是相对f检测方块,也是相对g输出。
[groupid=546]Command Block Logic[/groupid] 而execute还有一个子条件:
detect
他是对于方块的条件。
所谓子条件, 是因为它之前必须有execute。
它在且中出现过。
- 具体用法
↑输出与不输出
这是基本用法:
- /execute @e[name=f] ~ ~ ~ detect ~ ~-1 ~ wool 0
detect基本格式就是:
- /execute 选择器 相对坐标 detect 相对坐标 方块名 数据值
可以理解为只能探测脚下及以下的方块。
- 条件嵌套相对性
子条件同样可以连用条件嵌套,
和execute相差无几。
比起基本格式中的输出,发现detect输出也有条件嵌套相对特点。
而相对的实体是最后出现的execute。
- 连用与且
detect依然能连用execute↑,表示的关系也是且。
这方便了制作者检测方块(testforblock需要执行值,以后会讲到)
与相对性中的输出相同,但表达的意思不同;
相对性中的是相对g来检测方块,相对g输出;
而这里是相对f检测方块,也是相对g输出。