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

Project1

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

[已经解决] 如何读取存档的游戏时间

[复制链接]

Lv4.逐梦者

梦石
10
星屑
5058
在线时间
1836 小时
注册时间
2013-2-14
帖子
395

开拓者

跳转到指定楼层
1
发表于 2016-9-29 10:49:38 手机端发表。 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 hijl1990 于 2016-9-29 11:59 编辑

就是如何读取各存档的游戏时间,再进行判断。
我举个例子,我想做个判定,就是存档1的游戏时间大于存档2的游戏时间时,这样的效果。
请问能做到吗?

Lv3.寻梦者

梦石
0
星屑
3559
在线时间
2337 小时
注册时间
2015-8-25
帖子
960

开拓者

2
发表于 2016-9-29 11:27:45 | 只看该作者
本帖最后由 七重 于 2016-9-29 14:32 编辑
  1. class Scene_Save < Scene_File
  2.   alias krst_on_save_success on_save_success
  3.   def on_save_success
  4.     miao = 1
  5.     Sound.play_save
  6.     $game_variables[@index+miao] = Graphics.frame_count
  7.     return_scene
  8.   end
  9. end
复制代码


这样可以将游戏的进行帧数记录在变量里,每60帧是1秒。

如果想记录现实时间的话就是:
$game_variables[n]=Time.now.hour
$game_variables[m]=Time.now.min
这样的脚本。


假如说,想要知道存档1的游戏时间是否比存档2长。

那就是事件指令→条件分支,判断变量0001的数值 是否大于 变量0002 。

默认是将存档1的游戏时长存在变量1中。

点评

问题解决了,感谢回答。  发表于 2016-9-30 11:12
用上面这段就可以实现了,比较变量1和变量2的值。  发表于 2016-9-29 12:34
我举个例子,我想做个判定,就是存档1的游戏时间大于存档2的游戏时间时,这样的效果。能做到吗?  发表于 2016-9-29 11:57
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
20915
在线时间
9331 小时
注册时间
2012-6-19
帖子
7105

开拓者短篇九导演组冠军

3
发表于 2016-9-29 20:56:27 | 只看该作者
两种思路,未测试

1.直接读取存档的数据
原生脚本的话,使用
  1. DataManager.load_header(存档编号)[:playtime_s]
复制代码

可以读取存档的游戏时间数据,比较不同存档的该数据即可,考虑到这个数据是一个字符串,如果觉得涉及字符串的比较很麻烦的话,可以动 DataManager 的 make_save_header 部分,类似这样
  1. class << DataManager
  2.   alias m5_20160929_make_save_header make_save_header
  3.   def make_save_header
  4.     header = m5_20160929_make_save_header
  5.     header[:m520160929playtime] = $game_party.playtime
  6.     header
  7.   end
  8. end
复制代码

之后用
  1. DataManager.load_header(存档编号)[:m520160929playtime]
复制代码

读取即可
注意
DataManager.load_header(存档编号) 在存档不存在时返回 nil

2.额外生成一个专门用于比较的数据
给 DataManager 的 save_game_without_rescue 加一个钩子
  1. class << DataManager
  2.   alias m5_20160929_save_game_without_rescue save_game_without_rescue
  3.   def save_game_without_rescue(index)
  4.     m5_20160929_save_game_without_rescue
  5.     data = load_data('compare_data') rescue []
  6.     data[index] = $game_party.playtime
  7.     save_data(data, 'compare_data')
  8.   end
  9. end
复制代码

之后要获取存档时间的时候只要读取 compare_data 这个文件即可


点评

谢谢。解决问题了  发表于 2016-9-30 11:12

评分

参与人数 1星屑 +250 梦石 +1 收起 理由
RaidenInfinity + 250 + 1 楼主认可的解答

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 21:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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