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

Project1

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

[讨论] Table的Marshal格式解析

[复制链接]

Lv3.寻梦者

孤独守望

梦石
0
星屑
3121
在线时间
1534 小时
注册时间
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写入。

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

本版积分规则

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

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

GMT+8, 2024-5-2 20:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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