古树旋律 发表于 2022-12-22 10:20:02

【js在MV/MZ中的华丽操作】关于data文件中的json文件

关于json文件,聊点在制作游戏中有意义的干货。

在之前的一篇帖子里,【python在制作游戏中的华丽操作】写入txt文件 提到过json文件。

因为MV、MZ的编程语言是javascript,这个语言被广泛应用在网页开发中。我们在游戏中使用的插件,后缀名是js,里面就记载了程序要如何如何允许、如何计算、如何反馈。

JSON 是用于存储和传输数据的格式。JSON 通常用于服务端向网页传递数据 。
如果翻开data文件夹,就会发现文件是json,打开之后是密密麻麻的代码,而这些json代码,就是游戏工程中的数据库。RM引擎将这些数据读取之后,以可视化的形式展现在操作者面前,这也就是制作者不需要去构建底层代码的原因,因为引擎已经搭建好了。

这里插一句,为什么一个编程初学者想制作一个软件很难,因为初学者刚学会a=a+1这类的计算方式,但软件后台调用的数据库是零,所以做不出复杂的读写和存储操作。RM很贴心,帮我们生成了json文件。


比如上面的这个skill.json文件,RM卖家毕竟是要展示自己商品亮点的,所以自家制作的代码也很规范,各个变量的命名可读性都很强(变量随意命名是新手常见的错误,比如aaaa代表攻击力,bbbb代表防御力……可读性非常差,debug的时候就知道头疼了,我现在看N年前自己做的《灭世之罪》,里面自己写的代码直接是依托答辩)

{"id":37,"animationId":68,"damage":{"critical":true,"elementId":2,"formula":"30 + a.atk* 2","type":1,"variance":20},"description":"给敌方全体造成火属性伤害。","effects":[],"hitType":0,"iconIndex":64,"message1":"%1施放了%2!","message2":"","mpCost":0,"name":"火焰吐息","note":"","occasion":1,"repeats":1,"requiredWtypeId1":0,"requiredWtypeId2":0,"scope":2,"speed":0,"stypeId":2,"successRate":100,"tpCost":10,"tpGain":0,"messageType":1},

我们把其中一段摘下来看看,代码很长但很好读,和数据库是一一对应的。其他数据库同理,不展示了。

要注意哈,如果要修改的技能在json的中间部分,该行的最后要有一个“逗号”,如果是在json的最后一行,则不能有逗号。

其他要注意的基本问题,就是标点符号要是英文的呀,括号{ }[ ]要对应呀,单引号双引号要规范呀,这些基本素养就不赘述了。

大家最感兴趣的问题:知道了这个,能干什么?
答:在制作大批量、重复性高的数据时,效率极高。

例题:玩家通过数字输入处理,输入了1-999任何一个数后,获得相应的经验获取率提升。
普通选手:在数据库中做1000个状态,然后对每一个 特性->特殊能力值->经验值,重复改1000次。
插件选手:网上发帖,搜贴,知道YEP插件可行……然后又加装YEP插件(MZ还不免费,免费的是代码加密,自己无法个性DIY)
JS选手:这个操作,复制粘贴+调试,10-20分钟

js代码比ruby代码的就业应用更广阔,多学知识不吃亏,抛砖引玉,一起学习。

古树旋律 发表于 2022-12-22 10:26:33

还能用这个方法移植旧工程。JSON 是 JS 对象的字符串表示法。它使用文本表示一个 JS 对象的信息,(JSON)本质是一个字符串。
各位操作的时候,记得把源文件备份。

三姐 发表于 2022-12-22 10:56:36

666
直呼不懂!
页: [1]
查看完整版本: 【js在MV/MZ中的华丽操作】关于data文件中的json文件