本帖最后由 贰逼 于 2016-1-10 16:24 编辑

多模块关联
下一页为 调用模块
在模块中,为了达成一个目的,可以使用多个语句的单模块来完成
但是如果模块的输入有一系列输出,那么需要创建多个模块完成

因此在单模块中输入输出关系:
输入→输出

多模块相当于多个单模块,所以输出输入关系:
输入    →输出
(输入)  →输出
           →输出

可以看到多模块更加灵活不必局限于一个模块的体系。本章就要学习包括创建调用多模块,和控制多模块的操作类型

多模块最本质的区别:可被调用
多模块关联包括

建立模块

调用模块

初始执行模块

单次执行模块
  • setblock法
  • 时钟法
  • 调用效果指令

调用游戏资源
  • 坐标操作
  • 自动寻路

远程法调用逻辑组

关闭模块

全索引链接
上一篇(建立模块)--下一篇(初始值模块)

§8.2 调用模块
我们已经知道了模块分主次,且主模块需要调用次模块,那么究竟是如何调用的。

在这里,可能会想到fill开启高频。
但是fill高频后关闭十分麻烦,且对于模块的高频也不能完全用相对坐标来衡量
计分板是个全局储存的很好方式

结合计分板,可以利用条件语句调用模块


用一个简单的例子来展示调用模块:
丢出数量为1的物品输出say 1;丢出附加值为2的物品输出say 2;


按照顺序执行:
  1. /scoreboard players set @e[type=Item] a 1 {Item:{Count:1b}}
  2. /scoreboard players set @e[type=Item] a 2 {Item:{Damage:1s}}
复制代码

*模块1(主模块)
  1. /execute @e[type=Item,score_a_min=1,score_a=1] ~ ~ ~ /say 1
复制代码

*模块2(次模块)
  1. /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]