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

Project1

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

[已经解决] 请教一个每隔10分钟自动存档的方法

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
跳转到指定楼层
1
发表于 2020-5-2 18:56:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 taeckle 于 2020-5-2 19:31 编辑

我想做一个自动存档的脚本,游戏每进行10分钟就自动存一次档,自动档放到第9号位置,
目前想到了各种强制无法存档的情况,比如在菜单禁止的情况下,在存档禁止的情况,在战斗中禁止存档,在剧情对话时禁止存档,

请问大家做自动存档脚本还有哪些需要注意的地方呢?



诸位要是有现成的自动存档脚本可以也发一份给我吗? 多谢了!

Lv4.逐梦者

梦石
2
星屑
6687
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

2
发表于 2020-5-2 20:45:51 | 只看该作者
先提供一个思路吧。
通过Time.now或Graphics.frame_count获取时间,如Graphics.frame_count / Graphics.frame_rate即可获取当前游戏进行的秒数(这也是默认脚本的做法)。
使用某个变量记录Graphics.frame_count / Graphics.frame_rate的值,如果发现变量发生变化表示需要存档,于是:
  1. file = File.open("Save9.rxdata", "wb")
  2. characters = []
  3. for i in 0...$game_party.actors.size
  4.   actor = $game_party.actors[i]
  5.   characters.push([actor.character_name, actor.character_hue])
  6. end
  7. Marshal.dump(characters, file)
  8. Marshal.dump(Graphics.frame_count, file)
  9. $game_system.save_count += 1
  10. $game_system.magic_number = $data_system.magic_number
  11. Marshal.dump($game_system, file)
  12. Marshal.dump($game_switches, file)
  13. Marshal.dump($game_variables, file)
  14. Marshal.dump($game_self_switches, file)
  15. Marshal.dump($game_screen, file)
  16. Marshal.dump($game_actors, file)
  17. Marshal.dump($game_party, file)
  18. Marshal.dump($game_troop, file)
  19. Marshal.dump($game_map, file)
  20. Marshal.dump($game_player, file)
复制代码

执行上述脚本来进行存档。

评分

参与人数 1+1 收起 理由
taeckle + 1 多谢大神指点!

查看全部评分

祝好。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23191
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

3
发表于 2020-5-3 03:02:04 | 只看该作者
本帖最后由 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的操作

评分

参与人数 3星屑 +50 +3 收起 理由
rubygomax + 1
RyanBern + 50 + 1 认可答案
taeckle + 1 5行脚本就行了啊....佩服!

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 13:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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