Minecraft(我的世界)中文论坛

标题: [CBL∫2b]指令方块进阶教程——模块 §3 : 关于枚举与多个条件输出 [打印本页]

作者: ⭐✔️    时间: 2015-7-6 14:05
标题: [CBL∫2b]指令方块进阶教程——模块 §3 : 关于枚举与多个条件输出
本帖最后由 贰逼 于 2015-7-24 21:27 编辑

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


条件语句将会涉及到
execute
testfor

关于枚举多个条件输出

或|| 与 且&&
!非的表达
条件嵌套

全索引链接
上一篇(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格范围内,所以只有两条指令会输出。


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

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



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

附加部分
练习:



[groupid=546]Command Block Logic[/groupid]
作者: RainbowCity    时间: 2015-7-6 14:35
脚本方块和指令方块有什么不同?   必究脚本方块功能强大!




欢迎光临 Minecraft(我的世界)中文论坛 (https://www.mcbbs.net/) Powered by Discuz! X3.5