多模块关联
下一页为 调用模块
在模块中,为了达成一个目的,可以使用多个语句的单模块来完成。
但是如果模块的输入有一系列输出,那么需要创建多个模块完成。
因此在单模块中输入输出关系:
输入→输出
多模块相当于多个单模块,所以输出输入关系:
输入 →输出
(输入) →输出
→输出
可以看到多模块更加灵活不必局限于一个模块的体系。本章就要学习包括创建调用多模块,和控制多模块的操作类型。
多模块最本质的区别:可被调用
多模块关联包括
建立模块
调用模块
初始执行模块
单次执行模块
- setblock法
- 时钟法
- 调用效果指令
调用游戏资源
- 坐标操作
- 自动寻路
远程法调用逻辑组
关闭模块
全索引链接
§8.2 调用模块
我们已经知道了模块分主次,且主模块需要调用次模块,那么究竟是如何调用的。
在这里,可能会想到fill开启高频。
但是fill高频后关闭十分麻烦,且对于模块的高频也不能完全用相对坐标来衡量。
而计分板是个全局储存的很好方式。
结合计分板,可以利用条件语句调用模块。
用一个简单的例子来展示调用模块:
丢出数量为1的物品输出say 1;丢出附加值为2的物品输出say 2;
按照顺序执行:
复制代码
*模块1(主模块)
复制代码
*模块2(次模块)
复制代码
*模块3(次模块)
效果:
丢出数量为1的海晶灯,输出say 1;
丢出附加值为1,数量为1的橙色羊毛,输出say 2。
分析:
可以看到模块1通过scoreboard给符合NBT的物品计分板上分,分别为1、2;
而且模块1中的输出调用是一个或的关系。
模块2和3通过条件语句,被模块1计分板中的分数调用,从而产生分别输出。
其中 附加值为1,数量为1 不输出say 1是因为调用模块3在模块2后面,因此一旦都符合条件,模块3高级,构成一个时钟。
总结来说,模块可以通过主模块添加计分板分数,次模块条件语句检测计分板分数实现主模块调用次模块。
我们已经知道了模块分主次,且主模块需要调用次模块,那么究竟是如何调用的。
在这里,可能会想到fill开启高频。
但是fill高频后关闭十分麻烦,且对于模块的高频也不能完全用相对坐标来衡量。
而计分板是个全局储存的很好方式。
结合计分板,可以利用条件语句调用模块。
用一个简单的例子来展示调用模块:
丢出数量为1的物品输出say 1;丢出附加值为2的物品输出say 2;
按照顺序执行:
- /scoreboard players set @e[type=Item] a 1 {Item:{Count:1b}}
- /scoreboard players set @e[type=Item] a 2 {Item:{Damage:1s}}
*模块1(主模块)
- /execute @e[type=Item,score_a_min=1,score_a=1] ~ ~ ~ /say 1
*模块2(次模块)
- /execute @e[type=Item,score_a_min=2,score_a=2] ~ ~ ~ /say 2
*模块3(次模块)
效果:
丢出数量为1的海晶灯,输出say 1;
丢出附加值为1,数量为1的橙色羊毛,输出say 2。
分析:
可以看到模块1通过scoreboard给符合NBT的物品计分板上分,分别为1、2;
而且模块1中的输出调用是一个或的关系。
模块2和3通过条件语句,被模块1计分板中的分数调用,从而产生分别输出。
其中 附加值为1,数量为1 不输出say 1是因为调用模块3在模块2后面,因此一旦都符合条件,模块3高级,构成一个时钟。
总结来说,模块可以通过主模块添加计分板分数,次模块条件语句检测计分板分数实现主模块调用次模块。
附加部分
练习:
- 主模块1检测玩家手中有没有持剑,若有则调用内容为不断tellraw持剑玩家任意内容的次模块。
[groupid=546]Command Block Logic[/groupid]