火花天龙剑 -> 精华区 -> 烈火之剑沙漠寻宝研究及淘宝必杀技

ilvgm 2009-04-10 13:12
前些天从火花的这个帖子
问一个关于烈火的沙漠寻宝问题
cvurl('http','://bbs.fireemblem.net/read.php?tid=183755','http://bbs.fireemblem.net/read.php?tid=183755')

跳到了玩家网的这个帖子:
非盗贼人员的“沙漠寻宝”研究
cvurl('http','://www.cngba.com/viewthread.php?tid=16455654','http://www.cngba.com/viewthread.php?tid=16455654')

于是我也做了一些相关测试,得出以下成果:

内存位置0x03000008有一个32位整形数据,非盗贼人员是否能够挖到隐藏道具就跟此数据有关。
我想这个数据可以算作是烈火里面的“第2类乱数”了,我就先暂且这么称呼它吧。
(“第1类乱数”当然是众所周知的用来控制战斗及升级情况的了,即我们通常所指的乱数。)


“第2类乱数”何时会变化?

我按照玩家网帖子提供的线索,打开模拟器的内存监视,测试发现,“第2类乱数”在下列情况会发生变化:
1.我方非盗贼单位在埋有隐藏道具的地点选择“待机”或者执行可“再移动”的指令后
2.我方单位选择“攻击”指令后
3.我方单位选择“演奏”指令后
4.我方单位选择“物品”指令后
5.我方单位打开物品交换窗口后
6.选择“中断”指令,中断娘安娜的头像出现之后……

至于玩家网帖子上提到的“部队栏/状态栏/设定栏/人物能力画面”,不知是我理解不对,还是ROM不同的问题?
(我使用的火花汉化版,不知那位作者使用的是原版还是……)
我反复从菜单中选择“部队”“状态”“设定”指令,以及反复查看我方、敌方以及NPC的人物属性,
都没有发现这些操作会影响到“第2类乱数”。

上面提到的那些情况,其中第6条是得出本次研究成果的关键
——我发现“第2类乱数”会随着安娜说话的嘴及眨动的眼睛不停的变化!
再来看一下以上各情况间的共同点:每种情况都会显示单位的大头像!
于是,我猜测,只要显示一次单位的大头像,或者是动一下嘴,眨一下眼,“第2类乱数”就会发生变化。
所以我又测试了一些其它会出现大头像的情况,
例如章节剧情对话,战斗评价画面,战绩履历画面,通讯斗技场选单画面(显示有安娜头像),
等等等等……发现果然如此,在这些时候,“第2类乱数”都会发生变化。
不过查看人物属性画面中的大头像是个例外,可能是显示的机制不同吧(可能是一个嘴和眼不会动的静态“死图”)。

所以上面那些情况,除去第1条,都可以总结成一条:
也就是刷新显示大头像的“嘴”和“眼”时,“第2类乱数”会发生变化


“第2类乱数”的排列规律是什么?

纯粹手动测试发现,0x03000008处的这个32位整形数(即“2类乱数”)的变化规律好像如下:
上一个乱数与下一个乱数的关系公式:
f(x) = f(x-1) + 8x + 1
因此知道当前乱数的话,就可以算得下一个乱数。

进一步可以归纳出整个数列的计算公式:
f(n) = 4n^2+5n + 1
随着n的递增,便可以计算出完整的“第2类乱数表”。

不过游戏中默认的n可不是从1开始的。
测试发现,游戏每次重置后,“2类乱数”的初始值都是“0x3C7CA4D2”。

找到乱数排列规律后,再测试发现:
我方非盗贼单位在埋有隐藏道具的地点执行了“待机”或是可再移动的指令后,消耗1个“2类乱数”。
刷新一次大头像的眼睛或嘴巴各消耗1个“2类乱数”(即显示一次大头像至少要消耗两个“2类乱数”)。



什么情况下可以保证非盗贼单位必定能获得隐藏道具?

经简单测试,当内存“0x03000008”处的这个“第2类乱数”值为“0x00000008”或者“0x0000000A”时,非盗贼单位必定能获得隐藏道具。
所以,如果你不在乎使用金手指的话,可以锁定这个值。
当然你不必担心以后是否还能看到生动的角色头像,他们的嘴还是会动的,眼还是会眨的,只不过动嘴眨眼对“2类乱数”不再有影响罢了。

