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

article/2025/10/4 4:56:00

上一节,我们讲解了通过代码Hack的方式修改人物的魔法物品获取率和金币获取量等属性,这一节,我们将一鼓作气,拿下移速攻速等更复杂的属性修改

1. 我们在原始版本里搜索移速英文movespeed得到一个结果,双击打开伪代码

2. 转到汇编代码,尝试搜索附近的一些指令,尝试了几次,结果在2.6.6版本中搜索02 16 82 52 A2 00 A0 72只有一个搜索结果,我们点进去看下,发现附近汇编指令和原版本比较相似,基本确定这个就是2.6.6里对应的CPlayerGetMoveSpeedForStickInput函数

3. 拉到这段函数代码的末尾,从MOV             V0.16B, V9.16B 这条指令,得知S9就是最后算得的移速,最后传给S0作为函数返回值,因此就在这条指令上加hack

4. 找空白地址编写代码如下

5. 写成金手指代码

6. 测试移动速度,飞一般的感觉,至此,动态移速修改完成,接下来我们讲解动态攻速修改,这个要比移速复杂一些,原因就是攻速涉及到的功能比较多,我们搜索攻速英文attackspeed, 选择PowerGetAttackSpeed,里面再选择PowerGetAttackSpeedAtLevel,如果你右击这个函数选择跳转到外部应用,会发现计算动画的速度也会调用这个函数,说明我找的函数就是攻速获取函数

7. PowerGetAttackSpeedAtLevel函数代码里我们又发现了另一个重要函数PowerGetFormulaValue,根据名字就可以知道是通过公式计算属性值的,攻速也是通过这个函数计算得到的,我们继续点进去,拉到最后,终于找到了要hack的地方

8. 我们转到汇编代码,往上看一下,发现修改_Z27PowerGetFormulaValueAtLeveliPK15ActorCommonDataiPhii的返回值就可以了,也就是下图中那一行,顺便根据以前的方法,我们也找到了2.6.6版本的地址

9. 别着急,先看下这段伪代码,我之前在测试的时候发现只有武僧的基础技能攻速不生效,后来才发现了combo攻速和普通攻速的某个参数值不一样,所以我们在hack的时候不但要判断攻速标志参数是否等于0x50860,还要判断

0x50861<=标志w20<=0x50864,因为这些范围也属于攻速标志

10. 接下来就简单了,我们在2.6.6main里找一个空白区开始编写hack代码,值得注意的是,因为攻速公式是敌我通用的,也就是说改攻速的时候要判断是我方人物角色还是怪物,否则相当于也修改了怪物攻速,x21是我方角色的ActorCommonData对象,偏移0x38则是一个hGB,通过大部分代码可知,一般只有我方人物和装备的ActorCommonData的hGB才有正常值,怪物和NPC的hGB都是-1,因此可以通过判断hGB来区分敌我,代码如下(16倍攻速)

11. 但这还没有结束,我们只是修改了实时攻速,面板攻速还没变,我们可以在populateinfolist函数里找到

12. 转到这里对应的汇编代码,然后再找到2.6.6对应的地址

13. 这里的LDR S0,[X21]就是我们要hack的指令,我们需要把S0也乘以16倍,这样面板攻速就和我们的实际攻速对应上了,其实面板攻速可改可不改,并不影响实际攻速,不过为了完美的金手指,我们就把这里也改了,找空白区域编写代码如下

14. 现在终于到最后的阶段了,我们把两段代码写成金手指格式合在一起,顺便也要把被hack的指令改成跳转指令

15. 大功告成,现在启动游戏,开启攻速的金手指,看看面板攻速,是不是变成16倍啦?另外放几个技能,看看人物实际攻速,瞬间爆炸!!!

16. 好了,本节到此结束,修改攻速的内容稍微复杂一些,不过完成了也有很大成就感,下一节我们将介绍人物的其他重要属性的动态修改,包括暴击,爆伤,冷却,无敌,经验值,一击必杀等,这些金手指制作相对会容易一些,重在程序逻辑上的分析

 


