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

Project1

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

[已经解决] 关于rxdata数据结构

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
72
在线时间
673 小时
注册时间
2006-10-3
帖子
1795

开拓者

跳转到指定楼层
1
发表于 2011-2-13 23:38:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 熊猫 于 2011-2-13 23:40 编辑

最近心血来潮想来读一下这个数据结构。先可一个简单的来Actors.rxdata。
我参看了如下帖子:
http://rpg.blue/forum.php?mod=viewthread&tid=102118
http://rpg.blue/thread-139590-1-1.html
顺利地读出了Actors.rxdata中的全部角色的基本数据。
唯一的不足就是所有角色,我都略掉了Table这个结构没有读。
根据紫苏和DNA的帖子,Actors.rxdata,主要包含的是一个数组,有9个元素,排除0号Nil,就有8个(默认数据库中8个角色)。
我看了一下,只有第一个角色的属性既写了变量名又写了值。后面的都仅仅是有变量的值,没有变量名。
这样的话我就拿1号角色说事了。
1号角色的7号属性@parameters,使用save_data出来的是“@parameters=#<Table:0x43d1ae8>”可见这与其他变量不同,实际上我看,这个Table中包含了大量的数据。
由于学艺不精,对于数据结构所知甚少,所以说分析不出详细的结构,唯一能做的就是把这个部分略掉读后面的。
目前我对于Table这块的分析:
变量名@parameters
后面跟的类型是u,也就是75h(这里紫苏的表中有)
根据表,接着的是s和n,类名和个数
然后是一个标识符“:”也就是3Ah。
接着跟的是0Ah,也就是5+5=10->A。
往下读5个字符是Table
接着读是02h。我理解的是:2小于5,所以不减。说明读两位。
读两位分别是 C4h 04h,我想这应该是一个数,组合起来是4C4h=1220
说明接下来的长度是1220,也就是这个Table结构长度
我直接把文件指针往下移了1220个长度读第二个角色了……
所以这部分忽略掉了。

请求高人讲解一下这个Table的结构。
还有Save_Data之后为什么这里显示的是#<Table:0x43d1ae8>,0x43d1ae8是啥。

谢谢。

最后传一下我分析的Actors.rxdata: Actors.rar (2.23 KB, 下载次数: 47)

那个,此帖只讨论rxdata数据文件,不涉及对RGSSAD的讨论,也就是没有任何与解密有关的信息。
( ส็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ω ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้【看猫君玩,我也搞一只】)

Lv2.观梦者

梦石
0
星屑
491
在线时间
339 小时
注册时间
2010-12-15
帖子
926

开拓者

2
发表于 2011-2-13 23:52:03 | 只看该作者
本帖最后由 tamashii 于 2011-2-14 00:11 编辑

为啥十六进制要写作XXh啊,用0xXXXX躲好啊。
我只能告诉你 那个 0x43d1ae8 是内存地址

Table 相当于一个二维或三维数组
Game_Actor中关于$data_actors.parameters的使用方法:
  1. #--------------------------------------------------------------------------
  2. # ● 获取基本 MaxHP
  3. #--------------------------------------------------------------------------
  4. def base_maxhp
  5.   return $data_actors[@actor_id].parameters[0, @level]
  6. end
复制代码
可以看到[]里面两个索引:第一个为参数种类,从0-5。
第二个是等级
也就是说,@parameter里面存储的是属性曲线。
建议使用for循环进行输出
  1. for i in 0..parameters.xsize
  2.   for j in 0..parameters.ysize
  3.     p parameters[i, j]
  4.   end
  5. end
复制代码

点评

不知道什么时候就调用解释了这里面的数据……貌似看不出结构  发表于 2011-2-14 00:08
我感觉,脚本里应该看不出什么。RMXP的Load_Data或者是Marshal.load应该内部有一些巧妙的东西吧这部分处理了。那里既然是内存地址,那就应该是指针吧。  发表于 2011-2-14 00:07
哦不是Actors,是Actor  发表于 2011-2-14 00:00
对了你可以参考一下Game_Actors这个脚本  发表于 2011-2-13 23:59
没有,后面的全都是和前面一样,描述变量。至于这个4C4h范围内的数据,看不太懂~~= =!  发表于 2011-2-13 23:58

评分

参与人数 1星屑 +200 收起 理由
熊猫 + 200 感谢

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
72
在线时间
673 小时
注册时间
2006-10-3
帖子
1795

开拓者

3
 楼主| 发表于 2011-2-14 00:12:25 | 只看该作者
回复 tamashii 的帖子

谢了,忘记Parameter这个变量了!
( ส็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ω ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้【看猫君玩,我也搞一只】)
回复

使用道具 举报

Lv3.寻梦者

孤独守望

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

开拓者贵宾

4
发表于 2011-2-14 07:04:46 | 只看该作者
Table我写过一个分析贴,前面是数据总长 然后4位是总数据量 再4位x长 y长 z长 后面就是数据。  
可以搜下我在发布区发过的帖子...自己懒得翻orz
p出来后面那个是指针地址
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 06:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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