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

Project1

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

[讨论] Table的Marshal格式解析

[复制链接]

Lv3.寻梦者

孤独守望

梦石
0
星屑
3132
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

跳转到指定楼层
1
发表于 2010-7-30 13:52:51 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 IamI 于 2010-7-30 16:55 编辑

因为要读取RM data所以不得不对Table数据研究了大半天= =||
恩,先做说明。这是一篇关于数据结构的说明(雾),作为对此帖的补充。

Table类型。
数据标识符为'u',然后跟有一个字符串'Table'(0A 54 61 62 6A 6C 65,其中0A是Table这个字符串的长度)
紧接着是一个标准整数,数值为:Table#x * Table#y * Table#z * 2 + 25(即是接下来的数据总长度)(前面这句话有更改注意!),如果大小超过255(FF)就先是一个数值长度,然后以小端序写入数字。
接着后面是1个字节,是Table的维度(声明的时候的参数数量),为01 02 或 03

然后是三个不明就里的空格 00 00 00

接下来是3组4个字节的的数据,保存了Table的x、y、z值。
举例容易说明~
10 * 10 * 10的数组是:0A 00 00 00 0A 00 00 00 0A 00 00 00
258 * 258(0x102 * 0x102)的数组是:02 01 00 00 02 01 00 00 01 00 00 00
00属于前面的长度数据,另外,小端序注意

最后又是4个字节的数据,大小为Table#x * Table#y * Table#z

接下来就是真正的数据部分,z值优先,y值其次,x值最低。
也就是说对于Table来说,先写z = 0的数据,z = 0的数据里面又先写 y = 0的数据,然后写入x数据,再到y = 1写入。

大概就是这样……举例懒得写了,太长……= =||
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
4
发表于 2010-8-1 00:25:05 | 只看该作者
对啵,忘了 RGSS 里也有自定义 marshal 的类型……貌似还有 Rect 可序列化?
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
288
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

3
发表于 2010-7-30 14:46:28 | 只看该作者
其实真里亚要知道 II大大 的推理过程的说~~~

点评

还是需要用 UE 试验么? 明白了~~~谢谢 II大大~~~  发表于 2010-7-30 16:58
拿一个Table写了几十个,然后用UE拆啊拆啊拆啊拆……  发表于 2010-7-30 16:56

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1185
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

2
发表于 2010-7-30 13:54:39 | 只看该作者
前排强势留爪。

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 14:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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