http://chatgpt.dhexx.cn/article/MkZmtGww.shtml

相关文章

Unity 基础常用的脚本(一)

1.获取相机射线 var ray Camera.main.ScreenPointToRay(Input.mousePosition); //GameObject.CreatePrimitive(PrimitiveType.Cube).transform.position ray.GetPoint(10.0f); transform.LookAt(ray.GetPoint(10.0f)); 2.AddForce和velocity有什么区别&#xff1f; AddForc…

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

上一节&#xff0c;我们讲解了一击必杀&#xff0c;技能冷却无CD等人物战斗时用到的金手指制作&#xff0c;这一节&#xff0c;将会讲解人物升级相关的功能以及宝石和打孔器等材料数量的锁定功能制作 1. 在游戏中特别是在游戏后期&#xff0c;我们会发现人物随着等级的提高&am…

Unity脚本复习

1.在Project面板中显示和创建的每一个脚本其实都是一个类&#xff0c;当我们把脚本挂载到Hierarchy层级中的游戏物体时&#xff0c;其实我们就实现了将脚本类实例化为一个脚本组件&#xff08;对象&#xff09;的过程 2.在游戏运行时&#xff0c;场景加载&#xff0c;游戏对象…

零基础游戏开发笔记11——Unity脚本介绍、脚本初始阶段

1.语法结构&#xff1a; 2.编译过程&#xff1a; CLS->Mono RunTime->机器码 3.关于修改和创建脚本&#xff1a; 创建脚本&#xff1a; 一般我们会在项目中添加scripts文件夹&#xff0c;并在此文件夹中编写脚本&#xff0c;当然这些脚本可以根据个人喜好分配到不同类…

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

上一节&#xff0c;我们讲了基于公式明文的金手指制作方法&#xff0c;这一节&#xff0c;我们将进阶到更高级的基于程序修改的金手指制作方法&#xff0c;从现在开始&#xff0c;对读者的技术水平有了一个更高的要求&#xff0c;读者最好有汇编和C/C高级语言的一些基础&#x…

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

终于到最后一节了&#xff0c;在这一节中我们将讲解如何利用hack制作出丰富多彩的世界&#xff0c;开个玩笑&#xff0c;其实是因为由于暗黑三的AMIIBO功能很有意思&#xff0c;不但可以用普通手办在城外召唤出一组精英怪&#xff0c;而且在城内用专用哥布林手办还能开启宝藏秘…

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

上一节&#xff0c;我们学会了通过修改程序指令的方式制作金手指&#xff0c;这一节&#xff0c;将引出真正的高手级金手指开发方法 除了必掉太古这个极其护肝和有用的金手指外&#xff0c;我们能想到的另一个金手指就是人物背包里的素材&#xff0c;包括金钱&#xff0c;宝石…

暗黑破坏神2 符文自动合成--按键精灵源码

最近玩了一个暗黑破坏神mod服 发现2个符文可以合成一个大号符文.不过手动合成实在太费劲了.于是乎我就写了一个自动合成的脚本. 需要用到图灵插件,不知道的自己百度一下. 还是挺有意思的这类脚本.还需要有一个自己的算法. 源码如下. Function 移动鼠标点左键(x1, y1)MoveT…

Unity脚本(二)

视频教程&#xff1a;https://www.bilibili.com/video/BV12s411g7gU?p122 目录 Transform GameObject Object GetComponentInParent LookAt GetSiblingIndex、SetSiblingIndex Instantiate Transform 对象的位置、旋转和缩放 场景中的每个对象都有一个Transform&…

Unity 剧情类游戏基础脚本

本文主要用于给新人提供实现剧情类游戏的基本思路。 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; 然后是一个很重要的 [System.Serializable] 它的作用是使得在检查器窗口来看到我i们自己创建的类从而实现在检…

Unity脚本(三)

