关键词:JsonUtil.deserialize(),VFS.readFile(),ModLoader.getModPath(),JsonUtil.serialize()
我们可以让逃离塔科夫单机版服务端读取自己创建的.json文件到内存,并在需要的时候调用它。需要用到三个方法:JsonUtil.deserialize()、VFS.readFile()和ModLoader.getModPath()。JsonUtil和VFS两个模块都在utils中,ModLoader模块在loaders中,可以分别打开对应的.js文件查看它们提供的所有方法。我们在Author-Framework文件夹内创建一个配置文件config.json,内容如下:
![图片[1]|逃离塔科夫单机版修改教程(三):修改压、退弹时间MOD配置](/uploads/2021/11/0-39-1024x576.png)
有了配置文件,下一个目标是读取它。想让逃离塔科夫单机版服务端读取这个文件,首先我们应该告诉服务端这个文件的位置,或者说路径。利用ModLoader.getModPath()方法,我们可以获取Author-Framework这个MOD的路径,如下:
const modPath = ModLoader.getModPath(`Author-Framework`);
![图片[2]|逃离塔科夫单机版修改教程(三):修改压、退弹时间MOD配置](/uploads/2021/11/0-40-1024x576.png)
这里我们创建了一个字符串常量modPath,利用Logger.info()方法查看它的值:
![图片[3]|逃离塔科夫单机版修改教程(三):修改压、退弹时间MOD配置](/uploads/2021/11/0-41-1024x576.png)
保存文件并运行逃离塔科夫单机版服务端,得到结果:
![图片[4]|逃离塔科夫单机版修改教程(三):修改压、退弹时间MOD配置](/uploads/2021/11/0-42.png)
前面我们所创建的配置文件config.json也位于Author-Framework这个MOD的文件夹内,那么当需要读取它时,我们可以在framework.js中这样写:
const config = JsonUtil.deserialize(VFS.readFile(`${modPath}config.json`));
![图片[5]|逃离塔科夫单机版修改教程(三):修改压、退弹时间MOD配置](/uploads/2021/11/0-43-1024x576.png)
这里我们创建了一个常量对象config,我们同样使用Logger.info()方法查看它的值:
Logger.info(JsonUtil.serialize(config, true));
![图片[6]|逃离塔科夫单机版修改教程(三):修改压、退弹时间MOD配置](/uploads/2021/11/0-44-1024x576.png)
保存文件并运行逃离塔科夫单机版服务端,得到结果:
![图片[7]|逃离塔科夫单机版修改教程(三):修改压、退弹时间MOD配置](/uploads/2021/11/0-45.png)
可以看到,逃离塔科夫单机版服务端已经成功读取并输出了config.json的内容。
读取了config.json之后,下一步的目标是调用它。在JavaScript中要访问对象中的某个属性十分简单:对象名.属性名。因此,如果我们要在服务端输出config这个对象中BaseLoadTime这个属性的值,直接在framework.js中添加代码:
Logger.info(config.BaseLoadTime);
![图片[8]|逃离塔科夫单机版修改教程(三):修改压、退弹时间MOD配置](/uploads/2021/11/0-46-1024x576.png)
保存文件并运行服务端,得到结果:
![图片[9]|逃离塔科夫单机版修改教程(三):修改压、退弹时间MOD配置](/uploads/2021/11/0-47.png)
可以看到成功输出了BaseLoadTime属性的值,0.17。这样,我们只需要:
DatabaseServer.tables.globals.config.BaseLoadTime = config.BaseLoadTime;
DatabaseServer.tables.globals.config.BaseUnloadTime = config.BaseUnloadTime;
![图片[10]|逃离塔科夫单机版修改教程(三):修改压、退弹时间MOD配置](/uploads/2021/11/0-48-1024x576.png)
即可让逃离塔科夫单机版压、退弹时间由配置文件来控制。改变配置文件中的压弹和退弹时间,进入游戏测试后发现生效。至此,带有配置文件的修改压、退弹时间的MOD便制作完成。
另注:本章结束后,应当把上述代码注释掉或删除掉,以免影响后续开发过程。
原文链接:https://sns.oddba.cn/16676.html
暂无评论内容