快捷导航
查看: 265|回复: 1

[技巧] 【js在MV/MZ中的华丽操作】读写外置文件

[复制链接]
会员等级

积分信息
金币:725
元宝:20
活跃:187
发电:0

荣誉勋章
热心会员优秀版主首批会员最佳新人

TA的形象
UID: 6 发表于 2022-12-21 00:08:39 | 显示全部楼层 |阅读模式
因为MV和MZ是基于javascript来制作工程的,而javascript的核心是node.js,因此node.js的内置函数同样适用于MV和MZ。

使用事件脚本如下,即可在Save文件夹生成一个“文件名字”的txt,并且里面的内容为"写进去的内容"。
[JavaScript] 纯文本查看 复制代码
StorageManager.fsWriteFile(StorageManager.fileDirectoryPath()+'文件名字.txt','写进去的内容');




其中StorageManager.fileDirectoryPath()是RM构造好的函数,直接索引到游目录。StorageManager.fsWriteFile()是Node构造的写入函数,想创造后缀名是啥的文件都行。

进阶一下,引入变量也是可行的。代码比较长,但很好认。
[JavaScript] 纯文本查看 复制代码
StorageManager.fsWriteFile(StorageManager.fileDirectoryPath()+ $gameVariables.value(10)+'.txt',$gameVariables.value(10)+'finish');


再说另一部分,判定。var fs = require("fs");fs.existsSync();这一部分是node.js的内置函数。以下是判断“变量10.txt”是否存在。
[JavaScript] 纯文本查看 复制代码
var fs = require("fs");fs.existsSync(StorageManager.fileDirectoryPath()+ $gameVariables.value(10) + '.txt');

把这串代码整个放入到事件中的分歧条件中的脚本判断,或者动手能力强,直接写if(  ){   },都是可行的。

《缝合尖塔》的种子码就是通过这种方式判断的。游戏结算时会生成种子码相应的文件,待玩家使用该存档的种子码通关并领取奖励后,再次读取该存档时,即使再次通关也无法领取奖励,这样可以防止在通关前存档,然后反复读档刷继承了。


捕获67.JPG 2.JPG 1.JPG

帖子的最近访客

回复 论坛版权

使用道具 举报

会员等级

积分信息
金币:1237
元宝:0
活跃:173
发电:3

荣誉勋章
活跃会员优秀版主首批会员最佳新人

TA的形象
UID: 2 发表于 2022-12-21 07:40:26 | 显示全部楼层
厉害这是高端操作啊
回复

使用道具 举报

ahome_bigavatar:guest
ahome_bigavatar:welcomelogin
您需要登录后才可以回帖 登录 | 加入民族

本版积分规则

论坛用工具

蓝凑云 hello图床 聚合图床 TinyPNG remove 代码测试 颜色代码 颜色代码2

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

实用工具

AI人工智能图片放大 图片无损放大 Deepl翻译器 百宝箱 孟坤工具箱 在线压缩图片 图片切圆角

您一共访问了本站 加载中...

Archiver|小黑屋|RPG民族

GMT+8, 2024-10-23 06:28 , Processed in 0.242431 second(s), 62 queries .

快速回复 返回顶部 返回列表