响应寒大号召整理重发DLL修改大杂烩
暗黑破坏神吧
全部回复
仅看楼主
level 7
[一楼喂熊]内容较多,勿X谢谢。该补丁分110、111、113三个版本,覆盖DLL的时候最好自己备份一下原有的文件(D2Game.dll,D2Client.dll,D2Common.dll)。111和113的修改几乎相同(特征码相同,但偏移地址不同也不能直接替换DLL),但与110的修改差异很大。
2012年04月08日 08点04分 1
level 7
修改内容如下:
1、魔法,火,电,冰冷,毒抗性上限
2、物理抗性上限
3、魔法、火、电、冰冷百分比吸收上限
4、格挡率上限
5、PP数上限
6、神符之语底材成色限制
7、雇佣兵全装备(所需的txt和dc6文件在data文件夹下)
8、命中率下限上限
9、staffmod技能种数和等级
2012年04月08日 08点04分 2
我试了下在wf(风之力)上弄了个信心(27+30+20+2)感觉碉堡了
2016年09月02日 12点09分
level 7

魔法,火,电,冰冷,毒抗性上限。原版暗黑抗性上限是95,现在修改为100就可以使玩家变得像怪物一样可以免疫。
参考http://phrozenkeep.hugelaser.com/forum/viewtopic.php?t=19653的汇编
--110------------------------------
编辑D2Game.dll文件
查找83F85F(对应汇编CMP EAX,5F)改为83F864(5F是十进制95而64是十进制100)
其后间隔4个数字后有B85F(对应汇编MOV EAX,5F)改为B864
同步面板显示效果编辑D2Client.dll文件
查找83FD5F(对应汇编CMP EBP,5F)改为83FD64,这个83FD5F之前应该是83C54B(对应汇编ADD EBP,4B其中4B就是十进制75为原始抗性上限)
其后间隔4个数字后有BD5F(对应汇编MOV EBP,5F)改为BD64
--111、113------------------------------
编辑D2Game.dll文件
查找83F85F改为83F864(5F是十进制95而64是十进制100)
其后间隔4个数字后有B85F改为B864
同步面板显示效果编辑D2Client.dll文件
查找83F85F改为83F864,这个83F85F之前应该是83C04B(其中4B就是十进制75为原始抗性上限)
其后间隔4个数字后有B85F改为B864
2012年04月08日 08点04分 4
level 7
魔法,火,电,冰冷,毒抗性上限修改的验证。单机双开,用补丁附带的存档人物uke建立TCP多人游戏,seme加入游戏与uke敌对。uke从方块里拿一个加抗性上限25%(如果没有这个属性人物的抗性上限是75%)所有抗性100%的小护身符到物品栏,可以从左边的属性面板看出抗性已经是100了。seme分别用火球、骨魂、剧毒新星三种技能攻击uke,发现仅55HP的uke毫发无伤(seme放剧毒新星的时候要卸下死灵套装盾牌,否则会减uke的抗性)。

2012年04月08日 08点04分 5
level 7
物理抗性上限。原版暗黑物免上限50%,现在修改为100就可以使玩家变得像怪物一样可以免疫。
参考http://phrozenkeep.hugelaser.com/forum/viewtopic.php?t=19653的汇编
--110--------------------------------------------
编辑D2Game.dll文件
查找837A0424(对应汇编CMP DWORD PTR [EDX+04], 24)
其后间隔4个数字后有B832(对应汇编MOV EAX, 32其中32是十进制50)改为B864(64是十进制100)
--111,113------------------------------------------
编辑D2Game.dll文件
查找837B0424
其后间隔4个数字后有B832(其中32是十进制50)改为B864(64是十进制100)
2012年04月08日 08点04分 6
level 7
物理抗性上限修改的验证。uke的那个抗性小护身符同时也有物理伤害减少100%的属性(物理伤害和其他五系伤害不同,没有增加抗性上限的物品属性,也就是说没有75%这个限制)。seme去掉多余的装备只保留武器,确保普通攻击中只含有物理伤害。seme普通攻击uke,发现uke毫发无伤。

2012年04月08日 08点04分 7
level 7
魔法,火,电,冰百分比吸收上限。暗黑原版是40%,百分比吸收在伤害流程中作用于抗性之后数值吸收之前,一般情况下40%吸收可以近似理解为80%抗性。不存在物理伤害和毒伤害的百分比吸收属性。
参考http://phrozenkeep.hugelaser.com/forum/viewtopic.php?t=19653的汇编
--110---------------------------------------
编辑D2Game.dll文件
查找83F928(28是十进制40)改为83F964(64是十进制100)
其后间隔4个数字后有B928(对应汇编MOV ECX, 28)改(和555谐)为B964
--111、113---------------------------------------
编辑D2Game.dll文件
查找83F828(28是十进制40)改为83F864(64是十进制100)
这个83F828之后紧跟的4个数字应该是7C07
再后面的4个数字应该是B828改为B864
2012年04月08日 09点04分 9
level 7

