我的世界1.12版函数命令系统教学详解 函数命令系统教程( 七 )


为什么不划出做成子模块(通常以ICB-脉冲型命令方块起头,后面跟一串CCB -连接型命令方块)调用呢?因为你在当前游戏刻调用了ICB子模块以后,它会等到下一个游戏刻才执行 。可不要小看这一个游戏刻的延迟,它往往可能让你的系统出现意外,进而产生各种蜜汁bug 。
而函数系统中,调用的子模块会立即插队执行,从而能够严格保证执行顺序,出错的可能性大大降低了 。
函数系统不能够直接支持Conditional模式,也就是条件激活,而CB是支持的 。关于这一点,以我个人的经验,影响是不大的,过去1.8没有
Conditional不也是这么过来了吗?
函数系统的主进程使用gamerule gameLoopFunction <命名空间:函数>来挂载,而CB系统的"主进程"使用 RCB 作为高频信号源 。
在过去的版本,通过glf挂载的主进程,其执行者是系统,也就是server 。这个设定会产生各种各样的安全隐患,于是在后来的版本中,MOJANG将其执行者改成了glf所挂载的函数(前面也讲到了) 。就目前而言,仅仅通过函数系统,就能够实现过去CB能够实现的功能,甚至还有一些是CB难以实现的功能 。在这里就不过多讲了,希望对大家有所启发,可以研发各种各样的黑科技出来~
这里插入讲一点,我想对于地图制作者来讲是绝对的福音 。
mcf系统直接支持样式代码§ 。
CB系统的颜色黑科技什么的在这个面前根本不值一提 。
资源占用方面,简单说一下我个人的经验 。
我们花了不到一天的时间把《喋血冰封II》升级到新的命令系统 。新系统在资源占用方面明显比之前庞大的CB系统少了很多,流畅度不降反升,这也得益于函数系统更加接近游戏底层 。CB系统在方块更新这一方面就输掉了一大截 。更何况它需要占地 。
试想一下,如果你的系统足够庞大,出生地可以加载的区域放多CB,你能够记得住吗?你在调试系统的时候,需要花多少时间去找到你要修改的指令呢?
此外,对于一些不放在出生点的模块,我们还需要考虑到区块加载的问题,相信这也是让许多人头疼的问题吧?
函数系统显然不需要担心这个,因为它所有的内容都保存在文件里,不具体地出现在游戏世界中,在资源占用方面相比与CB系统而言,是要占优的 。
我们知道,写一个功能可能只要一两天,debug可能要一周 。过去CB系统,不依靠编辑器的话,你得手动检查,如果要在中间插入什么指令的话,还得整体移动CB,实际工作效率是十分感人的;借助于编辑器,我们可以通过ooc导入的方式来实现快速修改
而函数系统呢?你需要改点什么,直接去翻文件改,改完了保存一下,再在游戏里通过/reload指令直接刷新,完事儿了 。游戏都不用退出重进 。
但凡地图制作者,知道了这些,都应该会心动的吧 。
讲了这么多,相信大家对新系统也有一定的了解了,说不定已经激动得说不出话来了吧,那么更多内容就请大家自行去体验一下吧 。在接下来的更新里,没准还会多出什么意想不到的东西呢!
【我的世界1.12版函数命令系统教学详解 函数命令系统教程】

推荐阅读