查看: 1480|回复: 3

[已经解决] 存档存了一次后读取出错怎么回事?

[复制链接]
梦石
0
星屑
4756
在线时间
389 小时
注册时间
2012-11-8
回帖
235
发表于 2013-5-13 20:34:52 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 qq634488405 于 2013-5-13 22:38 编辑

代码如下[pre lang="ruby" line="1"]def write_save_data(file)
  # 生成描绘存档文件用的角色图形
  characters = []
  for i in 0...$game_party.actors.size
    actor = $game_party.actors
    characters.push([actor.character_name, actor.character_hue])
  end
  # 写入描绘存档文件用的角色数据
  Marshal.dump(characters, file)
  # 写入测量游戏时间用画面计数
  Marshal.dump(Graphics.frame_count, file)
  # 增加 1 次存档次数
  $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)
  Marshal.dump($xingbie, file)
  Marshal.dump($live, file)
end[/pre]
其中$xingbie是储存玩家性别的一个变量
$live是储存npc是否存活的一个数组
这是读档的部分代码
[pre lang="ruby" line="1"]def read_save_data(file)
  # 读取描绘存档文件用的角色数据
  characters = Marshal.load(file)
  # 读取测量游戏时间用画面计数
  Graphics.frame_count = Marshal.load(file)
  # 读取各种游戏对像
  $game_system        = Marshal.load(file)
  $game_switches      = Marshal.load(file)
  $game_variables     = Marshal.load(file)
  $game_self_switches = Marshal.load(file)
  $game_screen        = Marshal.load(file)
  $game_actors        = Marshal.load(file)
  $game_party         = Marshal.load(file)
  $game_troop         = Marshal.load(file)
  $game_map           = Marshal.load(file)
  $game_player        = Marshal.load(file)
  $xingbie             = Marshal.load(file)
  $live               = Marshal.load(file)
  # 魔法编号与保存时有差异的情况下
  # (加入编辑器的编辑过的数据)
  if $game_system.magic_number != $data_system.magic_number
    # 重新装载地图
    $game_map.setup($game_map.map_id)
    $game_player.center($game_player.x, $game_player.y)
  end
  # 刷新同伴成员
  $game_party.refresh[/pre]
新游戏时,保存存档可以把所有信息保存,但是当读取保存的进度后再次存档时,$live这个数组就无法保存了,存档文件里没有这一数组的信息,这是怎么回事?先谢谢各位了
梦石
0
星屑
4756
在线时间
389 小时
注册时间
2012-11-8
回帖
235
 楼主| 发表于 2013-5-13 21:54:07 | 显示全部楼层
再补充一下,第二次存档的时候,我把那个$live数组p出来是没有任何问题的,但是就是不能存进存档里
回复

使用道具 举报

梦石
0
星屑
4756
在线时间
389 小时
注册时间
2012-11-8
回帖
235
 楼主| 发表于 2013-5-13 22:09:45 | 显示全部楼层
.。。。问题已经解决了。。这段存档时自己写的,没有把原本自带的那段去掉
回复

使用道具 举报

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2013-5-13 22:12:26 | 显示全部楼层
这种涉及存读档的问题,最好是把存档文件删了以后再测试
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部