视频教程&#xff1a;https://www.bilibili.com/video/BV12s411g7gU?p128 目录 Time Prefab Animation Time Time.time&#xff1a;自应用程序启动以来&#xff0c;每帧的开始时间&#xff08;只读&#xff09; Time.deltaTime&#xff1a;每帧间隔&#xff0c;或说完…

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

最近重温了NS版的暗黑三&#xff0c;因为空闲时间实在有限&#xff0c;面对这样一款刷刷刷的经典作品&#xff0c;为了护肝以及更爽快的游玩&#xff0c;同时为了弥补自己丢失已久的汇编技能&#xff0c;加上NS版暗黑三最初版本里有带完整调试信息的elf文件&#xff0c;于是有了…

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

上一节&#xff0c;我们初步介绍了修改人物力量的方法&#xff0c;也大致说了一下hexworkshop和IDA的简单操作&#xff0c;这一节&#xff0c;我们将进阶到复杂度高一些的人物全属性修改&#xff0c;搜索方法基本跟上一节的力量公式一样&#xff0c;需要一定的耐心和细心&#…

Unity入门3——脚本基础

一、生命周期函数 ​ 所有继承 MonoBehavior 的脚本&#xff0c;最终都会挂载到 GameObject 游戏对象上 ​ 生命周期函数就是该脚本对象依附的 GameObject 对象从出生到消亡整个生命周期中 ​ 会通过反射自动调用的一些特殊函数 ​ Unity 帮助我们记录了一个 GameObject 对象依…

4.实现csdn暗黑模式-油猴脚本实战1

4.实现csdn暗黑模式-油猴脚本实战1 Start 前面的文章&#xff0c;对油猴脚本做了基础的介绍。今天来我们来实战一下&#xff0c;编写一个有实际作用的油猴脚本。 如果我希望我的csdn是暗黑模式&#xff0c;怎么办&#xff1f; 看我表演&#xff1f; 注意&#xff01;本文仅用…

6. unity之脚本

1. 说明 当整个游戏运行起来之后,我们无法再借助鼠标来控制物体,此时可以使用脚本来更改物体的各种姿态,驱动游戏的整体运动逻辑。 2. 脚本添加 首先在Assets目录中,新创建一个Scripts文件夹,在该文件内右键鼠标选择创建脚本选项,即可创建一个脚本文件,可命名为Sampl…

Unity入门03——Unity脚本

1.脚本基本规则 1.设置编程用工具 2.基本规则 1.创建规则 不在VS中创建脚本了可以放在Assets文件夹下的任何位置&#xff08;建议同一文件夹管理)类名和文件名必须一致,不然不能挂载(因为反射机制创建对象&#xff0c;会通过文件名去找Type)建议不要使用中文名命名没有特殊…

你可能还不知道的暗黑3常用小技巧

以下是上次活动热心坛友发来的游戏小技巧&#xff0c;经过我的搜集和加入一些自己和朋友们分享的经验整合编辑而成。再次感谢大家的热心参与。都非常实用哟&#xff01;&#xff01;&#xff01; 操作篇 1&#xff0c;如果你不希望朋友进入你的游戏时&#xff0c;按ESC&#xf…

jq linux获取数组长度,数组长度用size还是length

数组长度用length属性。length是js的原生方法&#xff0c;可获取元素的个数和对象的长度&#xff1b;而size()函数是jQuery方法&#xff0c;只能作用于对象上&#xff0c;用于返回当前jQuery对象封装的元素个数。获取一个数组的长度或者参数的长度&#xff0c;只能用lenth。 本…

delphi 获取数组长度_数组的介绍及使用

JavaScript 中的数组常用于在单个变量中存储多个值。数组就是一组数据的集合&#xff0c;在内存中表现为一段连续的内存地址(保存在堆内存)。创建数组的目的就是为了保存更多的数据。 数组概念和语法 概念&#xff1a;数组是一个特殊变量&#xff0c;一次可以容纳多个值。 特点…