格挡上限。原版暗黑是75%,现在修改为100,就可以做到四面受敌而毫发无伤。
参考http://phrozenkeep.hugelaser.com/forum/viewtopic.php?t=19653的汇编
--110--------------------------------------------
编辑D2Common.dll文件
查找83FD4B改为83FD64(4B是十进制75而64是十进制100)
其后间隔24个数字后有B84B改为B864
--111,113------------------------------------------
编辑D2Common.dll文件
查找83FF4B改为83FF64(4B是十进制75而64是十进制100)
其后间隔24个数字后有B84B改为B864
2012年04月08日 09点04分 15
level 7
格挡上限测试。uke带上盾牌,鼠标移到属性面板的防御上看格挡率,显示格挡几率100%。seme普通攻击uke,uke每次都做格挡动作,seme打了很久uke还是毫发无伤。

2012年04月08日 09点04分 16
level 7
PP数上限。暗黑原版最高只能设置为8PP,现在修改到最高127PP(128PP到255PP的数值会有问题这个在参考贴里已经说明,所以一般都是修改到127PP)。参考贴写的修改方法是按偏移地址修改,我转换为按特征码修改这样做兼容性更好。
参考https://tieba.baidu.com/p/646692974--110--------------------------------------------
编辑D2Client.dll文件
查找83F8088BF0,将83F808的08改为7F(7F是十进制127)。其后几个字节处有7C05BE08,将BE08的08也改为7F。
编辑D2Game.dll文件
查找83F9087F06,将83F908的08改为7F。
--111,113------------------------------------------
编辑D2Client.dll文件
查找83F8088BF8,将83F808的08改为7F(7F是十进制127)。其后几个字节处有7C05BF08,将BF08的08也改为7F。
编辑D2Game.dll文件
查找83F9087F06,将83F908的08改为7F。
2012年04月08日 10点04分 17
level 7
PP数上限的测试。uke建立单人游戏,按回车开启聊天输入,输入“/players 127”回车,屏幕提示“player set to 127”。出门砍一个僵尸,发现僵尸掉血很慢。

2012年04月08日 10点04分 18
level 7
神符之语底材成色限制。原版暗黑的神符之语只能用带孔白色装备作为底材,其他成色的带孔装备只会附加符文本身的属性而不能附加神符之语的超强属性。现在修改为所有成色的底材都能附加神符之语的超强属性,可以想象一下无形暗金双头斧【符文大师】做成的【死神】神符之语是一把什么武器。
以前抄录的某大神博客里的,不过摆渡一下也能找到很多。这些文章写到的修改方法都是按偏移地址修改,我也转成了按特征码修改,并发现暗黑三个版本的特征码修改方法完全一致。
--110、111、113--------------------------------------------
编辑D2Common.dll文件
查找0C8B0083F8047C05,将83F804的04改为0A(04灰色、0A所有成色、05蓝色、06绿色、07亮金、08暗金、09橙色)
2012年04月08日 10点04分 19
level 7
神符之语底材成色限制的测试。seme存档里有四件装备,可以看出无形暗金双头斧【符文大师】做成的【死神】神符之语的单手伤害是369-747。

2012年04月08日 10点04分 20
改了之后读取人物游戏报错,是和其他补丁有冲突吗
2018年12月19日 02点12分
用笔记本打开都是乱码,是用哪个软件打开呢
2020年04月09日 11点04分
level 7
雇佣兵全装备。虽然网上有补丁但无教程,所以自己用WinHex的二进制文件比较补丁和原版搞出来的,经测试无误。这里贴一下用WinHex比较文件的截图好了。
--110--------------------------------------------
编辑D2Client.dll文件
查找C0750C6A2556,将C075的75改为EB
查找C0752F6A22EB,将C075的75改为EB
查找C0750C6A2553,将C075的75改为EB
查找C00F8598000000,将0F8598000000改为E99900000090
编辑D2Game.dll文件
查找C0750C6A2556,将C075的75改为EB
查找C075626A1E56,将C075的75改为EB
--111、113--------------------------------------------
编辑D2Client.dll文件
查找C0750C6A2557,将C075的75改为EB
查找C0752F6A22EB,将C075的75改为EB
查找C0750C6A2553,将C075的75改为EB
查找FF85C00F85980000006A22E987,将0F8598000000改为E99900000090
编辑D2Game.dll文件
查找C0750C6A2556,将C075的75改为EB
查找C075616A2256,将C075的75改为EB
2012年04月08日 10点04分 22
按照你这个步骤来得可是为啥不行呀。唯一的变化就是什么武器都能拿了。
2013年03月03日 14点03分
这个DC6的文件能否分享一下
2020年01月09日 00点01分
FF85C00F85980000006A22E987这个没找到
2020年08月18日 08点08分
level 7
雇佣兵全装备的验证。seme雇佣一个萝格弓箭手,可以给她戴上手套、腰带、鞋子、项链、戒指。武器也不局限于弓类。

