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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

361

回帖

830

元宝

1

圣者绑元

管理员

Rank: 9Rank: 9Rank: 9

积分
1
发表于 2018-8-29 20:12:12 | 显示全部楼层 |阅读模式
转载:http://diablo.phx.pl/forum/viewtopic.php?t=62242
; ?' }  l, }9 @* Y) A2 W2 j该教程仅限于暗黑1.13C) `3 c1 s$ m  z9 J5 i! U9 L
  s$ o" h. q; ~4 p
使用hex 16进制修改工具打开D2Common.dll
$ f0 W2 s; q# ^5 S8 }' N: Qctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C
1 Q' r, G) j, P1 j( K
1 T" U8 Q, ^5 F) j使用OD软件打开D2Common.dll," R2 r7 P6 C3 W! `. [# k
1、ctrl+G,跳转到6FDD87EB,输入以下代码
4 h" r1 x$ k! q; f+ `
  1. PUSH  6FDE4F60 " y+ o; H( f) a3 ]% t% ^' H
  2.     PUSH EBP
    / U4 B5 k# n0 m7 \( _/ \' [% S
  3.     MOV DWORD PTR SS:[ESP+20],ESI 3 |0 v7 d: i% u9 \
  4.     CALL 6FD51EC0 % I6 N( t3 g" D* ?
  5.     ADD ESP,8 # \5 M4 O% s8 `0 M; }5 r: k
  6.     TEST EAX,EAX
    ; h1 d" ?$ D# T4 h
  7.     JNE 6FD6BAD0 , G/ a* _" j- k. }8 }* g
  8.     MOV BYTE PTR DS:[EBX+8],4
    ; J- K5 }* J7 D
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC59 O7 F0 [1 }: Y( Y
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A" q# i7 F" f( C2 U4 _$ H
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll
- d' x" r1 q; G) S1 s$ Z1、跳转到6FD17B0F* `- f5 T: F( G/ [  g* C4 ~- {
  1. SUB ESP,1C
      A# W6 P; L7 c& N9 O1 \$ m
  2.     PUSH EBP 6 j+ M- P  f; n9 W
  3.     MOV EBP,DWORD PTR SS:[ESP+24] ' r2 n# [3 \8 Z3 k9 P0 R
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
    2 j2 l5 E( ]5 Q6 g0 q8 g
  5.     MOV ECX,DWORD PTR DS:[EAX+8] ) C. I- N" o# d; D  K0 q" A, Q
  6.     MOV EAX,DWORD PTR DS:[EAX+0C]
    0 r* s. ~) U) F* p
  7.     PUSH EBX ' r# S/ |' \5 _" u
  8.     PUSH ESI
    ! ]4 u- g' F3 Z* ?/ S6 }
  9.     PUSH EDI & h3 u7 e4 p% K7 `" ~
  10.     PUSH 0B                                                         
    4 e) R6 y4 ^8 z: e
  11.     PUSH 4                                                  % t3 w' [; }: i
  12.     PUSH EAX                                                        4 n/ z. J2 a0 H( B/ |% ^2 Z! c5 ~
  13.     CALL 6FC2A568            # [. P2 i/ V" k$ p
  14.     MOV ESI,DWORD PTR SS:[ESP+34]
    " N. J4 y7 X- ?9 }4 |
  15.     PUSH ESI                                                               
    9 I: S, r3 k$ P4 G: B& |& \
  16.     CALL 6FC2A4C0            ! P/ b  E# T% O" t) w2 B
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    ) z( ~3 x9 w% d3 Z2 H# s& c; f, a
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] , d: r+ f& Z4 h1 U9 p& f
  19.     PUSH 0A                                                         
    4 R3 I1 p7 v- r0 Q9 `6 b
  20.     PUSH 4                                                          + }7 |& p5 Q2 a8 e6 c4 t+ s; p' V
  21.     PUSH EAX                                                               
    / ^0 ]2 [7 e9 e* A0 X% u
  22.     CALL 6FC2A568            
    - j: `1 B9 S2 F' _2 b
  23.     MOV EAX,DWORD PTR SS:[EBP+70] 6 A. }  Q6 K4 L+ o% ^
  24.     PUSH ESI                                                        
    9 C! W: {, U, v; F! v! A2 a# n
  25.     CALL 6FC2A4C0                    
    % k8 l# @/ f! c+ G
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    : j0 q; W; U# |& }; X6 _5 I
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    * G4 g/ P, \9 P
  28.     PUSH 0                                                  9 R7 i/ O. ^# w$ z+ V
  29.     PUSH 28                                                  
    ! a" n- P- B- [! W. J  n2 x
  30.     PUSH EAX                                9 e% Y, U, x" u* g2 B
  31.     CALL 6FC2A568                    
    ) _& M: X, o& @
  32.     PUSH ESI                                * I8 V$ e7 z' z" U
  33.     CALL 6FC2A478            ) J) I2 s$ }  ~8 m# O
  34.     MOV EDI,EAX & c- N  T+ J# \/ g7 W! ]! t( N+ i6 ^7 W
  35.     PUSH EDI                        
    * n9 e$ |1 n* G; D2 b  |
  36.     CALL 6FC2A556   
    7 E, |  C) ^8 o9 J. [5 Z. f
  37.     CMP EAX,6D
    $ f& X- P: c# }2 q7 i5 Z
  38.     JNE 6FD17C79
      \- H9 F' {4 |
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    , u5 m+ A2 \. ~2 e8 \
  40.     CMP CL,2 4 \( a* U* d6 g  |3 ^' C/ |" p: x0 S
  41.     JNE 6FD17C79 5 T4 o$ X+ A* j
  42.     LEA EDX,[ESP+24] 3 w, F- N1 S( V6 ]
  43.     PUSH EDX                                       
    7 u1 R  Z$ `3 y" k1 d2 @6 r
  44.     PUSH ESI                                
    7 S  Z: }% L- ]* ]! o6 V9 m5 o6 ]
  45.     MOV DWORD PTR SS:[ESP+38],0
    + A* q% i  X4 t% g7 F0 _& F
  46.     CALL 6FC2A544   
    & u+ |8 t  t! \' z8 N1 g" w
  47.     PUSH 64                  
    + n% G% d# n% L5 _+ P
  48.     LEA EAX,[ESP+34] $ n8 `+ p: v/ W: s7 O. w! S& S
  49.     PUSH EAX                        # d8 B9 a2 N* y, Q
  50.     PUSH 400                        % `1 [% p5 }4 N
  51.     PUSH 3                  
    $ M* t9 X1 i6 i7 A) l( \
  52.     LEA ECX,[ESP+34]
    + [# `1 F% _. x5 j
  53.     PUSH ECX                                
    % |- V# w6 D) s' m
  54.     PUSH EDI                        
      F% p/ Q0 }0 G7 v
  55.     CALL 6FC54130            
    ) T4 J: |0 c- ~5 c2 @
  56.     MOV EDI,DWORD PTR SS:[ESP+30] 5 G7 f& n# e" l, M' L4 b: n, I
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    6 E+ H( H/ m/ }+ x& G
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    ) K0 h; B% m) M3 b
  59.     MOV DWORD PTR SS:[ESP+14],EDX
    4 F5 V" @2 o% p
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    $ u) K- U8 x' l* t) O9 m4 b
  61.     PUSH EDI                        
    ; f) y4 J8 F7 T' e; a" p( R/ c: K
  62.     CALL 6FC2A808   
    ; Q4 H4 m1 J$ d8 z  [- J
  63.     PUSH 27                  * f- _+ p  @- ]' Z6 M. v
  64.     CALL 6FC2A56E    * ^: l0 K9 D4 U$ c# D
  65.     PUSH EDI                        + W5 T8 t; |% r5 {: d* R, P: Q
  66.     MOV BL,AL        - F* w' s* s: N2 r$ D. r! c( \
  67.     CALL 6FC2A556 * Q! |4 h' c; S
  68.     PUSH EAX                        , n( M! M3 f" r! m& z
  69.     MOV DWORD PTR SS:[ESP+1C],EAX : u' c) f5 `! V/ a/ [
  70.     CALL 6FC2A56E
    % o3 n4 v" d# C$ ?, i- l( k7 ]1 P
  71.     MOV ECX,DWORD PTR SS:[ESP+10] " ^: F9 |: l, f
  72.     MOV EDX,DWORD PTR SS:[ESP+14] " L0 }5 z4 H% R4 s7 }, H* [9 v
  73.     PUSH 0         
    + E7 `$ R- }$ M' G
  74.     PUSH 0C01
    8 P4 i) I* b, K+ z, g
  75.     PUSH 3E01 5 A; T' X, k" D1 b; F" a: F3 M& Q
  76.     PUSH 3
    9 s4 [' z  P8 m2 K( ]6 F7 A$ m/ W
  77.     LEA EAX,[ESP+2C]               
    7 }! _* _3 U  ^! Z; Y5 U  |
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    / G/ h8 b  O( p2 [+ ^
  79.     PUSH EAX               
    " A, v1 E6 n2 f- `
  80.     MOV ECX,EAX      - n" o; i* l7 F0 }9 A- r  t
  81.     PUSH ECX                & W* i) h2 ~% x4 w! T, _
  82.     PUSH EDI                        
    % i3 v6 @6 g* H8 Y
  83.     MOV DWORD PTR SS:[ESP+3C],EDX
    " k$ H4 W; O2 j; Q( s" ^; i
  84.     CALL 6FC2AE98    . S( c9 l$ E" {$ U2 d, Z
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    2 Z1 g; ^9 g) |# c  g) J! q$ p
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    6 u) ^  E6 ~5 v& p4 O5 \9 J
  87.     MOV EAX,DWORD PTR SS:[ESP+30]
    6 A8 X$ O1 p; u, ^7 Q0 C( U- T, w- ?
  88.     MOV DWORD PTR SS:[ESP+10],EBX . `. ~* F' s7 }; E5 Y
  89.     MOV DWORD PTR SS:[ESP+14],EDI
    4 q5 f7 A2 k8 ~; N! V  Y6 J
  90.     CALL 6FC21280
    ) N1 X; p% u$ i: U
  91.     MOV EDI,EAX 3 B% T( r. g- f+ T. e: W
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
    + I- V" f3 M: E( X7 s5 z$ u4 ]0 h' k% |
  93.     PUSH 0         
    ! Q1 K+ ~% r8 ~# y) x7 J
  94.     PUSH 1            U7 `2 @, H9 S. y& O
  95.     PUSH 1 " s: B4 `4 c0 P( t
  96.     PUSH EDI        ! ?  [4 t+ M* C
  97.     PUSH EBP        
    1 B- C$ G7 x& M; c9 t7 v( w7 s
  98.     PUSH EDX        1 h8 N2 i# x* K5 O4 V
  99.     MOV EAX,EBX      
    $ b7 v6 l6 P5 n3 L
  100.     PUSH EAX        
    # r" m: V1 n, z$ k, L6 I. }  d5 X% \
  101.     MOV EDX,3C      + n; y  h+ K, G4 c
  102.     MOV ECX,2        ' r: y  W) B/ Q. J" h
  103.     CALL 6FD01D90   
    $ j( ?( V' ^/ ^4 _, x
  104.     MOV ESI,EAX + n3 L( l. s, x
  105.     PUSH 1
    2 r3 P5 d# s) Z2 R5 V$ }" q3 z
  106.     PUSH ESI 1 s/ q" K8 b8 u
  107.     CALL 6FC2A4A2 : s" Y% N* O- B2 r9 X
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
    - Q" d, l* G- J5 ?
  109.     PUSH ECX                        
    # w: f' r9 |. i# S+ i
  110.     PUSH 88                          
    7 |1 I4 b& B$ l. z* {
  111.     PUSH ESI                        , p9 l7 l6 b2 N2 V  {. V
  112.     PUSH EBP        1 }- v$ v- C4 P$ M; m, M* B
  113.     CALL 6FCC22E0   
    ( Z0 s( r2 i/ v4 w
  114.     POP EDI $ f! c) g5 h- O& l5 R
  115.     POP ESI
    * z6 u* o- A* \/ O. O; ~. c
  116.     POP EBX
    ) x) Q' W# J: x9 |
  117.     MOV EAX,1 1 D+ D% M! W! @( e* i
  118.     POP EBP # \! b4 I" g  L
  119.     ADD ESP,1C
    + B( o7 O( `0 N, C: c3 l7 @) i
  120.     RETN 8 : L1 ^, G2 F1 _9 V9 [* w+ {
  121.     PUSH ESI
    & H$ A' v/ @# T! L) E
  122.     MOV WORD PTR DS:[ESI+6E],14 & u4 m- q3 j! q( r
  123.     MOV DWORD PTR DS:[ESI+70],ESI
    5 z* _1 U9 \. K. A' `7 ~
  124.     CALL 6FC2A4DE
    " _9 D) F, L( N0 U! c: p
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4]
    ! y9 R9 F0 G1 }) @. m4 f
  126.     OR EAX,00000400
    / {8 |) O7 E4 P! R" d
  127.     POP EDI
    . p' A1 I" E# v$ T/ p
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX
    1 x4 A6 Q" j! V# R7 Z
  129.     POP ESI
    ' B. R* R* G8 x# s$ X) M
  130.     POP EBX ( j+ ], b# a* Q! r6 Y- o+ ~
  131.     XOR EAX,EAX
    2 X) r5 B& V/ G$ [) U( {5 p8 z+ i1 e
  132.     POP EBP 6 R0 b4 |/ W6 r* A' `& L, p
  133.     ADD ESP,1C 3 u3 L, W' K: k- w  m+ `; S
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。
- ^  P3 ?0 D6 A6 Q地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。8 R0 f7 ]1 p! f
2 n( _4 v9 |: i, I5 @
修改的限制代码为:3 N6 j) |( b1 u/ a( V$ d, o0 l0 _
  1. 地址= 6FD17B75      
    8 [! n3 A( e: V0 N2 {  {
  2.     CMP EAX,6D         6D为第五幕城内2 Y& n. i( O# I4 d$ U
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E + T2 f( |- L: [% b& ]9 C9 B" g3 r
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内9 M. q7 E6 _5 w& ~! X" y
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱
    ! l  G, q$ z' O/ A/ i8 A
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。# B" s, v, o/ ?$ [5 o
; M! a  a8 [; ]  F" [6 h
修改箱子合成部分( Y5 Q2 t" [: h& {1 q
1、d2game.dll,跳转至6FC92417
* \, H- Z; J6 I3 T- N$ u! E3 S
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
6 b6 Y+ i& X4 X2 c- x
  1. CMP AL,4 . a- ~; s/ {; J' K' F
  2.     JE SHORT 6FD17AE4
    ; L) U' D: n: X# W1 G
  3.     MOVZX ECX,AL
    4 O. W5 @2 [# m1 ~* B# x
  4.     JMP 6FC9241E
复制代码
- }4 U; L# h2 t, d& R- A+ O
3、跳转至6FD17AE4  s2 o+ G- {/ `+ t5 c- G, O
  1. MOV EDX,DWORD PTR SS:[ESP+12C] 2 S9 K% K! T/ x6 D9 F0 p
  2.     MOV ECX,DWORD PTR SS:[ESP+128] 6 L+ o9 j* E% P1 J8 M5 Q2 e" Z
  3.     CALL 6FD17A2B
    % d, |/ f8 @2 D' E! J
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B
6 I8 u$ g/ e  |& v4 _
  1. PUSH EDX
    " C# R% B) |9 B7 q( D/ T. w- s
  2.     PUSH ECX # ?' g7 Q  R% T$ y5 x
  3.     CALL 6FD17B0F   
    $ C4 w: t) y. {7 g+ x
  4.     RETN
复制代码
6 Z; j, `/ t2 r1 H1 J9 d

: C. E! j2 G# LDLL部分修改完毕。
7 x7 z( Y0 p  Z* R0 ?在cubemain.txt 添加改红门开启的设定" o8 V) @; L( C& }
条件设定自行定义,在output处填入Portal即可( F, n5 ]- g3 @- m
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

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

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error
1 c; N# O  D) ~. J  k
4 Q4 a) Z9 T0 Y, L, W; s, y- E然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-31 15:05 , Processed in 0.118695 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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