红色警戒2修改器原理百科(四)

(九)重置超级武器CD——额外核弹带来的惊喜2

    跟入上一个调整核弹CD的CALL 0069CCF0后,会发现一些有意思的偏移。

cjwq

字节,+3C=CD就绪后,提示文字的颜色

字节,+55=该选项是否存在。貌似修改没什么用

字节,+56=标志是否是一次性机会。上面使用CALL获得的额外核弹=1,改成0,发射核弹无效果

字节,+57=就绪标志。修改成1直接可以使用超级武器,疑惑倒计时文字还在倒计时

字节,+58=等待标志。直接修改成1显示等待,实际却还在冷却,大概还有一个暂停标志配合

以上紫色文字是确定部分,具体效果,请自测。

    然后跟踪程序往下走,在返回前有一个CALL,是真正用来重置CD的。0069CCF0这个位置的函数,更确切的说是用来初始化CD的,因为初次建造超武会来到这里,使用完超武进入CD或重新就绪不进入这里。

lqcz

立即刷新超武CD的脚本

//重置超级武器CD
pushad
mov eax,2  //超武编号
push eax
mov edx,[00A35DB4]
mov ecx,[edx+1A0]
mov ecx,[ecx+eax*4]
call 0069D690
popad
ret

进入0069D690,会发现一些字符串,就是超武编号,包括伞兵哦~~

cwbh

    由此,就得到了重置超级武器CD的方法:可以用CALL,这样右下角的倒计时也会就绪,缺点是每次重置CD都要建新线程;也可以用Timer更改偏移+57的位置=1,可以一劳永逸无限使用超级武器。到这里,由额外核弹带来的一些惊喜也就完了。

(十)小地图雷达——完善地图全开

    直接找雷达存在标志,搜索字节(这样,如果是4字节也能搜到),存在雷达=1,不存在=0,依次重复,最后确定字节game.exe+6339B4=是否存在雷达标志(卖掉雷达动画还没完时最先变成0)。然后得到指令00633152 - mov [esi+000014D4],bl修改了该标志。

    下断点断下后,返回一层,就可以看到,关键位置

ld

得到开雷达脚本

//开关雷达
pushad
push 1	//开关
mov ecx,008324E0
call 00633140
popad
ret

    但是,这个可恶的但是!一旦电力不足将会关闭雷达,这是很不爽的。继续往上翻看,可以发现读取了电力和负载,修改这里的代码是可以达到效果的。有的修改器确实修改了附近,比如红色警戒2修改大师加了一个很厉害的壳,我才不会告诉你,带壳也能耍流氓,此处仅是友情宣传,我也知道这文章没几个人看现已取得作者授权公开了,但这里没什么要说的,修改了个跳转而已)。其实当你发现这里后,然后启动修改器的功能,就会发现这里被修改了眨眼

dl

    然而最后我没有选择修改这里,因为两个字,不优雅热烈的笑脸。上面第二个跳转发现没,它跳走了电力判断,字节[EAX+2228]是关键,这也是地图无偿雷达的标志,上面还有一句EAX=[game.exe+63D290]。用过红警2地图编辑器就知道了,地图上有这个选项的。只要改成1,展开基地车就有永久雷达用了。不用担心电力不足和建造的雷达被摧毁时小地图又被关掉了。为什么我没有发现有修改器修改这个标志来开雷达?这就是要有好奇心,多分析,多结合已知内容咯@.@我没夸我自己,我没夸,反正我是信了。

wcld

    其实,如果想不到有无偿雷达(不该想不到的,因为有些任务图一开始什么建筑都没有,就会有小地图雷达,怎么解释?),也可以分析出来这跳转很有猫腻。首先是个很大的跳转跳过了电力和负载的判断,并且没有跳过雷达状态变动的调用。这样的跳转只有两个:004F2E91  jnz 004F2F8C和004F2EA4  jnz 004F2F87。

    然后观察,上上上图(本小节第一个图),004F2FA0  je 004F2FB1这个跳转控制着是否跳过雷达状态变动,跳转的条件和[ESP+10]的值息息相关,而跳到004F2F87的跳转,将[ESP+10]修改成了1。肯定不是没事吃饱了撑的才改成1,当然是满足了什么条件,决定什么结果要发生。结果就是雷达被打开,条件就是[EAX+2228]。

    号外:笔者在写这篇文章截图时,又发现一个神奇的标志,[game.exe+4324E0+14A8],可以改成0,1,2,3去修改试试吧,和雷达有关。我真不会告诉你在哪发现的了,应该自己去探索太棒了

To be continued…

署名许可转载请注明来源,http://www.cnblogs.com/viewll/p/4769636.html

转载于:https://www.cnblogs.com/viewll/p/4769636.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值