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

Project1

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

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

 关闭 [复制链接]

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
跳转到指定楼层
1
发表于 2009-2-5 05:29:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
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专题空间--龙使传说
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

2
发表于 2009-2-5 06:23:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

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

贵宾

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

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
4
 楼主| 发表于 2009-2-5 06:50:10 | 只看该作者
那麼可利用characters = []嗎?

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

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

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

使用道具 举报

Lv1.梦旅人

魔王 ⑨

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

贵宾

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

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
6
 楼主| 发表于 2009-2-5 07:06:44 | 只看该作者
以下引用玄月于2009-2-4 22:55:23的发言:

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

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

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

使用道具 举报

Lv1.梦旅人

魔王 ⑨

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

贵宾

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

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
8
 楼主| 发表于 2009-2-5 08:19:35 | 只看该作者
呵呵~~
利用characters = []
可行了!!

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2008-5-12
帖子
129
9
发表于 2009-2-5 08:48:16 | 只看该作者
是根據「」分割的,所以可以用split來處理
    file = File.open(dir, mode)
    Marshal.load( "" + file.read.split("")[n] )

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

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
10
 楼主| 发表于 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专题空间--龙使传说
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 06:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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