加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 RaidenInfinity 于 2020-3-29 18:09 编辑
身为RM-er,最怕的事情就是数据文件损毁而损失非常多的进度。
RPGMaker XP, VX, VA 编辑器都有一个让人诟病的"BUG",就是会自爆。
如果编辑器程序崩溃或因为电脑死机而异常关闭,使用中的数据文件会因为写入一大堆异常数值而永久损毁。
解决方法?当然只有从备份中恢复。如果没有备份呢?GG思密达。节哀顺变。
当然备份的方法有很多种。同步网盘,拷进U盘,直接复制到硬盘的某个地方之类的。
同步网盘好是好,但是据说你们百毒实在毒得不行,没钱买SVIP连下载速度都被砍成渣渣,外面MEGA盘谷歌盘还都被墙了。
手动备份呢?嘛,如果你三天前备份了一次,那么你文件损毁了你就拿出三天前的档出来咯。三天的进度就这样没了咯。
好那么,现在我们遇到的问题就是RM编辑器会在异常退出时“销毁”数据文件。
因此,这里附上一个能自动备份数据文件的脚本。“简易数据文件备份脚本"。
运作原理嘛,就是在游戏测试运行的时候,将Data文件夹里面的所有文件复制到Data_Backup文件夹里面。
复制不是直接复制,而是先检查是否可以读取,否则坏档盖过好档可就惨了呢。
#简易数据文件备份脚本 by RaidenInfinity PERFORM_BACKUP = true #将此常量更改为: true - 开启备份,false - 关闭备份 #以下的代码,除非你知道你在做啥,否则别碰。 module AutoBackup def self.perform_backup if Dir.glob("Data_Backup").empty? #如果检测到Data_Backup文件夹不存在 Dir.mkdir("Data_Backup") #创建Data_Backup文件夹 end Dir.foreach("Data/") do |item| #遍历所有Data文件夹内的文件 next if item == "." || item == ".." #如果不是文件就跳过 File.open("Data/" + item,"rb") do |file| begin m = Marshal.load(file) File.open("Data_Backup/" + item,"wb") do |sfile| Marshal.dump(m,sfile) end rescue p (item + "读取失败!请从备份中恢复!") #显示讯息(VA需开控制台才能看到) end end end end end AutoBackup.perform_backup if PERFORM_BACKUP && ($DEBUG || $TEST) #如果开启备份而且是测试运行模式中,就执行备份
#简易数据文件备份脚本 by RaidenInfinity
PERFORM_BACKUP = true #将此常量更改为: true - 开启备份,false - 关闭备份
#以下的代码,除非你知道你在做啥,否则别碰。
module AutoBackup
def self.perform_backup
if Dir.glob("Data_Backup").empty? #如果检测到Data_Backup文件夹不存在
Dir.mkdir("Data_Backup") #创建Data_Backup文件夹
end
Dir.foreach("Data/") do |item| #遍历所有Data文件夹内的文件
next if item == "." || item == ".." #如果不是文件就跳过
File.open("Data/" + item,"rb") do |file|
begin
m = Marshal.load(file)
File.open("Data_Backup/" + item,"wb") do |sfile|
Marshal.dump(m,sfile)
end
rescue
p (item + "读取失败!请从备份中恢复!") #显示讯息(VA需开控制台才能看到)
end
end
end
end
end
AutoBackup.perform_backup if PERFORM_BACKUP && ($DEBUG || $TEST) #如果开启备份而且是测试运行模式中,就执行备份
请参考我签名档内的插件脚本安装教程。XP,VX,VA都差不多的。
安装了此脚本之后,只要测试运行游戏就能启动备份。
如果有很多个地图导致每次备份都需要很长的一段时间,请按照脚本内的指示,设置关闭或开启备份。
发布游戏时,可以移除这个脚本,毕竟这脚本只对制作过程起到帮助。
注意:如果第一次执行备份跳出读取失败(文件没问题),而且Data_Backup文件夹并未创建,请手动创建该文件夹再继续。
还有就是,这只能避免因为编辑器异常退出而销毁数据文件造成的进度损失。
网盘或U盘上的备份还是得做的,以防电脑或硬盘出事又没备份结果工程毁于一旦。 |