单模块关联
下一页为 执行值与循环
本章着重复习前面的内容,加深多个模块语句的概念和关联的概念。
所谓单模块是指多个模块语句组成的,
和多模块不同,单模块内语句着重过程,模块本身强调对象。
单模块关联将会涉及到
执行值与条件语句
执行值与循环
执行值与时钟
全索引链接
§7.2 执行值与循环
循环关联其他语句是指其他语句在循环外,而非循环的循环体。
所以在本节内,是使用获取执行的值来构成循环,而非循环内获取执行值。
在上一章讲到了能够使用执行值来检测实体的数量,
在此,我们可以进一步规定选择器的范围,来检测玩家数量n,
并输出n个say 1:
按照顺序执行:
复制代码
*获取玩家数量执行值
复制代码
*循环
效果:
没有输出,这是因为输出条件中玩家大于两个
将其改成/execute @e[name=f,score_a_min=1] ~ ~ ~ say 1
不断输出,这是因为循环关联的stats不断更新,因此for循环1次被无限循环嵌套,最终得到无限循环。
分析:
正如上面所说的,在循环模块中需要注意单次执行和多次执行的区别,(以后讲解单次执行的方法)
否则循环和决定循环的条件值都多次执行,循环就会被嵌套,如上得到了无限循环。
接着掺杂了一点时钟,因为循环条件修改条件,所以此处考虑先循环还是先执行循环体(这里明显需要先执行循环体)
不纠结单次执行和多次执行的问题,就目前关联语句来看,执行值与循环也的确有兼容性,只是要注意执行的问题。
[groupid=546]Command Block Logic[/groupid] §7.2 执行值与循环
循环关联其他语句是指其他语句在循环外,而非循环的循环体。
所以在本节内,是使用获取执行的值来构成循环,而非循环内获取执行值。
在上一章讲到了能够使用执行值来检测实体的数量,
在此,我们可以进一步规定选择器的范围,来检测玩家数量n,
并输出n个say 1:
按照顺序执行:
- /scoreboard players set @e[name=f] a 0
- /stats entity @e[name=f] set AffectedEntities @e[name=f] a
- /execute @e[name=f] ~ ~ ~ testfor @a
*获取玩家数量执行值
- /execute @e[name=f,score_a_min=2] ~ ~ ~ say 1
- /scoreboard players remove @e[name=f,score_a_min=1] a 1
*循环
效果:
没有输出,这是因为输出条件中玩家大于两个
将其改成/execute @e[name=f,score_a_min=1] ~ ~ ~ say 1
不断输出,这是因为循环关联的stats不断更新,因此for循环1次被无限循环嵌套,最终得到无限循环。
分析:
正如上面所说的,在循环模块中需要注意单次执行和多次执行的区别,(以后讲解单次执行的方法)
否则循环和决定循环的条件值都多次执行,循环就会被嵌套,如上得到了无限循环。
接着掺杂了一点时钟,因为循环条件修改条件,所以此处考虑先循环还是先执行循环体(这里明显需要先执行循环体)
不纠结单次执行和多次执行的问题,就目前关联语句来看,执行值与循环也的确有兼容性,只是要注意执行的问题。
附加部分
练习:
- 将执行值与条件语句中的例子任意修改,保留SuccessCount,并关联循环。