Project1
标题:
【VA】很纠结scripts.rvdata2读出的数组s[id][0]的那堆数字的意义
[打印本页]
作者:
凌童鞋
时间:
2012-3-17 16:58
标题:
【VA】很纠结scripts.rvdata2读出的数组s[id][0]的那堆数字的意义
本帖最后由 fux2 于 2012-3-24 16:17 编辑
p $RGSS_SCRIPTS[1][0]
复制代码
运行这段代码会输出一堆数字,这堆数字是干什么的呢?
曾经有前辈解读过scripts的结构,不过这堆数字是干什么的那位前辈也不知道…
虽然知不知道无所谓,但不知道的话还是很让人纠结呢…
不断插入删除脚本页,2,8,10,16这四种进制都p了一遍,不过怎么看都像是随机数……
作者:
雪流星
时间:
2012-3-18 13:07
p $RGSS_SCRIPTS[1] 会出现一些东西
我改成 p $RGSS_SCRIPTS[0] 又不太一样
先去睡了,明天在看
作者:
凌童鞋
时间:
2012-3-18 13:22
标题:
RE: 很纠结scripts.rvdata2读出的数组s
雪流星 发表于 2012-3-18 13:07
p $RGSS_SCRIPTS[1] 会出现一些东西
我改成 p $RGSS_SCRIPTS[0] 又不太一样
先去睡了,明天在看 ...
p $RGSS_SCRIPTS[id][item]
这句就是等同于:
s = load_data(Data/Scripts.rvdata2)
p s[id][item]
复制代码
id:脚本在脚本编辑器中的从上到下的序号
item:
0:一堆不明的数字
1:脚本名称
2:zlib压缩的脚本数据,level6
作者:
orzfly
时间:
2012-3-18 13:22
本帖最后由 orzfly 于 2012-3-18 13:24 编辑
据我所知和编辑器的这个功能有关:
编辑器中运行游戏 遇到脚本错误 编辑器可以自动定位到出错点
我那个叫做猫君的奇怪的编辑器 保存脚本时全部把这个字段写0 然后发现在RM中这个定位出错点的功能失效了
作者:
fux2
时间:
2012-3-24 15:28
本帖最后由 fux2 于 2012-3-24 15:31 编辑
@凌童鞋
@Shy07
@雪流星
@orzfly
先附一下脚本解压部分
$RGSS_SCRIPTS=load_data(@scripts_fname)
$RGSS_SCRIPTS.each{|s| s[3,0]=Zlib::Inflate.inflate(s[2])}
#$RGSS_SCRIPTS.size最后返回脚本元素长度是必须的,否则程序跳出.
复制代码
读出的时候这些编号就已经存在了,说明不是动态变量,是编辑器写入的东西.
算了时间不多直接说结果。
这个编号影响到一个叫$data_exit_code的东西,他存在于编辑器里.
贴一段代码
$data_scripts_cur_sel = $data_exit_code / 65536
$data_scripts_top_index = [$data_scripts_cur_sel - 20, 0].max
$data_scripts_cur_id = $data_scripts[$data_scripts_cur_sel][0]
cur_line = $data_exit_code % 65536 - 1
first_line = [cur_line - 20, 0].max
$sch00 ={} if $sch00 == nil
$sch00[$data_scripts_cur_id] = [first_line,cur_line, 0]
$data_exit_code = %d
复制代码
所以八成楼上说的是对的,具体也没继续跟下去,这已经很明了了。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1