赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 54280 |
最后登录 | 2006-1-29 |
在线时间 | 0 小时 |
Lv1.梦旅人 (禁止发言)
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 0 小时
- 注册时间
- 2005-10-22
- 帖子
- 81
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
RM游戏的Data目录下面存放的是游戏的数据,关于这些文件,帮助文档的【RMXP数据结构】一节对此都有详细的Ruby脚本描述。
但是,似乎少了这个,Scripts.rxdata,也就是脚本自身存放的地方。
下面说下这个文件的结构,如果火星了请大家指出-_-b
# 使用如下语句可以读取这个文件到一个对象
$SCRIPTS = load_data("Data/Scripts.rxdata")
# 读取之后,用如下语句了解到Scripts.rxdata保存了一个Ruby的Array对象。
p $SCRIPTS.type.to_s
# 脚本对象是一个二维数组,用$SCRIPTS[id]表示第一维。每个一维单元,是一个包含3个对象的数组。
$SCRIPTS[id][0] #一个数字,含义不明^_^bb
$SCRIPTS[id][1] #脚本段的标题字符串,比如Main
$SCRIPTS[id][2] #经过压缩的脚本内容字符串
# id的范围就是0~最大脚本段数。0就是编辑器最上面的脚本,比如Game_Temp。
# 因为脚本内容被压缩了,所以用UE等文本编辑器直接打开Scripts.rxdata是看不到脚本内容,只能看到脚本段标题。
# 经过分析,压缩使用的是Ruby的Zlib模块。解压方法如下,直接加到数组第4个单元上:
$SCRIPTS[id][3,0] = Zlib::Inflate.inflate($SCRIPTS[id][2])
# 然后可以尝试显示一下,应该可以看到自己的脚本内容了:)
p $SCRIPTS[id][3]
上面的内容可以直接粘贴到脚本框里面看效果。
知道了这个有什么用呢?呵呵,就是增进一下对RGSS的了解,毕竟存在一个未知的数据结构是很不舒服的事情:)当然知道这个后,可以对脚本的文件做一下诡异的处理。比如……#$@#$!#$,再比如……@#@#!@%$@#$。
另外,Zlib是一个压缩和解压模块,使用这个模块可以做很多事情。具体Zlib怎么使用,可以去网上搜索一下,还是比较容易找到的。 |
|