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

Project1

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

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
105
在线时间
5250 小时
注册时间
2011-10-7
帖子
1885

开拓者贵宾

跳转到指定楼层
1
发表于 2012-3-17 16:58:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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 返还

查看全部评分

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

2
发表于 2012-3-18 13:07:44 | 只看该作者
p $RGSS_SCRIPTS[1] 会出现一些东西
我改成 p $RGSS_SCRIPTS[0] 又不太一样
先去睡了,明天在看
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
105
在线时间
5250 小时
注册时间
2011-10-7
帖子
1885

开拓者贵宾

3
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

Fuzzy Ginkgo
Taciturn Knight

梦石
0
星屑
60819
在线时间
1934 小时
注册时间
2010-6-26
帖子
1605

烫烫烫开拓者

4
发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42387
在线时间
7601 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

5
发表于 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
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-21 23:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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