多模块关联
下一页为 单次执行模块
在模块中,为了达成一个目的,可以使用多个语句的单模块来完成。
但是如果模块的输入有一系列输出,那么需要创建多个模块完成。
因此在单模块中输入输出关系:
输入→输出
多模块相当于多个单模块,所以输出输入关系:
输入 →输出
(输入) →输出
→输出
可以看到多模块更加灵活不必局限于一个模块的体系。本章就要学习包括创建调用多模块,和控制多模块的操作类型。
多模块最本质的区别:可被调用
多模块关联包括
建立模块
调用模块
初始执行模块
单次执行模块
- setblock法
- 时钟法
- 调用效果指令
调用游戏资源
- 坐标操作
- 自动寻路
远程法调用逻辑组
关闭模块
全索引链接
§8.4 单次执行模块
下一页为 setblock法
在模块中,只需要某一段指令仅仅执行一次,而不是跟着高频一起无限循环。
做到单次执行,一共有两种方法:
?8.4.1 setblock法
[groupid=546]Command Block Logic[/groupid] §8.4 单次执行模块
下一页为 setblock法
在模块中,只需要某一段指令仅仅执行一次,而不是跟着高频一起无限循环。
做到单次执行,一共有两种方法:
?8.4.1 setblock法
下一页为 时钟法前面其实讲到过。setblock法分两种:一种是单次fill,第二种是远程连接。
上面的指令方块:
复制代码
下面的指令方块:
复制代码
在两个指令方块中间坐标处放置红石块即可执行一次。
(比如图中的say 1)
接收信号的指令方块:
复制代码
远程setblock的坐标就是这个指令方块上面的坐标。
其中此处采用红石布线,所以使用红石顺序。
以上两种方式收到坐标局限,因此对于灵活性较强的非固定模块不推荐使用。
?8.4.2 时钟法
通过时钟,能够让一段指令在符合条件后只会执行一次:
比如玩家的a>=1后输出一次say 1,
我们可以借助计分板b来干涉此次执行,构成时钟:
按照顺序连接高频:
复制代码
*转存时钟
复制代码复制代码
*输出时钟并破坏计分板b
复制代码
*清空a
效果:
那么尽管连接高频,也只会执行一次。
分析:
首先利用条件语句切入时钟,
接着利用时钟输出,并利用时钟破坏计分板b,让不再输出,
最后破坏条件,让第二次循环不再输出。
比起前面的setblock法,可以适用于灵活性比较高的不局限于坐标的模块,仅利用计分板达到输出一次。
标准格式:
复制代码
*转存计分板
复制代码
*时钟
清除条件1
*清空
- 单次fill
上面的指令方块:
- /fill ~ ~-1 ~ ~1 ~-1 ~ air
下面的指令方块:
- /fill ~ ~1 ~ ~1 ~1 ~ redstone_block
在两个指令方块中间坐标处放置红石块即可执行一次。
(比如图中的say 1)
- 远程连接
接收信号的指令方块:
- /setblock ~ ~1 ~ air
远程setblock的坐标就是这个指令方块上面的坐标。
其中此处采用红石布线,所以使用红石顺序。
以上两种方式收到坐标局限,因此对于灵活性较强的非固定模块不推荐使用。
?8.4.2 时钟法
通过时钟,能够让一段指令在符合条件后只会执行一次:
比如玩家的a>=1后输出一次say 1,
我们可以借助计分板b来干涉此次执行,构成时钟:
按照顺序连接高频:
- /execute @p[score_a_min=1] ~ ~ ~ scoreboard players set @p b 1
*转存时钟
- /execute @p[score_b_min=1] ~ ~ ~ say 1
- /execute @p[score_b_min=1] ~ ~ ~ scoreboard players reset @p b
*输出时钟并破坏计分板b
- /execute @p[score_a_min=1] ~ ~ ~ scoreboard players reset @p a
*清空a
效果:
那么尽管连接高频,也只会执行一次。
分析:
首先利用条件语句切入时钟,
接着利用时钟输出,并利用时钟破坏计分板b,让不再输出,
最后破坏条件,让第二次循环不再输出。
比起前面的setblock法,可以适用于灵活性比较高的不局限于坐标的模块,仅利用计分板达到输出一次。
标准格式:
- 条件语句1 /scoreboard players set @p 计分板 1
*转存计分板
- /execute @p[score_计分板_min=1] ~ ~ ~ 输出
- /execute @p[score_计分板_min=1] ~ ~ ~ scoreboard players reset @p 计分板
*时钟
清除条件1
*清空