Project1
标题:
如何读取存档的游戏时间
[打印本页]
作者:
hijl1990
时间:
2016-9-29 10:49
标题:
如何读取存档的游戏时间
本帖最后由 hijl1990 于 2016-9-29 11:59 编辑
就是如何读取各存档的游戏时间,再进行判断。
我举个例子,我想做个判定,就是存档1的游戏时间大于存档2的游戏时间时,这样的效果。
请问能做到吗?
作者:
七重
时间:
2016-9-29 11:27
本帖最后由 七重 于 2016-9-29 14:32 编辑
class Scene_Save < Scene_File
alias krst_on_save_success on_save_success
def on_save_success
miao = 1
Sound.play_save
$game_variables[@index+miao] = Graphics.frame_count
return_scene
end
end
复制代码
这样可以将游戏的进行帧数记录在变量里,每60帧是1秒。
如果想记录现实时间的话就是:
$game_variables[n]=Time.now.hour
$game_variables[m]=Time.now.min
这样的脚本。
假如说,想要知道存档1的游戏时间是否比存档2长。
那就是事件指令→条件分支,判断变量0001的数值 是否大于 变量0002 。
默认是将存档1的游戏时长存在变量1中。
作者:
喵呜喵5
时间:
2016-9-29 20:56
两种思路,未测试
1.直接读取存档的数据
原生脚本的话,使用
DataManager.load_header(存档编号)[:playtime_s]
复制代码
可以读取存档的游戏时间数据,比较不同存档的该数据即可,考虑到这个数据是一个字符串,如果觉得涉及字符串的比较很麻烦的话,可以动 DataManager 的 make_save_header 部分,类似这样
class << DataManager
alias m5_20160929_make_save_header make_save_header
def make_save_header
header = m5_20160929_make_save_header
header[:m520160929playtime] = $game_party.playtime
header
end
end
复制代码
之后用
DataManager.load_header(存档编号)[:m520160929playtime]
复制代码
读取即可
注意
DataManager.load_header(存档编号) 在存档不存在时返回 nil
2.额外生成一个专门用于比较的数据
给 DataManager 的 save_game_without_rescue 加一个钩子
class << DataManager
alias m5_20160929_save_game_without_rescue save_game_without_rescue
def save_game_without_rescue(index)
m5_20160929_save_game_without_rescue
data = load_data('compare_data') rescue []
data[index] = $game_party.playtime
save_data(data, 'compare_data')
end
end
复制代码
之后要获取存档时间的时候只要读取 compare_data 这个文件即可
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1