Project1
标题:
请教一个每隔10分钟自动存档的方法
[打印本页]
作者:
taeckle
时间:
2020-5-2 18:56
标题:
请教一个每隔10分钟自动存档的方法
本帖最后由 taeckle 于 2020-5-2 19:31 编辑
我想做一个自动存档的脚本,
游戏每进行10分钟就自动存一次档
,自动档放到第9号位置,
目前想到了各种强制无法存档的情况,比如在菜单禁止的情况下,在存档禁止的情况,在战斗中禁止存档,在剧情对话时禁止存档,
请问大家做自动存档脚本还有哪些需要注意的地方呢?
诸位要是有现成的自动存档脚本可以也发一份给我吗? 多谢了!
作者:
MCCF
时间:
2020-5-2 20:45
先提供一个思路吧。
通过Time.now或Graphics.frame_count获取时间,如Graphics.frame_count / Graphics.frame_rate即可获取当前游戏进行的秒数(这也是默认脚本的做法)。
使用某个变量记录Graphics.frame_count / Graphics.frame_rate的值,如果发现变量发生变化表示需要存档,于是:
file = File.open("Save9.rxdata", "wb")
characters = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
characters.push([actor.character_name, actor.character_hue])
end
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
$game_system.save_count += 1
$game_system.magic_number = $data_system.magic_number
Marshal.dump($game_system, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
复制代码
执行上述脚本来进行存档。
作者:
SailCat
时间:
2020-5-3 03:02
本帖最后由 SailCat 于 2020-5-3 03:03 编辑
完全不需要改游戏脚本系统,因为并行公共事件是一个事件分配一个解释器,在独占事件中会挂起,在菜单中会挂起,在战斗中会挂起,因此用并行事件就可以了
公共事件内容如下:处理是并行,开关是一个游戏开始时恒开的开关
脚本:@wait_count = 23999
return false
条件分歧:not ($game_system.save_disabled or $game_system.menu_disabled)
脚本:Scene_Save.new.write_save_data("Save9.rxdata")
分歧结束
解释:第一句是把自动执行间隔设置为10分钟,并且返回等待(脚本返回false不是bug是feature,只要你知道怎么用这个功能)
第二句就是当菜单或存档没有禁止时,执行存档到save9的操作
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1