THE NVL Maker

 找回密码
 注册
搜索
查看: 935|回复: 4

[系统修改] 如何在游戏中删除游戏存档

[复制链接]

3

主题

6

帖子

0

精华

游戏开发者

积分
6
发表于 2023-9-7 14:32:38 | 显示全部楼层 |阅读模式
抱歉不知道该分到哪个类……

我想设置一个选项,玩家选择后游戏数据会回复到初始状态,具体来说:
1.重置所有变量
2.清除所有存档
3.已经解锁的CG可以重置也可以不重置

目前的问题是不会清除存档,看KAG文档说用erasebookmark,于是试了一下,发现清除不彻底,仍然会显示截图、最近对话和新档标记,并且在读档界面可以点击,然后整个就游戏卡死了

求解决方法,或者有没有什么更好的方案(把CG啥的都一起重置了也没关系)

版本:THE_NVL_Maker_ver3.87_sim

回复

使用道具 举报

16

主题

990

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1011
发表于 2023-9-12 18:53:07 来自手机 | 显示全部楼层
倒是有一个clearvar之类的指令可以删除变量,但删除玩家电脑里的截图权限太高了……建议是给玩家打开一下存档路径让玩家手动删除……
回复

使用道具 举报

3

主题

6

帖子

0

精华

游戏开发者

积分
6
 楼主| 发表于 2023-9-17 23:03:35 | 显示全部楼层
谢谢D大解答,我研究了一会儿,现在已经基本上解决这个问题了,分享下思路:

就是不删除文件,而是增加一个数组,用来记录各个存档是否作废,如果作废,那么就不显示它

1.
游戏初始时声明数组(只能声明一次),其中void为有效,1为废档
sf.废档标记 = new Array();

2.
存读档界面,判断存档是否存在时增加一个条件
(macro_sl.ks,第13~26行)
[iscript]
function storagedata(num)
{
        var sd=kag.saveDataLocation+'/data'+num+'.bmp';
        if(sf.废档标记[num]==1){sd=void;}//新增的条件
        return sd;
}
function checkdata(num)
{
        var cd=Storages.isExistentStorage(kag.saveDataLocation+'/data'+num+'.bmp');
        if(sf.废档标记[num]==1){cd=false;}//新增的条件
        return cd;
}
[endscript]

3.
当玩家选择重置游戏时,清除全部存档信息,并标记为废档
for(var i=0;i<20;i++)//我这边最大存档数是20
{
        kag.eraseBookMark(i);
        sf.历史[i] = "……";
        sf.最近档案= void ;
        sf.废档标记[i] = 1;
}

4.
存档时,清除废档标记,把该档位重新设置为可见
(MySaveLoadFunction.tjs,第17~22行)
if (num < 999)
        {
            sf.废档标记[num]= void ;//增加一行
            sf.最近档案= num ;
            Debug.message("最近保存档案名刷新");
        }

可能还要再调试一下,但大体上应该是对的,可以实现想要的功能,希望能帮到有需要的小伙伴_(:з」∠)_
回复

使用道具 举报

16

主题

990

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1011
发表于 2023-9-17 23:09:31 来自手机 | 显示全部楼层
但其实最近对话和新档标记都是单独的sf变量…只想去掉那些的话删除这俩对应的值就行?…
回复

使用道具 举报

3

主题

6

帖子

0

精华

游戏开发者

积分
6
 楼主| 发表于 2023-9-17 23:15:30 | 显示全部楼层
VariableD 发表于 2023-9-17 23:09
但其实最近对话和新档标记都是单独的sf变量…只想去掉那些的话删除这俩对应的值就行?… ...

是的嘞,主要还是截图的问题
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|nvlmaker

GMT+8, 2024-4-27 22:35 , Processed in 0.011651 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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