查看: 8999|回复: 38

Marshal.load(file)读取数据 順序层次的问题(纯讨论)

  [复制链接]

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
回帖
2623
发表于 2009-2-5 05:29:08 | 显示全部楼层 |阅读模式

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

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

×
Marshal.load(file)读取数据MS有一种(順序层次的)问题
根据Marshal.dump(obj, file)存取数据的順序
如果想要读取自己想要的数据,
就必須重复读N次(的 Marshal.load(file))才能读到你想要的数据

举个例子:
RM默认脚本下的顺序是
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
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)

如果想要$game_map內的数据
就必須重复读11次(的 Marshal.load(file))才能读到


问题:
有沒辦法直接跳到第N层內的数据直接读取?

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2009-2-5 06:23:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

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

贵宾

发表于 2009-2-5 06:27:34 | 显示全部楼层
从操作上来讲,如果要第11个,那么你确实是得Marshal.load 10次无用数据,所以你如果在存档处确实需要某一个特殊的数据,可以专门把它存在最前头。
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
回帖
2623
 楼主| 发表于 2009-2-5 06:50:10 | 显示全部楼层
那麼可利用characters = []嗎?

Scene_Save中def write_save_data(file)方法里有
# 产生描绘游戏存档用的角色图形(数组)
characters = []

可利用這个数组存东西
因為Marshal.dump(characters, file)是第一层直接被读取
????

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复

使用道具 举报

魔王 ⑨

梦石
0
星屑
90
在线时间
379 小时
注册时间
2006-10-16
回帖
3980

贵宾

发表于 2009-2-5 06:55:23 | 显示全部楼层
顺序问题吧……今天就跟这个在纠纷,然后最后还是屈服了- -,拿100%能读取的变量来记录。。。最简单的方法还是读取多几次无用的数据吧。 = =
回复

使用道具 举报

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
回帖
2623
 楼主| 发表于 2009-2-5 07:06:44 | 显示全部楼层
以下引用玄月于2009-2-4 22:55:23的发言:

顺序问题吧……今天就跟这个在纠纷,然后最后还是屈服了- -,拿100%能读取的变量来记录。。。最简单的方法还是读取多几次无用的数据吧。 = =

你也知道
如果这麼做....读取多几次无用的数据
会导致一些刷新的時后速度会减慢的
尤其是在显示存档的地图位址名称
因為它就是在第11层內的数据

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复

使用道具 举报

魔王 ⑨

梦石
0
星屑
90
在线时间
379 小时
注册时间
2006-10-16
回帖
3980

贵宾

发表于 2009-2-5 07:27:42 | 显示全部楼层
除了摊手……我还能干嘛呢。存档画面的制作我告一段落了,虽说没什么功能。不过基本游戏该有的都有了。可以看章节名之类的  = =
回复

使用道具 举报

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
回帖
2623
 楼主| 发表于 2009-2-5 08:19:35 | 显示全部楼层
呵呵~~
利用characters = []
可行了!!

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复

使用道具 举报

梦石
0
星屑
50
在线时间
54 小时
注册时间
2008-5-12
回帖
124
发表于 2009-2-5 08:48:16 | 显示全部楼层
是根據「」分割的,所以可以用split來處理
    file = File.open(dir, mode)
    Marshal.load( "" + file.read.split("")[n] )

n 由 1 開始數
你是個好人>////<
回复

使用道具 举报

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
回帖
2623
 楼主| 发表于 2009-2-5 08:55:56 | 显示全部楼层
以下引用Quarcy于2009-2-5 0:48:16的发言:

是根據「」分割的,所以可以用split來處理

   file = File.open(dir, mode)
   Marshal.load( "" + file.read.split("")[n] )

n 由 1 開始數

我很好奇
LS怎麼知道
是根據「」分割的??

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部