NS版暗黑破坏神3金手指开发教程(10)

上一节,我们讲解了一击必杀,技能冷却无CD等人物战斗时用到的金手指制作,这一节,将会讲解人物升级相关的功能以及宝石和打孔器等材料数量的锁定功能制作

1. 在游戏中特别是在游戏后期,我们会发现人物随着等级的提高,升级所需的经验值也越来越高,呈现指数级增长,每升一级越来越困难,再加上练小号升级到70的漫长过程也是令人烦恼的,为了能够快速升级,我们考虑去修改经验值的获取量,首先,在原始版本中搜索经验获取英文experiencegrant,找到了sExperienceGrantToACD函数,继而找到了要hack的地方,转到汇编代码,再找到2.6.6的地址,hack掉这条指令,做成金手指代码即可

2. 进游戏测试一下经验值金手指,果然人物升级变快了,基本上杀几个怪升一级,不过,我们还是觉得有些慢,有没有一种方法可以直接升到满级呢?答案是肯定的,我们开始寻找这种办法,搜索levelup,发现函数sExperienceLevelUp,点进去找到了要hack的地方,然后找到2.6.6对应的地址进行hack,写成金手指代码即可

3. 进游戏测试一下,升一级直接70级,再升级直接20000级,完成。接下来我们要做的另一个功能就是宝石等材料的数量修改,我们在原始版本里搜减的英文subtract,发现了函数SubtractFromStackCount,字面意思是从堆中减去,可以理解为玩家消耗或者丢弃背包和仓库的堆类物品时会调用此函数,那么继续往下看,就找到了我们要hack的地方,也就是减少的指令,找到2.6.6对应的地址,hack掉即可,改为mov X19, 9999,那么扔掉一部分数量的材料,剩余的就会变成9999啦

4. 我们进游戏测试,从背包里扔掉1颗宝石,或者从仓库里物品堆中取出一部分,比如萨玛兰迪的礼物(打孔器),剩余的数量果然变成了9999,开心吧

5. 接下来,我们讲解如何在通过一次大秘境后直接解锁最高层150层,大秘境又称奈非天裂隙,因此搜索riftlevel,发现函数ACDTrySetHighestUnlockedRiftLevel,点进去,找到要hack的地方,转到汇编,然后找到2.6.6的地址,做hack即可,我们把原指令改为mov w21,w0,就把最大层数(150)赋值给了w21,这样当我们通过任意一层大秘境时,最大层也被设置为了上限150

6. 当我们在游戏里获取的装备和物品过多时,仓库数量上限350明显不够用,于是我们有了修改仓库上限的想法,想要修改上限,首先要找出上限值,因为在物品移动到仓库时会判断是否达到上限,因此我们搜索movetostash,发现了ItemMoveToStash,然后打开伪代码,往下又发现了ACDInventoryCanHold,双击打开,又发现了sACDInventoryFindBestLocation,继续打开,往下看,分析代码找到了上限840,然后根据附近代码相似找到2.6.6版本的上限,发现2.6.6版本的上限是910,因此仓库上限就是910

7. 知道了储藏箱上限,接下来就简单了,我们搜索maxstash,发现函数ACDInventoryGetMaxStashSlots,双击打开,发现默认上限是350,找到2.6.6的地方,Hack掉

8. 接下来我们hack购买储藏箱仓位的函数,搜索buyslots, 发现了SACDInventoryBuyStashSlots,打开,找到要hack的地方,一共有三处,我们最后找到2.6.6对应的三处地址修改之

9. 至此,我们已经改好了大部分上限判断,还有一处升级仓位所需金币需要改一下,我们搜索GetStashUpgradeCost,发现函数ACDInventoryGetStashUpgradeCost,打开后找到要hack的位置,然后去找2.6.6对应的地址,hack之后,和之前的hack指令一起写成金手指代码

10. 进入游戏测试金手指,去储藏箱看看,是不是可以突破350的仓位上限啦!

好了,本节到此结束,在本节中,我们学会了怎么制作经验值翻倍,人物满级,堆类型材料数量锁定,以及储藏箱容量上限提升的功能,分析和hack程序的功力又上了一层楼,下一节将会讲解关于传奇宝石相关的一系列金手指制作,相信读者会体验到终极逆向和hack技术的魅力!

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值