查看: 5005|回复: 4

[讨论] 【VA】很纠结scripts.rvdata2读出的数组s[id][0]的那堆数字的意义

[复制链接]
梦石
0
星屑
120
在线时间
5250 小时
注册时间
2011-10-7
回帖
1769

开拓者贵宾

发表于 2012-3-17 16:58:19 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 fux2 于 2012-3-24 16:17 编辑
  1. p $RGSS_SCRIPTS[1][0]
复制代码
运行这段代码会输出一堆数字,这堆数字是干什么的呢?
曾经有前辈解读过scripts的结构,不过这堆数字是干什么的那位前辈也不知道…
虽然知不知道无所谓,但不知道的话还是很让人纠结呢…
不断插入删除脚本页,2,8,10,16这四种进制都p了一遍,不过怎么看都像是随机数……

点评

@pigsss:不过这个用途不明的东西随便修改没有发现什么副作用……  发表于 2012-3-18 12:06
可能和内存地址有关吧,每次删掉插入新的都不同  发表于 2012-3-18 11:03

评分

参与人数 1星屑 +1000 梦石 +2 收起 理由
fux2 + 1000 + 2 返还

查看全部评分

天仙

梦石
0
星屑
720
在线时间
184 小时
注册时间
2008-4-15
回帖
4872

贵宾

发表于 2012-3-18 13:07:44 | 显示全部楼层
p $RGSS_SCRIPTS[1] 会出现一些东西
我改成 p $RGSS_SCRIPTS[0] 又不太一样
先去睡了,明天在看
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复

使用道具 举报

梦石
0
星屑
120
在线时间
5250 小时
注册时间
2011-10-7
回帖
1769

开拓者贵宾

 楼主| 发表于 2012-3-18 13:22:05 | 显示全部楼层

RE: 很纠结scripts.rvdata2读出的数组s

雪流星 发表于 2012-3-18 13:07
p $RGSS_SCRIPTS[1] 会出现一些东西
我改成 p $RGSS_SCRIPTS[0] 又不太一样
先去睡了,明天在看 ...

p $RGSS_SCRIPTS[id][item]
这句就是等同于:
  1. s = load_data(Data/Scripts.rvdata2)
    p s[id][item]
复制代码
id:脚本在脚本编辑器中的从上到下的序号
item:
0:一堆不明的数字
1:脚本名称
2:zlib压缩的脚本数据,level6

点评

等会我回去拆解那个地球村的脚本编辑器看看 今天学业水平测试结束了放假一天好高兴  发表于 2012-3-18 13:26
回复

使用道具 举报

Fuzzy Ginkgo

梦石
0
星屑
61105
在线时间
1933 小时
注册时间
2010-6-26
回帖
1535

烫烫烫开拓者

发表于 2012-3-18 13:22:42 | 显示全部楼层
本帖最后由 orzfly 于 2012-3-18 13:24 编辑

据我所知和编辑器的这个功能有关:
编辑器中运行游戏 遇到脚本错误 编辑器可以自动定位到出错点

我那个叫做猫君的奇怪的编辑器 保存脚本时全部把这个字段写0 然后发现在RM中这个定位出错点的功能失效了
我的言论只代表我个人的观点,不代表雇主及/或任何第三方的立场。
Opinions expressed are solely my own and do not express the views or opinions of my employer and/or any third parties.
捐赠 | GitHub
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45693
在线时间
7948 小时
注册时间
2009-7-6
回帖
13336

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2012-3-24 15:28:41 | 显示全部楼层
本帖最后由 fux2 于 2012-3-24 15:31 编辑

@凌童鞋@Shy07@雪流星@orzfly

先附一下脚本解压部分
  1. $RGSS_SCRIPTS=load_data(@scripts_fname)
  2. $RGSS_SCRIPTS.each{|s| s[3,0]=Zlib::Inflate.inflate(s[2])}
  3. #$RGSS_SCRIPTS.size最后返回脚本元素长度是必须的,否则程序跳出.
复制代码
读出的时候这些编号就已经存在了,说明不是动态变量,是编辑器写入的东西.
算了时间不多直接说结果。
这个编号影响到一个叫$data_exit_code的东西,他存在于编辑器里.
贴一段代码
  1. $data_scripts_cur_sel = $data_exit_code / 65536
  2. $data_scripts_top_index = [$data_scripts_cur_sel - 20, 0].max
  3. $data_scripts_cur_id = $data_scripts[$data_scripts_cur_sel][0]
  4. cur_line = $data_exit_code % 65536 - 1
  5. first_line = [cur_line - 20, 0].max
  6. $sch00 ={} if $sch00 == nil
  7. $sch00[$data_scripts_cur_id] = [first_line,cur_line, 0]
  8. $data_exit_code = %d
复制代码
所以八成楼上说的是对的,具体也没继续跟下去,这已经很明了了。

点评

触  发表于 2012-3-25 08:42

评分

参与人数 1星屑 +170 收起 理由
orzfly + 170 …触

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部