多模块关联
下一页为 调用游戏资源
在模块中,为了达成一个目的,可以使用多个语句的单模块来完成。
但是如果模块的输入有一系列输出,那么需要创建多个模块完成。
因此在单模块中输入输出关系:
输入→输出
多模块相当于多个单模块,所以输出输入关系:
输入 →输出
(输入) →输出
→输出
可以看到多模块更加灵活不必局限于一个模块的体系。本章就要学习包括创建调用多模块,和控制多模块的操作类型。
多模块关联包括
建立模块
调用模块
初始执行模块
单次执行模块
- setblock法
- 时钟法
- 调用效果指令
调用游戏资源
- 坐标操作
- 自动寻路
远程法调用逻辑组
关闭模块
全索引链接
§8.5 调用游戏资源
下一页为 坐标操作
在模块执行的过程中,一定会遇到指令无法简单操作达到效果的方法。
但是游戏内置的资源可以被指令调用,做到指令无法简便做到的事情。
指令调用的通常是生物的ai或者是游戏的特性,
通过模块加以操作达到目的。
8.5.1 坐标操作
下一页为 tp与实体介入
坐标操作指对输出的坐标操作。
对坐标操作的指令包含了:
tp - 传送实体到指定点
spreaplayer - 传送实体到一个范围
也有几个NBT:
Motion - 抛物线运动向量
Rotation - 方向轴值
direction - 直线运动向量
8.5.1.1 tp与实体介入
下一页为 spreadplayers
格式:
复制代码
*将实体传送到坐标
复制代码
*将实体1传送到实体2
所以可以使用实体介入来进行含坐标相对的操作。
具体参见:
for嵌套中的这个指令:
复制代码
就是实体介入,可以理解为记录点,通过execute进行坐标赋值。
8.5.1.2 spreadplayers
下一页为 区块加载器
格式:
复制代码
比如
复制代码
将玩家传送至最小10,最大11的范围内,不考虑队伍。
注意:这个区域是个方形。
联动贴:
http://www.mcbbs.net/thread-336851-1-1.html
spreadplayers和tp同为传送,
但是spreadplayers传送后依旧会加载实体,这一因为其区块加载的特性。
可以利用spreadplayers,在需要加载的区块:
复制代码
如果需要一直加载一个非玩家实体,可以利用相对性:
复制代码
需要注意前提有“中介加载的实体”
?8.5.1.2 Motion Rotation Direction
下一页为 自动寻路
复制代码
其中三个项目都是double类型,
所以表达可以为:
复制代码表示向xyz都是每刻1格速度,受重力阻力影响。(应用所有实体)
复制代码其中两个项目都是float类型,
所以可以表达为:
复制代码表示向x轴旋转90°,y轴旋转90°。(y的偏轴角只应用矿车,x偏轴角应用所有实体)
复制代码三个项目都是double类型,
表达为:
复制代码表示向xyz向量1的直线运动,不受重力阻力影响。(应用部分抛射实体,例如恶魂的火球)
三个究竟有什么用?主要可以让运动更加平滑
联动贴:
Motion抛物线计算器(包含算法)
8.5.2 自动寻路
利用原版的生物ai实现自动寻路
8.5.2.1 僵尸寻路
僵尸是一个寻路AI的体现,实现方法很简单:
坐标中介 - 僵尸
目标 - 村民
需要注意两者需要隐身且僵尸尾随距离必须足够大。
最后只需要将寻路的实体不断tp到僵尸即可。
?8.5.2.2 生物仇恨
僵尸不会飞,也没有其他生物特性。
不过可以利用生物仇恨:
http://www.mcbbs.net/thread-427720-1-1.html(药水仇恨)
http://www.mcbbs.net/thread-475275-1-1.html(雪球仇恨)
那么:
寻路中介 - 仇恨生物
目标 - 被仇恨生物
也是需要注意两者需要隐身且僵尸尾随距离必须足够大。
最后只需要将寻路的实体不断tp到僵尸即可。
下一页为 坐标操作
在模块执行的过程中,一定会遇到指令无法简单操作达到效果的方法。
但是游戏内置的资源可以被指令调用,做到指令无法简便做到的事情。
指令调用的通常是生物的ai或者是游戏的特性,
通过模块加以操作达到目的。
8.5.1 坐标操作
下一页为 tp与实体介入
坐标操作指对输出的坐标操作。
对坐标操作的指令包含了:
tp - 传送实体到指定点
spreaplayer - 传送实体到一个范围
也有几个NBT:
Motion - 抛物线运动向量
Rotation - 方向轴值
direction - 直线运动向量
8.5.1.1 tp与实体介入
下一页为 spreadplayers
- tp
格式:
- /tp 实体选择器 坐标
*将实体传送到坐标
- /tp 实体选择器1 实体选择器2
*将实体1传送到实体2
- 实体介入
所以可以使用实体介入来进行含坐标相对的操作。
具体参见:
for嵌套中的这个指令:
- /execute 实体1 ~ ~ ~ /tp 实体2 ~ ~1 ~
就是实体介入,可以理解为记录点,通过execute进行坐标赋值。
8.5.1.2 spreadplayers
下一页为 区块加载器
格式:
- /spreadplayers 目的地xz坐标 最小距离 最大距离 是否开启队伍 实体选择器
比如
- /spreadplayers ~ ~ 10 11 false @p
将玩家传送至最小10,最大11的范围内,不考虑队伍。
注意:这个区域是个方形。
联动贴:
http://www.mcbbs.net/thread-336851-1-1.html
- 区块加载器
spreadplayers和tp同为传送,
但是spreadplayers传送后依旧会加载实体,这一因为其区块加载的特性。
可以利用spreadplayers,在需要加载的区块:
- /spreadplayers ~ ~ 2 3 中介加载的实体
如果需要一直加载一个非玩家实体,可以利用相对性:
- /execute 目标实体 ~ ~ ~ /spreadplayers ~ ~ 2 3 中介加载的实体
需要注意前提有“中介加载的实体”
?8.5.1.2 Motion Rotation Direction
下一页为 自动寻路
- Motion
- Motion:[向x速度,向y速度,向z速度]
其中三个项目都是double类型,
所以表达可以为:
- Motion:[1d,1d,1d]
- Rotation
- Rotation:[偏x轴角,偏y轴角]
所以可以表达为:
- Rotation:[90f,90f]
- Direciton
- direciton:[x向量,y向量,z向量]
表达为:
- <span style="line-height: 1.5;">direciton:</span>[1d,1d,1d]
三个究竟有什么用?主要可以让运动更加平滑
联动贴:
Motion抛物线计算器(包含算法)
8.5.2 自动寻路
利用原版的生物ai实现自动寻路
8.5.2.1 僵尸寻路
僵尸是一个寻路AI的体现,实现方法很简单:
坐标中介 - 僵尸
目标 - 村民
需要注意两者需要隐身且僵尸尾随距离必须足够大。
最后只需要将寻路的实体不断tp到僵尸即可。
?8.5.2.2 生物仇恨
僵尸不会飞,也没有其他生物特性。
不过可以利用生物仇恨:
http://www.mcbbs.net/thread-427720-1-1.html(药水仇恨)
http://www.mcbbs.net/thread-475275-1-1.html(雪球仇恨)
那么:
寻路中介 - 仇恨生物
目标 - 被仇恨生物
也是需要注意两者需要隐身且僵尸尾随距离必须足够大。
最后只需要将寻路的实体不断tp到僵尸即可。
[groupid=546]Command Block Logic[/groupid]