当然如果你厌恶金手指,那么来试试这个小技巧吧:
前面我们说到,游戏重置后,“第2类乱数”会恢复为初始值“0x3C7CA4D2”。
经过测试发现:
当前“2类乱数”为初始值开始的第3,17,31,32,40个乱数时(更多的我就没测过了XD),
下一个非盗贼单位必定能够在隐藏道具处得到宝物!

因此,我们可以在下一步打算用非盗贼单位“探宝”之前,重置一下游戏,
然后从中断存档继续游戏,再随意打开一次某个单位的“物品”指令,
(目的是为了显示一次大头像的嘴巴和眼睛,以此来消耗掉两个“2类乱数”)
这个时候,使用任何单位都可以挖到隐藏宝物了!


淘宝必杀技实战演练!




首战,小芙闪亮登场,嘴和眼各消耗了一个“2类乱数”,
所以当露西亚走到宝藏地点时,当前乱数已经是能够挖到宝贝的第3个乱数了。




露西亚又想淘宝了,咱先给他重置一下。
露西亚把自己装满宝物的包袱拿出来晒一晒,
露个脸,倍儿有面子吧,这“体格指环”自己就蹦出来了!




小菲和小艾一起露脸,面子更大,
4回就能消耗16个乱数,这宝贝自然也是囊中之物了。




在骨头上面都能找到宝贝,这可是飞行系的特权!




话说这潘特原本就是来沙漠中寻找宝物的么,果然厉害啊,有他协助,一次找俩!


详细解释:
首先利用“交换”指令消耗4*7=28个乱数,
然后利用“物品”指令消耗2个乱数,总共消耗了30个乱数,
在宝地放下潘特后,消耗第31个乱数,得到“光之剑”,
然后再移动飞到骨头左侧消耗第32个乱数,得到“英雄之证”。




其实最后两处宝贝,我开始想用这种办法来找的:
先使用最简单的办法挖到“光之剑”,待到放下潘特再移动之时,重置游戏。
此时不要急于重读中断存档,而是先进入到“附加内容”→“支援对话”。
想必大家已经明白了,我是想接受一下尼尔斯的祈祷,来祝福我一定要挖到下一个宝贝!
(因为在“再移动”的过程中无法通过其它方式来消耗“2类乱数”,所以选择此法;
当然,查看“战绩履历”也能够达到相同的效果,只不过在1周目选项还未开启时无法使用此方法了。)
Bingo! “英雄之证”到手!
可是……刚才捡的“光之剑”呢?

原来烈火这里有一个bug:
游戏的“自动保存中断存档”会在执完“待机”或是可再移动的指令(例如“放下”)时处理;
但是在“可再移动”的指令执行之后,再移动待机之前,是不会再自动保存中断存档了!
我刚才的“光之剑”可是在放下潘特之后才挖到的呀?也就是说,挖到之后没有自动保存?
对不起,这把剑确实还没有保存起来,不小心给重置掉了……囧

多亏后来发现了离初始值不远处有两个连续的乱数(31,32号)可以挖到宝贝,
而且还是奇数序号开始的(显示头像的方法每次都会消耗偶数个乱数,奇数序号开始的话容易利用了),
否则我这一次连挖两宝的计划就难以实施了。

navydern 2009-04-10 14:05
楼主的研究精神令人钦佩,最后的实战演练也很有实用价值!

water_master 2009-04-10 14:39
哦?不错,挺有点意思的~我还真不知道还能单回合利用扔人后的再动挖2件

tata2007 2009-04-10 17:22
看到了很有趣的东西,楼主的钻研精神值得肯定啊。

御虫 2009-04-10 17:33
精品文章。

littleboy886 2009-04-10 17:52
赞一个!精神可嘉!

belment00 2009-04-10 22:56
强!强帖,拜读了!


查看完整版本: [-- 烈火之剑沙漠寻宝研究及淘宝必杀技 --] [-- top --]


Powered by PHPWind v3.0.1 Code © 2003-05 PHPWind
Gzip enabled

You can contact us