Project1

标题: 存档存了一次后读取出错怎么回事? [打印本页]

作者: qq634488405    时间: 2013-5-13 20:34
标题: 存档存了一次后读取出错怎么回事?
本帖最后由 qq634488405 于 2013-5-13 22:38 编辑

代码如下
RUBY 代码复制
  1. def write_save_data(file)
  2.   # 生成描绘存档文件用的角色图形
  3.   characters = []
  4.   for i in 0...$game_party.actors.size
  5.     actor = $game_party.actors[i]
  6.     characters.push([actor.character_name, actor.character_hue])
  7.   end
  8.   # 写入描绘存档文件用的角色数据
  9.   Marshal.dump(characters, file)
  10.   # 写入测量游戏时间用画面计数
  11.   Marshal.dump(Graphics.frame_count, file)
  12.   # 增加 1 次存档次数
  13.   $game_system.save_count += 1
  14.   # 保存魔法编号
  15.   # (将编辑器保存的值以随机值替换)
  16.   $game_system.magic_number = $data_system.magic_number
  17.   # 写入各种游戏对像
  18.   Marshal.dump($game_system, file)
  19.   Marshal.dump($game_switches, file)
  20.   Marshal.dump($game_variables, file)
  21.   Marshal.dump($game_self_switches, file)
  22.   Marshal.dump($game_screen, file)
  23.   Marshal.dump($game_actors, file)
  24.   Marshal.dump($game_party, file)
  25.   Marshal.dump($game_troop, file)
  26.   Marshal.dump($game_map, file)
  27.   Marshal.dump($game_player, file)
  28.   Marshal.dump($xingbie, file)
  29.   Marshal.dump($live, file)
  30. end

其中$xingbie是储存玩家性别的一个变量
$live是储存npc是否存活的一个数组
这是读档的部分代码
RUBY 代码复制
  1. def read_save_data(file)
  2.   # 读取描绘存档文件用的角色数据
  3.   characters = Marshal.load(file)
  4.   # 读取测量游戏时间用画面计数
  5.   Graphics.frame_count = Marshal.load(file)
  6.   # 读取各种游戏对像
  7.   $game_system        = Marshal.load(file)
  8.   $game_switches      = Marshal.load(file)
  9.   $game_variables     = Marshal.load(file)
  10.   $game_self_switches = Marshal.load(file)
  11.   $game_screen        = Marshal.load(file)
  12.   $game_actors        = Marshal.load(file)
  13.   $game_party         = Marshal.load(file)
  14.   $game_troop         = Marshal.load(file)
  15.   $game_map           = Marshal.load(file)
  16.   $game_player        = Marshal.load(file)
  17.   $xingbie             = Marshal.load(file)
  18.   $live               = Marshal.load(file)
  19.   # 魔法编号与保存时有差异的情况下
  20.   # (加入编辑器的编辑过的数据)
  21.   if $game_system.magic_number != $data_system.magic_number
  22.     # 重新装载地图
  23.     $game_map.setup($game_map.map_id)
  24.     $game_player.center($game_player.x, $game_player.y)
  25.   end
  26.   # 刷新同伴成员
  27.   $game_party.refresh

新游戏时,保存存档可以把所有信息保存,但是当读取保存的进度后再次存档时,$live这个数组就无法保存了,存档文件里没有这一数组的信息,这是怎么回事?先谢谢各位了
作者: qq634488405    时间: 2013-5-13 21:54
再补充一下,第二次存档的时候,我把那个$live数组p出来是没有任何问题的,但是就是不能存进存档里
作者: qq634488405    时间: 2013-5-13 22:09
.。。。问题已经解决了。。这段存档时自己写的,没有把原本自带的那段去掉
作者: 亿万星辰    时间: 2013-5-13 22:12
这种涉及存读档的问题,最好是把存档文件删了以后再测试




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1