生活情怀-神话暗黑-暗黑破坏神2

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4143|回复: 2
收起左侧

修改DLL实现赫拉迪克方块合成新红门

[复制链接]

715

主题

830

元宝

2351 小时

在线时间

管理员

Rank: 9Rank: 9Rank: 9

积分
830
发表于 2018-8-29 20:12:12 | 显示全部楼层 |阅读模式
转载:http://diablo.phx.pl/forum/viewtopic.php?t=62242
该教程仅限于暗黑1.13C

使用hex 16进制修改工具打开D2Common.dll
ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C

使用OD软件打开D2Common.dll,
1、ctrl+G,跳转到6FDD87EB,输入以下代码
  1. PUSH  6FDE4F60
  2.     PUSH EBP
  3.     MOV DWORD PTR SS:[ESP+20],ESI
  4.     CALL 6FD51EC0
  5.     ADD ESP,8
  6.     TEST EAX,EAX
  7.     JNE 6FD6BAD0
  8.     MOV BYTE PTR DS:[EBX+8],4
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll
1、跳转到6FD17B0F
  1. SUB ESP,1C
  2.     PUSH EBP
  3.     MOV EBP,DWORD PTR SS:[ESP+24]
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
  5.     MOV ECX,DWORD PTR DS:[EAX+8]
  6.     MOV EAX,DWORD PTR DS:[EAX+0C]
  7.     PUSH EBX
  8.     PUSH ESI
  9.     PUSH EDI
  10.     PUSH 0B                                                         
  11.     PUSH 4                                                  
  12.     PUSH EAX                                                        
  13.     CALL 6FC2A568            
  14.     MOV ESI,DWORD PTR SS:[ESP+34]
  15.     PUSH ESI                                                               
  16.     CALL 6FC2A4C0            
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
  19.     PUSH 0A                                                         
  20.     PUSH 4                                                         
  21.     PUSH EAX                                                               
  22.     CALL 6FC2A568            
  23.     MOV EAX,DWORD PTR SS:[EBP+70]
  24.     PUSH ESI                                                        
  25.     CALL 6FC2A4C0                    
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
  28.     PUSH 0                                                  
  29.     PUSH 28                                                  
  30.     PUSH EAX                                
  31.     CALL 6FC2A568                    
  32.     PUSH ESI                                
  33.     CALL 6FC2A478            
  34.     MOV EDI,EAX
  35.     PUSH EDI                        
  36.     CALL 6FC2A556   
  37.     CMP EAX,6D
  38.     JNE 6FD17C79
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
  40.     CMP CL,2
  41.     JNE 6FD17C79
  42.     LEA EDX,[ESP+24]
  43.     PUSH EDX                                       
  44.     PUSH ESI                                
  45.     MOV DWORD PTR SS:[ESP+38],0
  46.     CALL 6FC2A544   
  47.     PUSH 64                  
  48.     LEA EAX,[ESP+34]
  49.     PUSH EAX                        
  50.     PUSH 400                        
  51.     PUSH 3                  
  52.     LEA ECX,[ESP+34]
  53.     PUSH ECX                                
  54.     PUSH EDI                        
  55.     CALL 6FC54130            
  56.     MOV EDI,DWORD PTR SS:[ESP+30]
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
  59.     MOV DWORD PTR SS:[ESP+14],EDX
  60.     MOV DWORD PTR SS:[ESP+10],EAX
  61.     PUSH EDI                        
  62.     CALL 6FC2A808   
  63.     PUSH 27                  
  64.     CALL 6FC2A56E   
  65.     PUSH EDI                        
  66.     MOV BL,AL        
  67.     CALL 6FC2A556
  68.     PUSH EAX                        
  69.     MOV DWORD PTR SS:[ESP+1C],EAX
  70.     CALL 6FC2A56E
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
  72.     MOV EDX,DWORD PTR SS:[ESP+14]
  73.     PUSH 0         
  74.     PUSH 0C01
  75.     PUSH 3E01
  76.     PUSH 3
  77.     LEA EAX,[ESP+2C]               
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
  79.     PUSH EAX               
  80.     MOV ECX,EAX      
  81.     PUSH ECX               
  82.     PUSH EDI                        
  83.     MOV DWORD PTR SS:[ESP+3C],EDX
  84.     CALL 6FC2AE98   
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
  87.     MOV EAX,DWORD PTR SS:[ESP+30]
  88.     MOV DWORD PTR SS:[ESP+10],EBX
  89.     MOV DWORD PTR SS:[ESP+14],EDI
  90.     CALL 6FC21280
  91.     MOV EDI,EAX
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
  93.     PUSH 0         
  94.     PUSH 1         
  95.     PUSH 1
  96.     PUSH EDI        
  97.     PUSH EBP        
  98.     PUSH EDX        
  99.     MOV EAX,EBX      
  100.     PUSH EAX        
  101.     MOV EDX,3C      
  102.     MOV ECX,2        
  103.     CALL 6FD01D90   
  104.     MOV ESI,EAX
  105.     PUSH 1
  106.     PUSH ESI
  107.     CALL 6FC2A4A2
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
  109.     PUSH ECX                        
  110.     PUSH 88                          
  111.     PUSH ESI                        
  112.     PUSH EBP        
  113.     CALL 6FCC22E0   
  114.     POP EDI
  115.     POP ESI
  116.     POP EBX
  117.     MOV EAX,1
  118.     POP EBP
  119.     ADD ESP,1C
  120.     RETN 8
  121.     PUSH ESI
  122.     MOV WORD PTR DS:[ESI+6E],14
  123.     MOV DWORD PTR DS:[ESI+70],ESI
  124.     CALL 6FC2A4DE
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4]
  126.     OR EAX,00000400
  127.     POP EDI
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX
  129.     POP ESI
  130.     POP EBX
  131.     XOR EAX,EAX
  132.     POP EBP
  133.     ADD ESP,1C
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。

修改的限制代码为:
  1. 地址= 6FD17B75      
  2.     CMP EAX,6D         6D为第五幕城内
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。

修改箱子合成部分
1、d2game.dll,跳转至6FC92417
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
  1. CMP AL,4
  2.     JE SHORT 6FD17AE4
  3.     MOVZX ECX,AL
  4.     JMP 6FC9241E
复制代码

3、跳转至6FD17AE4
  1. MOV EDX,DWORD PTR SS:[ESP+12C]
  2.     MOV ECX,DWORD PTR SS:[ESP+128]
  3.     CALL 6FD17A2B
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B
  1. PUSH EDX
  2.     PUSH ECX
  3.     CALL 6FD17B0F   
  4.     RETN
复制代码


DLL部分修改完毕。
在cubemain.txt 添加改红门开启的设定
条件设定自行定义,在output处填入Portal即可
神话战网出品,必出精品!

嫌怪物和地图素材太小???赶紧找我定制吧!!!
QQ:281886256
回复

使用道具 举报

0

主题

0

元宝

19 小时

在线时间

罗格猎人

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇
经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

0

主题

0

元宝

1 小时

在线时间

罗格猎人

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error

然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|神话暗黑 ( 陕ICP备18004004号-1 )

GMT+8, 2026-1-22 07:46 , Processed in 0.064625 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表