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

Project1

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

[有事请教] 是否有方法能知道玩家刚才有没有存档?

[复制链接]

Lv5.捕梦者

梦石
0
星屑
22007
在线时间
1057 小时
注册时间
2019-3-5
帖子
1424
跳转到指定楼层
1
发表于 2021-11-3 15:22:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RM有一个默认指令是【打开存档画面】,



打开这个画面后玩家可以选择【存档】或者【右键退出】。



现在我想通过判断“玩家刚才有没有存档”来实现一个跳转效果(次级菜单和主菜单),但我发现似乎没有方法来判断玩家刚才是否有进行存档。



如果一开始一个存档也没有反而比较好办,可以用脚本获取是否有存档文件,但一想到假如玩家已经有存档了,并且是新档覆盖旧档的话,这种情况似乎无法判断。



不知道各位是否有什么好方法呢?

Lv5.捕梦者

梦石
0
星屑
26274
在线时间
5356 小时
注册时间
2016-3-8
帖子
1655
2
发表于 2021-11-3 16:03:21 | 只看该作者
Scene_Save.prototype.onSaveSuccess加个処理??

评分

参与人数 1+1 收起 理由
Zeldashu + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

3
发表于 2021-11-3 16:03:45 | 只看该作者
两个办法:
1. 检查存档文件的修改时间,https://attacomsian.com/blog/nodejs-get-file-last-modified-date
2. 读取存档文本内容进行校验,https://www.hacksparrow.com/node ... hecksum-hashes.html

评分

参与人数 1+1 收起 理由
Zeldashu + 1 塞糖

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9852
在线时间
1884 小时
注册时间
2020-1-2
帖子
1089
4
发表于 2021-11-3 16:24:17 | 只看该作者
主菜单和次菜单是什么=。=  标题界面?

JAVASCRIPT 代码复制
  1. Scene_Save.prototype.onSaveSuccess = function() {
  2.     SoundManager.playSave();
  3.         StorageManager.cleanBackup(this.savefileId());
  4.     this.popScene();
  5.         SceneManager.goto(Scene_Title);
  6. };

在rpg  scenes1714行(应该是那文件好像被我修改了不知道行是不是)添加SceneManager.goto(Scene_Title);是保存完后返回标题我上面已经添加了
如果是装备那些菜单就是平时esc那个(Scene_Menu)改成
B站没人气的夏目漠漠,直播间:5378938实用插件教程点击红字传送
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
16
星屑
12065
在线时间
1413 小时
注册时间
2020-3-21
帖子
365

极短23获奖

5
发表于 2021-11-3 17:14:50 | 只看该作者
mv有函数可以获取最新储存的存档,然后通过记载时间戳和对比时间戳可以判断上次更新这个存档是什么时候。
我本来觉得这已经够解决了,比如在载入这个页面前记载时间戳,然后与获得的最新存档的时间戳进行对比。但想想好像比较麻烦……orz。
直接在打开这个场景时将一个开关打开,然后在正真执行存档指令的地方将这个开关关闭。然后在关闭存档页面后对这个开关进行判断……大概可以……

Screenshot_20211103_170521.jpg (343.07 KB, 下载次数: 4)

Screenshot_20211103_170521.jpg

评分

参与人数 1+1 收起 理由
Zeldashu + 1 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22007
在线时间
1057 小时
注册时间
2019-3-5
帖子
1424
6
 楼主| 发表于 2021-11-3 17:22:19 | 只看该作者
xiamumomo 发表于 2021-11-3 16:24
主菜单和次菜单是什么=。=  标题界面?

