Project1
标题:
请教各位大佬,如何给自动存档设置一个单独的保存栏?
[打印本页]
作者:
edchgl
时间:
2022-4-3 13:55
标题:
请教各位大佬,如何给自动存档设置一个单独的保存栏?
用了YEP的存档核心和自动保存。
发现自动保存首先要有手动存档才能运行,其次会自动保存到上一个存档的位置里。
想问一下该如何办到在保存文件单独设立一个自动保存的栏目,所有自动保存都是直接覆盖到这个栏里,并且不需要先手动存档呢?
请各位大佬答疑谢谢了!
作者:
银河
时间:
2022-4-7 09:17
我的解决方案是这样:
首先还是使用YEP的核心存档插件,略微修改代码,让第一个存档位的名称改为“自动存档”
具体修改了哪些地方记不得了,但是这个地方我确定一定修改了:
YEP_SaveCore.js:
Window_SavefileList.prototype.drawItem = function(index) {
var id = index + 1;
var valid = DataManager.isThisGameFile(id);
var rect = this.itemRect(index);
this.resetTextColor();
//if (this._mode === 'load') this.changePaintOpacity(valid);
this.changePaintOpacity(valid);
var icon = valid ? Yanfly.Param.SaveIconSaved : Yanfly.Param.SaveIconEmpty;
this.drawIcon(icon, rect.x + 2, rect.y + 2);
var draw_item_id = id == 1 ? '自动保存' : id - 1
this.drawFileId(draw_item_id, rect.x + Window_Base._iconWidth + 4, rect.y);
};
然后设定一个“自动保存”的公共事件,执行:SaveCommand save 1
然后每次自动保存就调用这个公共事件
因为名字写了“自动保存”,一般来说玩家不会主动覆盖自动保存的那个档位,而会另外存到其他档位(这个就靠玩家自觉了……)
也就是说,我没有用YEP自带的自动保存功能,而是伪自动保存,实际上是我强制存储到存档1,只不过这个存档1的名字叫“自动存档”,存档2的名字叫存档1……玩了个小trick
这个做法有点类似于《仙剑奇侠传二》的自动保存
如果还是担心玩家不小心覆盖自动存档的话,可以考虑进一步魔改代码,在玩家手动存档的时候压根不显示“自动存档”的栏位也可以。不过我觉得必要性不大
===============================
另外这个自动保存因为只能手动调用的关系,所以每隔X分钟自动保存一次的话,需要在公共事件那里开一个“并行执行”的计数器,每间隔X分钟就执行一次强制存储
但是这种我建议跟自动存档1就分开(比如变成自动存档2),因为每X分钟自动保存一次容易产生死档,而且在战斗过程中执行存档我不知道会发生什么……可能还要判断当前是否在战斗中,如果在就不存之类的,比较麻烦
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1