赞 | 1 |
VIP | 0 |
好人卡 | 0 |
积分 | 13 |
经验 | 0 |
最后登录 | 2024-2-21 |
在线时间 | 99 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 1327
- 在线时间
- 99 小时
- 注册时间
- 2006-8-17
- 帖子
- 6
|
我的解决方案是这样:
首先还是使用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分钟自动保存一次容易产生死档,而且在战斗过程中执行存档我不知道会发生什么……可能还要判断当前是否在战斗中,如果在就不存之类的,比较麻烦 |
|