MinecraftAddon脚本引擎:从入门到入土【第一节】
本教程将会有MinecraftAddon附加包脚本引擎的基础教程
在观看本教程前,请确保满足以下条件:
●已熟练掌握Addon(除脚本引擎以外内容)
如果你已经会熟练使用Molang表达式、动画控制器、滤器、实体触发器、实体事件等内容的话,学习脚本引擎会更加简单轻松
●了解JavaScript基础语法
如若不会,不要指望在以后的教程中你能听懂
●有足够的时间来学习

由于各种各样的因素,本教程更新时间会不怎么稳定,还请谅解

什么是Add-on?
附加包(Add-on)是朝向Minecraft全版本自定义的坚实一步,它受Mojang官方支持。目前,还只有基岩版的平台支持附加包(包括Windows10、安卓、IOS等平台)
附加包允许玩家更改或新增游戏玩法内容,就比如自定义方块、物品、实体、粒子、群系、生成规则等等。附加包包括行为包与资源包两部分,只有其中一部分都不算是附加包。
脚本引擎
脚本引擎(Script Engine,以下简称为“SE”)使用的语言是JavaScript。
玩家可以编写Javascript脚本,与行为包捆绑在一起来监测游戏中的事件(event)、对游戏中的事件做出回应,获取、修改实体的组件的数据,以及影响Minecraft的其他方面。
对于带脚本引擎的Addon附加包可称为“SEMOD”,SEMOD相对于网易我的世界中国版的PYMOD,两者都只是Addon的增量而不是Addon的替代品
(一个题外话:由于SEMODAPI接口目前非常非常非常非常...的少导致还不如网易的PYMOD,也导致没有多少人制作)
需要注意的几点
1.Minecraft脚本引擎为官方内容
2019年4月17日 脚本引擎首次出现于MinecraftBE1.9.0.3beta
BE/PE开发者在受够了MODPE以及ICMOD等第三方MODAPI,也终于迎来了官方的MODAPI!
2.Minecraft脚本引擎仅支持WIndows10平台
官方目前只对Windows10平台开放了脚本引擎,其余平台均无法加载带脚本引擎的Addon。
安卓可以使用方块启动器来加载,但遗憾的是,方块启动器目前仅支持1.14而不支持1.16(如果作者哪天更新了记得叫我)
这是脚本引擎在出现约一年半多的时间后依然不怎么受欢迎的重要原因之一
接口少,门槛高,适用人群少
开发测试
在 games/com.mojang/behavior_packs 目录下存着所有行为包。但这并不是存放正在开发测试的行为包的地方,我们应该存放在development_behavior_packs文件夹内
与普通文件夹不同,development_behavior_packs内的行为包被装载到地图内时会直接使用development_behavior_packs文件夹内的行为包,而不是将行为包复制到地图的behavior_packs目录下。遇到bug是很正常的事,每次修复好bug后都需要进行手动更新地图内的行为包(自己重新复制一遍或者新建地图)十分麻烦。而这个因为是直接使用的而不是先自动复制一遍,所以每次进入地图时都会自动更新一次地图内装载的行为包。
且无需重进游戏,只要重进一下地图既会更新行为包。
开发工具
文本编辑器
推荐使用VSCode、N++等十分优秀的文本编辑器
基本构造

pack_icon.png为包的封面,推荐为正方形,分辨率最小16x 最大1024x
manifest.json为包的描述文件

需要注意一点,与普通行为包不同,type的值应该为"client_data"而不是"data"。表示这个包有脚本引擎内容,加载时一并加载一下script文件夹内的脚本文件。
scripts为存放脚本文件的文件夹
scripts-client为存放客户端脚本文件的文件夹
scripts-server为存放服务端脚本文件的文件夹
新建文件
可在client/server文件夹内或其子文件夹内新建脚本文件
后缀名为.js,文件名字不建议使用中文与中文字符,建议使用纯英文或英文+英文符号。
1.获取系统对象
接下来正式开始教程

系统对象(System object),以上既为一个客户端的示例
客户端为client,服务端则是server:
server.registerSystey(0, 0);
只要不是特殊情况 后面写0即可。
2.系统初始化
这是系统注册后立即调用的第一个方法。一旦脚本在世界开始加载,它就会运行。

你可以用来注册自定义组件和事件,注册事件检测器等。
此函数应用于初始化变量和设置事件检测器。此时,请不要尝试生成任何实体或与之交互!
3.系统更新
此方法在每个游戏刻(1/20S)时调用一次。服务器和客户端以每秒20次的速度运行。这是获取、检查和响应组件更改的好地方。

4.系统关闭
当脚本引擎关闭时,将调用此方法。

对客户端来说,这是该玩家离开这个世界的时候;对于服务端来说,这是在最后一个玩家离开这个世界的时候。
开始测试
制作完后可将包压缩后缀名改为.mcpack接着双击即可导入游戏测试

如果喜欢本系列教程请务必一键三连点个赞和收藏加关注