2012年04月08日 10点04分 23
楼主你好,我想请教一下1.13C只能一枚戒指嘛,可以改成双戒指嘛?
2020年08月18日 08点08分
我的1.11也需要双戒指
2021年04月11日 15点04分
level 7

命中下限上限。暗黑原版的命中率上限是95%,下限是5%。现在把上限改为100%,下限改为1%(下限改为0则面板无法命中率字符串)
参考http://phrozenkeep.hugelaser.com/forum/viewtopic.php?t=19653的汇编
,但参考贴的提示不完整,还需要修改其他地方才能实现,所以参考价值不大,还是靠碰运气猜测试验出110版的,但111、113版没试验出来。
--110--------------------------------------------
命中下限上限
编辑D2Game.dll文件
查找99F7F983F8057F09B805,将83F805的05改为01,将B805的05改为01(命中下限由5%改为1%)
几个字节之后有83F85F7D04,将83F85F的5F改为64,几个字节之后有EB05BB5F,将BB5F的5F改为64(命中上限由95%改为100%)
查找83FB057D05BB05,将83FB05的05改为01,将BB05的05改为01(命中下限由5%改为1%)
查找83FB5F7C0CBB5F,将83FB5F的5F改为64,将BB5F的5F改为64(命中上限由95%改为100%)
同步面板显示效果编辑D2Client.dll文件
查找99F7F983F8057D0C5E5DB805,将83F805的05改为01,将B805的05改为01(命中下限由5%改为1%)
几个字节之后有83F85F7E05B85F,将83F85F的5F改为64,将B85F的5F改为64(命中上限由95%改为100%)
查找83FB057D07BB05,将83FB05的05改为01,将BB05的05改为01(命中下限由5%改为1%)
查找83FB5F7E05BB5F,将83FB5F的5F改为64,将BB5F的5F改为64(命中上限由95%改为100%)
--111、113-------------------------------------------------
命中下限上限(未成功)
编辑D2Game.dll文件
查找99F7F983F805,将83F805的05改为01(命中下限由5%改为1%)
几个字节之后有83F85F8BC8,将83F85F的5F改为64,几个字节之后有7C05B95F,将B95F的5F改为64(命中上限由95%改为100%)
查找83FF057D05BF05,将83FF05的05改为01,将BF05的05改为01(命中上限由95%改为100%)
查找83FF5F7C0CBF5F,将83FF5F的5F改为64,将BF5F的5F改为64(命中上限由95%改为100%)
同步面板显示效果编辑D2Client.dll文件
查找99F7F95F5E83F8057D0D5BB805,将83F805的05改为01,将B805的05改为01(命中下限由5%改为1%)
几个字节之后有83F85F7E05B85F,将83F85F的5F改为64,将B85F的5F改为64(命中上限由95%改为100%)
查找83FB0556577D07BB05,将83FB05的05改为01,将BB05的05改为01(命中下限由5%改为1%)
查找83FB5F7E05BB5F,将83FB5F的5F改为64,将BB5F的5F改为64(命中上限由95%改为100%)
查找83F85F8BC87C05B95F,将83FB5F的5F改为64,将B95F的5F改为64(命中上限由95%改为100%)
2012年04月08日 10点04分 25
level 7
验证命中下限上限。99级人物seme在普通难度,鼠标移到属性面板的攻击比率上看对沉沦魔的命中率,显示100%。1级人物new在地狱难度,鼠标移到属性面板的攻击比率上看对沉沦魔的命中率,显示1%。

2012年04月08日 11点04分 26
level 7
关于staffmod必出3种技能,每种技能必加3级的修改。
关于staffmod的选择原理网上流传的主要是Go_Limyh翻译的hammerman的文章。但我并没有搜索到hammerman关于DLL的解析,仅仅是说了结论。4月6日上午我在ph里搜到一个帖子(http://phrozenkeep.hugelaser.com/forum/viewtopic.php?f=4&t=41377&p=294744&hilit=staffmod+function#p294744),该帖里Myhrginoc写到“Staffmods are selected in v1.10 by the function D2Game.6FC54690, which calls inner function D2Game.6FC52650 that actually picks the mods.”,于是终于有了一点苗头。

2012年04月08日 11点04分 27
level 7
用IDA分析D2Game.dll,发现函数D2Game.6FC52650存在大量和常数进行比较并跳转的分支结构,疑似是staffmod的选择代码。如图,很容易发觉[esp+2Ch+var_14]这个变量就是staffmod的技能种数。5A对应十进制90,也就是说有90%的概率不产生3种技能。

2012年04月08日 11点04分 28
level 7
向下找又找到了提高每种技能等级数的判断,其中5A就是90,表示有90%的概率不加3级技能。
2012年04月08日 11点04分 29
1 2 3 4 尾页