查看: 4167|回复: 3

[讨论] Table的Marshal格式解析

[复制链接]

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2010-7-30 13:52:51 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 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写入。

大概就是这样……举例懒得写了,太长……= =||
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
梦石
0
星屑
1580
在线时间
1564 小时
注册时间
2008-7-30
回帖
4207

贵宾

发表于 2010-7-30 13:54:39 | 显示全部楼层
前排强势留爪。

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

使用道具 举报

神隐的主犯

梦石
0
星屑
553
在线时间
271 小时
注册时间
2008-2-22
回帖
7534

贵宾

发表于 2010-7-30 14:46:28 | 显示全部楼层
其实真里亚要知道 II大大 的推理过程的说~~~

点评

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

《天空之城 —— 破碎的命运》
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2010-8-1 00:25:05 | 显示全部楼层
对啵,忘了 RGSS 里也有自定义 marshal 的类型……貌似还有 Rect 可序列化?
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部