饥荒MOD开发入门指南

饥荒MOD开发入门指南

第四章:模组接口

1、 第四章:修改版API接口

2、 API,即应用程序编程接口,英文全称为Application Programming Interface。它是一组程序对外提供的函数,允许我们通过调用这些函数来操控或读取程序内容。在制作饥荒游戏模组或修改代码时,本质上就是利用游戏所提供的API接口,对主程序进行功能扩展与调整,实现自定义效果。

3、 在饥荒的模组系统中,安装的模组文件实际运行于沙盒环境中,由模组系统提供隔离调用机制,确保游戏主体安全稳定。

4、 提供了一些函数和表供我们调用。

5、 例如,IO表和OS表在饥荒主程序的Lua部分存储于_G表中,而mods文件夹中的模组则会对其加以调用或修改。

6、 代码文件在相对独立的环境中运行。

7、 将各mod置于独立沙盒中运行,可确保彼此隔离互不干扰。

8、 mods系统内置丰富功能,其中mod加载函数位于mods.lua文件中,便于模块调用与管理。

9、 在mods.lua、modindex.lua和modutil.lua这三个文件中,modapi即为env表所包含的内容,env主要由多个函数和键值构成。

10、 这是mod的运行环境,关键在于蓝色那行代码:GLOBAL=_G。

11、 env中还包含大量函数。

12、 若逐一讲解这些函数,耗时甚久,难以尽述,此处仅选取关键部分进行说明。

13、 让斧头能点燃物品,这种模组估计谁都能做出来。

14、 你们是如何操作的?

15、 打开axe.lua文件,在适当位置添加代码:inst:AddComponent(lighter)。

16、 随后将文件打包,一个完整的mod便制作完成。

17、 然而,若当前存在一个Amod与一个Bmod

18、 Amod使斧头具备点燃物品的功能,如同打火机一般。

19、 Bmod使斧头具备燃烧燃料功能。

20、 若这两个模组采用上述方式制作,同时安装后会产生怎样的效果或冲突?

21、 斧子不可能既是火源又是燃料,二者只能选其一。

22、 游戏启动时,主程序会读取一个名为PREFABFILES的配置表,用于加载基础内容。每个MOD也包含一个功能类似的PrefabFiles表。系统首先载入主程序中的PREFABFILES数据,随后依次加载各个MOD中的PrefabFiles内容。若某个MOD的PrefabFiles中包含与主程序同名的条目,该MOD的文件将覆盖主程序中的原始文件。当多个MOD的PrefabFiles中存在相同条目时,后被加载的MOD中的文件将最终生效,覆盖先前加载的同名内容。因此,MOD的加载顺序直接影响资源替换的结果,决定了哪些内容会被保留或替代,从而影响游戏的实际表现。这一机制决定了MOD之间发生冲突时的优先级规则。

23、 这样说应该够清楚了。

24、 先:

25、 加载模组时

26、 当两个模组包含相同名称的文件(尤其是PrefabFiles)时,通常只有一个会生效,其余的将被忽略。

27、 在使用mod时,因共用相同文件可能引发冲突,轻则导致功能异常,重则造成游戏无法正常运行。

28、 系统崩溃错误

29、 若与上述A、B模组调用相同文件,则此类模组制作方式不可行。

30、 非必要勿直接修改文件,以免造成不可逆的影响。

31、 能否让axe具备点燃物品的功能,如打火机般燃烧,且不改动文件内容?

32、 当然有用,不然我写这章干什么。

33、 可通过调用mods系统API实现相关功能。

34、 在预制物体中嵌入一个功能函数。

35、 如:

36、 无论多少个mod同时修改axe文件,都能确保正常使用。

37、 类似函数还包括:

https://soft.zol.com.cn/1082/10826014.html

soft.zol.com.cn

true

中关村在线

https://soft.zol.com.cn/1082/10826014.html

report

2602

第四章:模组接口

1、 第四章:修改版API接口

2、 API,即应用程序编程接口,英文全称为Application Programming Interface。它是一组程序对外提供的函数,允许我们通过调用这些函数来操控或读取程序内容。在制作饥荒游戏模组或修改代码时,本质上就是利用游戏所提供的A...

相关推荐