查看: 1696|回复: 2

[已经解决] 游戏有些地方不能存档

[复制链接]
头像被屏蔽
梦石
0
星屑
50
在线时间
11 小时
注册时间
2011-3-8
回帖
6
发表于 2011-3-23 16:55:32 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
梦石
0
星屑
50
在线时间
72 小时
注册时间
2010-11-13
回帖
88
发表于 2011-3-23 18:11:03 | 显示全部楼层
  不能存档几率很小,你可能是一下的情况:1.存档的脚本和你添加的其他脚本不兼容,发生了冲突。2.你的存档脚本被你无心的改动了,发生了错误。(也许还有其他的可能吧,这只是我个人见解……)
回复

使用道具 举报

弓箭手?剑兰

梦石
0
星屑
7994
在线时间
833 小时
注册时间
2010-11-17
回帖
1112
发表于 2011-3-23 19:44:12 | 显示全部楼层
根据错误类型及内容,估计错误是说Sprite类是没有_dump这方法,
所以在Marshal就不能dump了。

(我的旧计时器版本出现了这样的储存错误,新版则解决了。)

一、我提出以下解决办法:
  • 检查dump的是哪一个变量。
  • 默认存档的223行是$game_player,也就是Game_Player这一个类
  • 就在Game_Player里找出类型是Sprite的实例变量(带"@"的变量,准确来说是attr_的实例)
  • 设法不要让这个类带有Sprite。

二、如果你不知道怎么弄的话,那么我给一个可以放这样错误的脚本(临时而已):

  1. #==============================================================================
  2. # ■ 暂时避免Sprite的储存出错            by 一箭烂
  3. -----------------------------------------------------------------------------
  4. #  虽然暂时能够避免出错,但是会储存不了。
  5. #==============================================================================
  6. class Sprite
  7.   def _dump(limit)
  8.     return "string"
  9.   end
  10.   def self._load(str)
  11.     return "string"
  12.   end
  13. end
复制代码
注意,这样会储存不了Sprite对象的(其实平常也不可以= =会出错)。
(其他的储存都正常)

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
铃仙·优昙华院·因幡 + 200 + 2 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部