MineCraft程序设计 | 函数包教程
MineCraft函数包(Minecraft Function Package,MFP),是一种能使用指令扩展游戏玩法的包。其核心在于在指定时间释放指定指令,从而达到自制Mod的效果。在调查中,MFP生存播放量普遍在原版的10倍左右。
但MFP的难点在于制作,需要一个文件系统架构。不过不要紧,我们现在有更好的工具与办法。
点赞以进入教程(滑稽)
STEP 1.选择工具
刚才说了,从零开始制作一个函数包是非常麻烦的事。那么自然我们就需要用到一款工具。
目前市面上这种工具几乎没有,但万幸,我通过特殊的渠道找到了一款至今还在运营并且相当强大的工具 -- Minecraft Function Package Developer。虽然是英文的名字,但界面完全是汉语的。
工具长这个样子(被我鼠标选中的那一个):
STEP 2.使用工具
安装好之后,双击打开工具,你将会看到这样一个界面:
没错这个软件是需要登录激活使用的(我摊牌了,这是我开发的),可以使用2元钱或者等值的简书贝购买(也就是34枚简书贝)。当然,如果你实在没钱我也可以免费给你开通的呀(因为我也有这样的经历)。
在账号获得权限后,点击登录按钮,即可自由使用。
请注意:一卡通不同于账户,他可以激活我们在2021年的所有产品(目前来看有JVIT--简书辅助程序、Living Account--个人管理程序 还有Minecraft Function Package Developer--MC函数包工具),我不是无良厂家,所以不会建议你买一卡通,因为实在有点贵。
STEP 3.创建工程
在登录软件后,你会看到这样的一个界面:因为我们是第一次使用,所以需要创建一个工程。
点击工程<>新建,你会看到这样一个界面:
工程路径建议选择一个空文件夹,然后填入你的工程名字,就会自动生成对应的.mfproj工程文件。
.mfproj文件是你的工程文件,打开工程时只要打开它就可以载入整个工程。对于技术用户来说,他同样是一个xml文件,如果工程损坏,可以提供一定的修复功能。
以下是一个填写样例:
填写完毕后,点击创建,软件会知道创建工程文件、工程信息、函数索引、MC索引文件以及整个文件系统架构。创建完成后,会弹出一个提示框。这时恭喜你,你的工程创建成功了。
STEP 4.进行你的编写
在主窗口选择 工程<>打开,打开你的工程文件,软件便会自动加载整个工程。这时候你会看到完整的工程架构与函数库: 在操作区中,输入你希望的名字,点击"创建函数"即可创建.mcfunction函数文件,同时也会自动同步到函数库中:双击函数库中的函数名,即可进入编辑函数界面。这是一个完整的MC函数编辑器,包括行号显示、代码提示与补全、关键字高亮等等功能,但仍存在一些bug,这些bug我们会在日后修复。对于注册的用户,您可以随时升级到我们的最新更新享受功能:
待您确认函数编辑完成之后,请点击"保存Func"按钮,这是程序会自动获取你的工作路径并将函数保存在那里,保存完成之后,编辑窗口自动关闭。当你需要编辑其他函数会继续编辑这个函数的时候,可以随时打开它。
STEP 5.打包、发布与使用
在主窗口,选择打包<>打包,程序将自动把你的工程进行打包处理(这个算法差点没写死我),然后你就可以获得一份装有你制作的函数包的压缩包。
当然,如果你想把自己的包有偿或无偿分享给他人使用,也欢迎你通过功能菜单进入我们的论坛(需要单独注册论坛账号,免费的)进行分享。
使用时直接讲behavior_pack解压到存档目录中就可以使用了。
祝您使用愉快。
STEP 6.了解预处理指令
本程序并不是简单的进行文件保存与模型制作,而是有一套完整的语法检查与编译系统。
以下是内置的预处理指令,当有软件更新时会同时更新文章。
CMDEF指令
语法:
#CMDEF $[cmdname]
本指令用于规避一个关键词检测,比如指令gametest
不常用,故不存在于指令字典中。
当你编译打包时,如出现这样的错误:
FD002:错误的"gametest"出现在"xxx.mcfunction"中
这时,我们就需要声明一个gametest
指令规避检测。
在文件头部添加:
#CMDEF $gametest
这时使用gametest指令就不会报错了。
CONTAIN指令
语法:
#CONTAIN $[package_name]
用于引入一个语法包。
这是以后的事情,具体更新之后再详细介绍。
IMPORTS指令
语法:
#IMPORTS $[this.package_name] $[outpack_name] POST
用于标记一个外来函数。
在外来函数中,不强制使用函数文档。
例如在我们的叫summon_pack项目中有一个叫做sm_et的外来函数,只需要在你的文件头部添加:
#IMPORTS $[summon_pack] $[sm_et] POST
就可以不写针对该函数的文档。
NOTEXT指令
语法:
#NOTEXT
将该指令标记在Main.mcfunction的头部,就可以避免写函数文档(不推荐)。
这些预处理指令在编译后会成为MC的函数注释,也就是所谓的无害化处理。
附录I
关于函数文档
请在制作时写一份详细的说明文档,这样会方便调用函数。我们后期也会做一个函数文档生成器方便使用。
关于调用
确认安装成功后,使用 function 函数名 命令可以直接调用已经写好的函数。
关于.mcfunction文件
.mcfunction文件不同于普通命令。你的每一个函数都可以包含多条命令。编译器会将其自上到下执行。
关于压缩算法
使用zip/gzip压缩算法
关于文件架构
使用通用MineCraft Function Package File System(MFS)系统。
附录II
我们是一个小团队,目前一共就两个人。感谢大家对我们的信任。这一定会成为我们发展星空上最耀眼的星辰。
CopyRight 2018-2021 MethodBox 保留所有权利. 转载请联系作者