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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4188|回复: 2
收起左侧

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

[复制链接]
  • TA的每日心情
    开心
    6 天前
  • 签到天数: 10 天

    [LV.3]卷轴印记

    912

    主题

    297

    元宝

    2382 小时

    在线时间

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    297
    发表于 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-2-22 14:57 , Processed in 0.151377 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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