Scene_Save.prototype.onSaveSuccess = function() {

其实是地图上的存档点,用的选项来设置各种东西(包括打开存档画面)。考虑到玩家可能手误点进【存档页面】但不想存档,直接退出的话就是结束整个选项。玩家又要再次调查存档点才能打开选项,比较麻烦。

所以我想判断玩家刚才有没有存档,没有的话就通过标签跳转回选项开始。没想到优化这个逻辑似乎挺麻烦的……
回复 支持 1 反对 0

使用道具 举报

Lv5.捕梦者 (版主)

梦石
22
星屑
11937
在线时间
7453 小时
注册时间
2011-7-2
帖子
397

极短24评委极短23评委极短22评委R考场第七期纪念奖开拓者

7
发表于 2021-11-3 19:11:04 | 只看该作者
本帖最后由 涅炎 于 2021-11-3 19:22 编辑

在事件变量设置里有一个代入存档次数。
用在呼出存档画面之前,判断一下变量应该是够用了。

点评

才发现变量里可以获取这个,应该能解决问题  发表于 2021-11-4 13:37

评分

参与人数 1+1 收起 理由
Zeldashu + 1 我很赞同

查看全部评分

【探索解谜游戏】《NULL》
-------------------------------------------------------------
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
16
星屑
12065
在线时间
1413 小时
注册时间
2020-3-21
帖子
365

极短23获奖

8
发表于 2021-11-3 19:58:47 | 只看该作者
Zeldashu 发表于 2021-11-3 17:22
其实是地图上的存档点,用的选项来设置各种东西(包括打开存档画面)。考虑到玩家可能手误点进【存档页面 ...

上课回来了。如果是要实现这个功能的话直接用时间戳吧:

这样就实现这个功能了。
第一条脚本是:
JAVASCRIPT 代码复制
  1. this.character(0)._timeStamp = Date.now();

这条的意思是将当前的时间记载在_timeStamp 这个量上。
第二条在条件分歧里的脚本是:
JAVASCRIPT 代码复制
  1. this.character(0)._timeStamp>=DataManager.loadGlobalInfo()[DataManager.latestSavefileId()].timestamp;

读取最新保存的存档的id:用DataManager.latestSavefileId()
读取储存在save/global.rpgsave文件中有关这个最新存档的额外储存数据(非存档本体):DataManager.loadGlobalInfo()[DataManager.latestSavefileId()]
读取这个额外数据中储存这个存档的储存事件的数据:DataManager.loadGlobalInfo()[DataManager.latestSavefileId()].timestamp
然后进行比较。要是发现最新存档的储存时间在打开刚才那个存档页面之前,那说明刚才没有存档,那就跳转标签;但要是在那之后,那就说明刚才存档了,那就不跳转。
(额外:因为在关闭游戏后再载入这个存档时,地图数据会重新生成,“已经触发”这个事件的状态将被取消,所以不会出现读取该存档后又突然蹦出选项的可能。)

点评

当然这个方式也可以直接在写脚本的时候用。  发表于 2021-11-3 20:03

评分

参与人数 1+1 收起 理由
Zeldashu + 1 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

梦石
1
星屑
21045
在线时间
4886 小时
注册时间
2014-12-22
帖子
1527

开拓者

9
发表于 2021-11-3 21:16:23 | 只看该作者
Zeldashu 发表于 2021-11-3 17:22
其实是地图上的存档点,用的选项来设置各种东西(包括打开存档画面)。考虑到玩家可能手误点进【存档页面 ...

你是选项:选项a,选项b,存档。这种感觉吗?
那我推荐你换个思路,就直接不管存没存档都再显示一遍选项,除非玩家选择了取消。这样玩家存档完想继续选择别的也很方便,手滑选错了再次选择别的也方便,只想存档的话退出整个选项也只需要再按一次取消也不耽误多少时间。我自己的选项就是这么做的,玩起来也觉得顺手~
(截图我是va,但纯事件反正是差不多的,参考!)

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22007
在线时间
1057 小时
注册时间
2019-3-5
帖子
1424
10
 楼主| 发表于 2021-11-4 13:40:09 | 只看该作者
shencao 发表于 2021-11-3 21:16
你是选项:选项a,选项b,存档。这种感觉吗?
那我推荐你换个思路,就直接不管存没存档都再显示一遍选项 ...

我也是这样想的,试过后发现存档本身没什么反馈,只有一个音效提示玩家存档成功了,所以我想加个文字提醒玩家刚才有没有存档成功。结果就是遇到这个帖子提到的问题了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 15:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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