赞 | 0 |
VIP | 52 |
好人卡 | 56 |
积分 | 1 |
经验 | 13692 |
最后登录 | 2018-12-4 |
在线时间 | 673 小时 |
Lv1.梦旅人 勥
- 梦石
- 0
- 星屑
- 72
- 在线时间
- 673 小时
- 注册时间
- 2006-10-3
- 帖子
- 1795
|
本帖最后由 熊猫 于 2011-2-16 01:14 编辑
实验了N次,完全可以读scripts.rxdata结构了,相关数据也可以读出来。
最后一步就是对实质脚本内容进行解压缩,搜索了一下发现,很多帖子提到了这个Deflate。
http://rpg.blue/thread-139590-1-1.html
http://www.66rpg.com/htm/news343.htm
http://rpg.blue/thread-5279-1-1.html
通过看WIKI貌似也看出来这是ZIP的算法,可我就是解不开啊…………
我使用.NET开发,里面有一个DeflateStream,可是我解的时候提示“块的长度与它的补集不匹配”,暂且不管这个。我发现这个.NET的DeflateStream没有Level的设置,估计是不能用这个类。
我又找到了一个很强大的.NET专用库"ICSharpCode.SharpZipLib.dll",这里面东西好多好多,找到了一个叫Deflater的,有Level设置……还是解不开~
我不可能用RUBY的那个Zlib::Deflate.deflate(string, level),我就是想知道.NET的话怎么解开这个。
还有大家有没有关于这个Deflate的更详细的内容,例如指定的算法名称,这里有很多算法例如GZIP、BZIP、ZIP……
传上来我所分析的Scripts.rxdata,还有一个从里面弄出来让我扒干净的被Deflated的数据文件,我想解压后这个就应该是我Main脚本的内容。(那个扩展名不用管,我瞎起的,主要是里面的数据)
Desktop.rar
(118.61 KB, 下载次数: 69)
还有Main脚本的实际内容:- #==============================================================================
- # ■ Main
- #------------------------------------------------------------------------------
- # 各定义结束后、从这里开始实际处理。
- #==============================================================================
- begin
- @a = load_data("Data/Scripts.rxdata")#.to_s
- p @a
- f = File.open("test2.txt","wb+")
- f.write(@a.inspect)
- f.close
- # 准备过渡
- # 设置系统默认字体
- Font.default_name = (["黑体"])
- Graphics.freeze
- # 生成场景对像 (标题画面)
- $scene = Scene_Title.new
- # $scene 为有效的情况下调用 main 过程
- while $scene != nil
- $scene.main
- end
- # 淡入淡出
- Graphics.transition(20)
- rescue Errno::ENOENT
- # 补充 Errno::ENOENT 以外错误
- # 无法打开文件的情况下、显示信息后结束
- filename = $!.message.sub("No such file or directory - ", "")
- print("找不到文件 #{filename}。 ")
- end
复制代码 请大家帮忙了,谢谢! |
|