本帖最后由 贰逼 于 2015-7-24 21:27 编辑

条件语句
下一页为 枚举概念详解
条件语句是模块中的一个重要指令
它用于判断事件是否成立
若成立则输出;
若不成立则跳过。


条件语句将会涉及到
execute
  • 条件与变量
  • 相对性

testfor

关于枚举多个条件输出

或|| 与 且&&
  • 或||
  • 且&&
  • 或且结合

!非的表达
  • !非 单个变量
  • !非 多个执行体

条件嵌套
  • 条件嵌套相对性
  • 条件嵌套与变量
  • 子条件detect


全索引链接
上一篇(testfor)--下一篇(或|| 与 且&&)


§3.3 枚举与多个条件输出
下一页为 枚举详解
        3.3.1 基本概念
对于多个条件我们只能枚举条件,并对于这些枚举的条件分别输出

如果:条件1 → 输出:指令1
如果:条件2 → 输出:指令2

如果:条件n → 输出:指令n


如果写成指令就是:

/execute 条件1 相对坐标 指令1
/execute 条件2 相对坐标 指令2

/execute 条件n 相对坐标 指令n


        3.3.2 条件结合变量
使用execute中的预设。
使用以下指令:



/execute @e[name=f,score_a_min=1,score_a=1]
/execute @e[name=f,score_a_min=2,score_a=2]
/execute @e[name=f,score_a_min=3,score_a=3]
也就是说枚举:对于a的变量值分别为1,2,3的f执行







/scoreboard players set @e[name=f] a 1 将f的a变量值设成1,



那么检测f的a变量值为1的指令方块就有输出。
/execute @e[name=f,score_a_min=1,score_a=1]

其他同理:

/scoreboard players set @e[name=f] a 2
将f的a变量值设成2,
那么检测f的a变量值为2的指令方块就有输出。
/execute @e[name=f,score_a_min=2,score_a=2]


/scoreboard players set @e[name=f] a 3
将f的a变量值设成3,
那么检测f的a变量值为3的指令方块就有输出。
/execute @e[name=f,score_a_min=3,score_a=3]

综合以上例子,多个条件的变量进行枚举,可以得到个体分别的输出。

        3.3.3 条件结合相对性(多个输出)



按照以上指令:
/execute @e[name=f] ~ ~ ~ say @p[r=1]
/execute @e[name=f] ~ ~ ~ say @p[r=2]
/execute @e[name=f] ~ ~ ~ say @p[r=3]
相对于f分别说出在他周围1格,2格,3格的玩家名字。



绿色表示1格,蓝色表示2格,橙色表示3格。

  • 绿色


由于我在3格范围内,又在2格范围内,还在1格范围内,所以三条指令都会输出。
  • 蓝色


由于我在3格范围内,又在2格范围内,但在在1格范围内,所以只有两条指令会输出。
  • 橙色


我只在三格范围内,只有一次输出

综合相对性来看,枚举是依旧有效的。
其次就是,若条件枚举有重复,也是会多个符合条件的个体一起输出的。



总结来说,条件枚举不仅仅针对于单个条件,而是多个条件一起集合在一起分别执行的,
而且同样能够运用变量和相对性
若符合其中一个枚举,那么这个个体会输出;
若符合多个枚举,那么这些个体全部都有输出。

附加部分
练习:
  • 使用testfor模拟上面的输出(感受testfor和execute的区别);
  • 将上面的变量的例子和相对性的例子结合(熟练掌握条件变量+相对性)。




[groupid=546]Command Block Logic[/groupid]