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

上一节,我们学会了全幻化的制作,功力精进了一步,这一节,将会讲解全图纸的制作,也基本上是金手指教程的最后一节了,通过这一节,读者将会看到如何将逆向程序分析方法使用得淋漓尽致,面对任何困难也能无坚不摧

1. 我们搜索图纸英文recipe,在sAllRecipes函数中发现了图纸类型一共有4种,分别是,铁匠,附魔工匠,珠宝匠,卡奈魔盒,也就是0,1,2,3,这个很重要,一会儿会用到

2. 在UICrafting::BuildRecipeListForCrafter函数中,我们找到了图纸数目地址,然后去找到2.6.6对应的图纸数组地址为player偏移0x52E8+种类乘以0xA08, 图纸数据地址则为player偏移0x48E8++种类乘以0xA08

3. 我们找到函数SItemCrafting_LearnRecipe的2.6.6的对应地址为sub_857590,记下来为后面代码做准备

4.  我们在BuildRecipeListForCrafter函数的开始代码附近做清空图纸的hack,找到2.6.6对应的地址,开始编写代码,先写清空代码

5. 我们先看下SItemCrafting_LearnRecipe的参数,idACDPlayer和gbidRecipe,都需要我们传进去,往下看,其实v5 = PlayerGetByACD(v3)可以改为LocalPlayerGet(2.6.6对应地址为sub_B8040)来获取,这样我们就不用传递idACDPlayer了,gbidRecipe则取m_tData的高位即可,接着就可以编写添加图纸的代码了

6. 编写在循环遍历时添加图纸的代码

7. 我们在SItemCrafting_LearnRecipe里可以看到,后面的SItemCrafting_SendPlayerInfo里会调用MessageSendToClient发送消息给客户端,而我们是在客户端进行hack的,所以会报错,因此添加完图纸后我们就直接跳转到最后,找到2.6.6对应的地址hack一下即可

8. 至此,我们已经完成了全部的汇编代码,把所有代码合在一起写成金手指格式代码

9. 现在可以进游戏测试全图纸金手指了,去铁匠或者宝石匠那里看下,是不是全部图纸都学会啦?

好了,本节到此结束,这一节中,我们学会了利用游戏程序中存在的各种函数进行hack混合,最终完成了我们的功能,金手指教程也马上接近尾声了,下一节也就是最终章节中,我们将介绍hack的终极奥义,利用hack随心所欲地创造自己的世界

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值