Minecraft(我的世界)中文论坛
标题: [CBL∫2b]指令方块进阶教程——模块 §5 : 时钟 [打印本页]
作者: ⭐✔️ 时间: 2015-7-17 22:03
标题: [CBL∫2b]指令方块进阶教程——模块 §5 : 时钟
本帖最后由 贰逼 于 2015-7-24 22:30 编辑
循环语句与条件语句结合
下一页为 时钟概念
本章将前两章内容进行结合,
便是循环体中使用条件语句;
和条件语句中使用循环。
循环语句结合条件语句将会涉及到循环中条件语句
时钟
结束循环
跳过循环
循环嵌套
全索引链接
§5.2 时钟
下一页为 建立时钟
5.2.0 概念
5.2.0.1 基本概念
在上一篇中涉及到了时钟。
时钟究竟是什么,
其实是循环的一类,
它可以当作一个时钟:

时钟指:在循环体中含有时序输出的关联指令的循环。
时序就是循环体中指令(时钟称节点)必须拥有明确的先后关系。
指针:循环顺序,指向的指令得到信号;
次数:指针旋转次数;
节点:关联的指令;
循环:驱动时钟循环的核心。
在之前的例子里,出现了时钟,影响着输出与判断。
(再次可以粗略的理解时钟为顺序)
5.2.0.2 意义
做到时钟前提是有循环体中关联,
其二是时序。
由于循环就像指针划过的弧,只能朝着一个顺序,又像时间经过了一去不复返,
所以循环中无法做到节点间的跳转,让时钟在一次循环内跳跃,
所以这规定了循环的不可逆性,对于某些相互关联影响条件和输出的指令,只能采用时序。
时钟的影响:
之前的例子里提到了:
先有b=1才有输出,若将其放到后面,
时钟先指向了输出的节点,没有指向b=1,因此没有输出。
5.2.1 建立
下一页为 始终和条件语句构建时钟首先要
关联,接着是
顺序。
以下面几条指令:
- /scoreboard players add @p[score_a=5] a 1
复制代码
*建立五次循环,使用/scoreboard players set @p a 0开启
- /scoreboard players set @p b 1
复制代码
*时钟节点1
- /scoreboard players set @p b 0
复制代码
*时钟节点2
- /say @e[score_a=5,score_b_min=1]
复制代码
*时钟输出
(1、2有关联)
若时钟节点2在1前面执行:
那么会有输出,因为时钟先得到b=0,最终为b=1,所以有。
若时钟节点1在2前面执行:
那么没有输出,因为时钟先得到b=1,最终为b=0。
可以将
时钟规定默认值。
同样是上面的时钟,将时钟节点1设为默认值。
只需要在节点2前面加上特殊条件条件:
- /execute @p[score_c_min=1] ~ ~ ~ scoreboard players set @p b 0
复制代码
(c>=1)
注意:默认值时钟
必须先指向默认值的节点,再指向特殊值。
输出:

全部还原默认,输出默认。
符合特殊,则输出特殊。
附加部分
练习:
5.2.1 时钟中的条件语句
为上一篇的引申,讲解如何具体利用时钟
使用以下指令:(无特殊规定此处是无限循环)
- /execute @e[name=f] ~ ~ ~ /execute @p[r=2] ~ ~ ~ scoreboard players set @p a 2
复制代码
*若玩家在f周围2格,设a为2。
- /execute @p[score_a_min=1] ~ ~ ~ say 1
复制代码
*a>=1输出
- /scoreboard players remove @p[score_a_min=1] a 1
复制代码
*a--
这里构成了时钟,前后关联,
保证a根据事件判定有无值。
效果:

站在两格以外无输出。
两格以内有输出(对比计分板,可以看到时钟对值的改变情况)
依次执行以下指令:
a:
- /execute @e[score_a_min=-1] ~ ~ ~ scoreboard players set @p b 1
复制代码
b:
- /execute @e[score_a_min=1] ~ ~ ~ scoreboard players set @p b 2
复制代码
c:
- /execute @e[score_a_min=10] ~ ~ ~ scoreboard players set @p b 3
复制代码
那么关系是a<b<c,
也就是说若条件都符合,
优先选择c,其次b,最后a
效果:



利用时钟时序达到多条件同输出的
不同等级关系。
附加部分
练习:
[groupid=546]Command Block Logic[/groupid]
作者: 额无语 时间: 2015-7-17 22:52
学习了~~~~
作者: lzs1234 时间: 2015-7-24 22:24
/execute @e[score_a,score_a_min=10] ~ ~ ~ scoreboard players set @p b 3
选择器参数score_a后面为什么没有分数
欢迎光临 Minecraft(我的世界)中文论坛 (https://www.mcbbs.net/) |
Powered by Discuz! X3.5 |