设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1508|回复: 1
打印 上一主题 下一主题

[有事请教] 请教各位大佬,如何给自动存档设置一个单独的保存栏?

[复制链接]

Lv2.观梦者

梦石
0
星屑
447
在线时间
58 小时
注册时间
2021-10-20
帖子
40
跳转到指定楼层
1
发表于 2022-4-3 13:55:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
用了YEP的存档核心和自动保存。
发现自动保存首先要有手动存档才能运行,其次会自动保存到上一个存档的位置里。
想问一下该如何办到在保存文件单独设立一个自动保存的栏目,所有自动保存都是直接覆盖到这个栏里,并且不需要先手动存档呢?
请各位大佬答疑谢谢了!

Lv3.寻梦者

梦石
0
星屑
1327
在线时间
99 小时
注册时间
2006-8-17
帖子
6
2
发表于 2022-4-7 09:17:42 | 只看该作者
我的解决方案是这样:
首先还是使用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分钟自动保存一次容易产生死档,而且在战斗过程中执行存档我不知道会发生什么……可能还要判断当前是否在战斗中,如果在就不存之类的,比较麻烦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 07:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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