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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

暗黑mod发布网
搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4619|回复: 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
5 j% }) x9 |& c' ~6 O+ B' m; e9 J该教程仅限于暗黑1.13C2 o" B+ O' x* K

. H( X6 W4 d/ X8 v使用hex 16进制修改工具打开D2Common.dll
7 K( n' i* Y8 E0 u; {ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C, h4 ]+ ]5 J# Z& o# g9 p; V
% D7 U+ W& r5 L. T9 R# D+ O5 S
使用OD软件打开D2Common.dll,* n; `8 e- |- m! T
1、ctrl+G,跳转到6FDD87EB,输入以下代码0 [. z, N( B5 ^* L
  1. PUSH  6FDE4F60 ) g: D- Z: z3 ~5 [% ]2 {  H1 x
  2.     PUSH EBP 5 T5 j+ s3 k4 s/ P
  3.     MOV DWORD PTR SS:[ESP+20],ESI
    : w0 z" l* W' t- f' w* ?/ s. _
  4.     CALL 6FD51EC0
    % l- R. \* P- E* o: X* E6 O- k/ v
  5.     ADD ESP,8 ( e+ E9 K/ Z& M! o  |
  6.     TEST EAX,EAX
    4 _! B1 X( X) @! m7 X% s6 y
  7.     JNE 6FD6BAD0 ' S, b2 g0 W. `3 k+ `
  8.     MOV BYTE PTR DS:[EBX+8],4
    + R2 ~: T) [7 f3 I$ L4 W
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5
% R# }, D  e( F! F6 L* h  V- v
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
; M4 `1 P# s' i
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll
* u0 ~2 `( G3 b0 q; J  U4 G1、跳转到6FD17B0F
+ U3 A/ f- I1 E) f- ?6 i& d
  1. SUB ESP,1C : V7 y9 x% k& j' R; Q
  2.     PUSH EBP
    6 a7 A: x' w! B! ], C( C
  3.     MOV EBP,DWORD PTR SS:[ESP+24] 0 |! e9 O9 Z# k# k+ t
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
    $ H& }& c; }( t' O
  5.     MOV ECX,DWORD PTR DS:[EAX+8] ( y3 G0 d+ C4 C& k: C  [
  6.     MOV EAX,DWORD PTR DS:[EAX+0C]
    ! t8 {" q0 O9 n8 `0 Y& g" R" q
  7.     PUSH EBX 6 V3 i- Z9 @! l" Q/ F- U1 g
  8.     PUSH ESI : \' V; H* ]6 W9 d/ N) o' ?
  9.     PUSH EDI ; j+ `9 k% D% d0 k8 T; _& Q
  10.     PUSH 0B                                                          ( v- |' g9 w8 J0 _
  11.     PUSH 4                                                  
    * A7 O  a6 \; g; U, ]1 I
  12.     PUSH EAX                                                        
      J9 D# M7 W- J% E
  13.     CALL 6FC2A568            
    ' {  O: m' W/ X4 T* l! @
  14.     MOV ESI,DWORD PTR SS:[ESP+34]
    ' B+ c6 V/ A% N
  15.     PUSH ESI                                                                / C# y, W1 M0 ~5 i$ m" m! [
  16.     CALL 6FC2A4C0            
    6 ?0 S' h: r$ {: s- z4 M
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D] % H, \! y1 q; p2 [  ~
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    7 N9 }0 R* e  ^; g, T& [$ g
  19.     PUSH 0A                                                          4 {" ]/ z( \$ E9 ?
  20.     PUSH 4                                                         
    ' j. S. G" I5 q! Y
  21.     PUSH EAX                                                               
    6 T% M' v* e! ?  X; N) W
  22.     CALL 6FC2A568            " ]/ q/ ~4 N/ I; E6 o. B" D& ~- E
  23.     MOV EAX,DWORD PTR SS:[EBP+70]
    # u# k( G5 n) t
  24.     PUSH ESI                                                        7 g7 ^& e3 c. I! Z+ }! S
  25.     CALL 6FC2A4C0                    
    . g0 J/ T. R) A
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    ; @9 w; z2 q8 D( q3 R5 ?
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] ' q7 j7 v% T, O9 `
  28.     PUSH 0                                                  & l9 \& j- c: I8 ?0 b& s
  29.     PUSH 28                                                  8 }+ N2 x/ w; R0 }! r
  30.     PUSH EAX                                
    ' U% z2 Q! G5 a  I8 B4 n
  31.     CALL 6FC2A568                    
    , i+ P$ U- N& X1 m' g4 s
  32.     PUSH ESI                                
    ' W+ Q1 q- m; e" L$ Z. N/ d
  33.     CALL 6FC2A478            8 l$ i' `; V3 d' l% Z
  34.     MOV EDI,EAX
    - a/ F' t: P1 k$ W( P. M
  35.     PUSH EDI                        5 w: B- J9 X% T, I0 y" x  Y) j
  36.     CALL 6FC2A556    5 s& W# y4 R6 b3 f4 [1 X
  37.     CMP EAX,6D
    3 P. G7 k( `- }
  38.     JNE 6FD17C79 + X. X6 R% v  j/ [8 {/ M. D0 X
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    ; E# ~; e5 W; Z. o  ?" |. B0 F9 a
  40.     CMP CL,2
    6 s! y) v3 |0 z* n) I1 n
  41.     JNE 6FD17C79 ! Z: S3 a; i: Y7 U6 x& ~
  42.     LEA EDX,[ESP+24] ) B: x2 B5 k& j8 B
  43.     PUSH EDX                                       
    6 j$ J; i* G' t0 B; [) P$ X
  44.     PUSH ESI                                % F( i% f! l  ]% n- U
  45.     MOV DWORD PTR SS:[ESP+38],0
    3 t; M  C( C3 O+ h0 `
  46.     CALL 6FC2A544    $ a0 C+ O9 y& Y+ ~3 E
  47.     PUSH 64                  ' w" k/ m( [) v: ?) ^% |; `
  48.     LEA EAX,[ESP+34]
    + c! g" g) G1 G  N- k
  49.     PUSH EAX                          I& }( A1 N; A% J6 T! ~
  50.     PUSH 400                        
    9 ]5 |) L5 `  U! z4 R# C
  51.     PUSH 3                  6 L8 ?8 ]+ p! x3 g4 o# I9 a1 {
  52.     LEA ECX,[ESP+34]
    $ F- e$ s: z, [$ Q
  53.     PUSH ECX                                # Q4 o: Z" b' s5 H5 e$ I
  54.     PUSH EDI                        / I% S  U8 _" V! ^: l0 r
  55.     CALL 6FC54130            
    & F; H+ O- u0 E8 f& `9 v" ^( ~
  56.     MOV EDI,DWORD PTR SS:[ESP+30] $ A; Z' D4 q; W3 ~# R; g
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    ! }1 |+ t  P8 k+ h* m. ?7 H
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    ' }. Q0 J. u/ d6 {8 T
  59.     MOV DWORD PTR SS:[ESP+14],EDX 5 `6 R2 v0 f) ~0 A
  60.     MOV DWORD PTR SS:[ESP+10],EAX / }2 G9 J0 B9 }; g8 o1 l
  61.     PUSH EDI                        
    ! ~" E9 x/ s4 |
  62.     CALL 6FC2A808   
    , u$ x* h7 q8 Y! e, o, y1 E
  63.     PUSH 27                  
    : W. A, `5 ~$ G1 ~& e8 V
  64.     CALL 6FC2A56E   
    8 m3 T1 D+ D3 w/ C0 G4 H) L
  65.     PUSH EDI                        
    " R  {' X$ v! U
  66.     MOV BL,AL        ! p0 D2 `4 F* t) _  l
  67.     CALL 6FC2A556
    4 D- \/ W1 \" t$ g8 u
  68.     PUSH EAX                        0 a- \6 l8 y0 ~7 D
  69.     MOV DWORD PTR SS:[ESP+1C],EAX ! {1 S" }# }: Q5 m% I* e
  70.     CALL 6FC2A56E 7 b% G# x  @! e: O4 t1 c
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
    4 E" g' ?0 l+ S. u0 D
  72.     MOV EDX,DWORD PTR SS:[ESP+14] ; \+ P7 b" u, z9 r* G. H
  73.     PUSH 0          & D& I  Q! G1 {4 f% S
  74.     PUSH 0C01
    ! Z' p$ Y( X' J$ q6 N
  75.     PUSH 3E01 8 V5 s, A: A- ?* Z
  76.     PUSH 3
    ; ?' B$ n( r) E/ w
  77.     LEA EAX,[ESP+2C]                + K/ S% M) i) z  y; M& |
  78.     MOV DWORD PTR SS:[ESP+2C],ECX $ |* G4 C( d, g5 P' l* I$ D
  79.     PUSH EAX                ; L" ^* v& d+ Z% Y" r
  80.     MOV ECX,EAX      
    4 d7 S* O! T# ]
  81.     PUSH ECX                , O% Y8 c2 h4 d3 v1 u
  82.     PUSH EDI                        4 ]/ ?$ W# W& ?3 v
  83.     MOV DWORD PTR SS:[ESP+3C],EDX
      Q5 m1 h2 U1 ?# a- l# F
  84.     CALL 6FC2AE98   
    ' u  X7 \' C9 V+ H, Q: d
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    1 \5 y2 k5 Q* Y# V  {& t" z
  86.     MOV EDI,DWORD PTR SS:[ESP+20] % h$ U2 h) u) r* H4 i
  87.     MOV EAX,DWORD PTR SS:[ESP+30]
    $ s/ I& k6 C+ l  T( {
  88.     MOV DWORD PTR SS:[ESP+10],EBX 2 I$ G) O! b5 w( M7 ?0 y& K. y; f7 N
  89.     MOV DWORD PTR SS:[ESP+14],EDI 8 X" n4 \  t! h
  90.     CALL 6FC21280 , i) F4 K5 k" E. K' v2 M
  91.     MOV EDI,EAX 4 z; [3 H) h# ?. F' @, E
  92.     MOV EDX,DWORD PTR SS:[ESP+14] ' w3 f. M$ ^4 y' C  o
  93.     PUSH 0         
    & \& d( o0 ?3 r6 h" e
  94.     PUSH 1          - j0 [* b& j6 W$ {. w& Z+ P1 e
  95.     PUSH 1
    5 ]) v  u: g5 M4 i
  96.     PUSH EDI        
    * S6 S) i. E4 m5 u% O
  97.     PUSH EBP        % B6 b4 ]; P" T; f2 Z
  98.     PUSH EDX        ) j, M9 Z# {7 F- @# x& i
  99.     MOV EAX,EBX      6 Y9 M7 `+ b$ v1 ]7 Y4 P7 `. d
  100.     PUSH EAX        . J: w9 O* z8 U( o" T) c5 [/ a4 H/ C
  101.     MOV EDX,3C      
    3 w+ h# s& l: r0 K  m, y: e
  102.     MOV ECX,2        ! B; b* r4 G: c5 c- ~6 j# A
  103.     CALL 6FD01D90   
    5 O0 i: O0 @; J7 F5 j5 ~
  104.     MOV ESI,EAX " ^9 c( ?; t  W4 x/ k9 Y
  105.     PUSH 1
    0 F7 Y: L" T$ g6 {, Q. \5 t
  106.     PUSH ESI
    . F. e# h: |% `; t4 D) s( Q
  107.     CALL 6FC2A4A2
    + w7 X0 M# I2 P- k7 d
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
    ' m$ M3 p$ P( n4 ?
  109.     PUSH ECX                        2 R' Z! M: h/ n* f9 {+ d8 f1 g" o
  110.     PUSH 88                          
    ' c6 Q, d% L! P2 ?  I) ~
  111.     PUSH ESI                        8 _9 e2 y1 [) D* Y3 S9 v+ t7 W' U
  112.     PUSH EBP        . M* j  M6 h% l! _9 I0 L! I
  113.     CALL 6FCC22E0    3 H% x; i4 z7 r0 u+ o! V, Y, ^: z
  114.     POP EDI 6 R, E% C& S7 d+ j
  115.     POP ESI - L$ |0 f2 [: Z
  116.     POP EBX
    6 \+ r: P6 ]) l- t' \; q  I
  117.     MOV EAX,1
    5 \- h, a5 M2 _6 @" [) l
  118.     POP EBP 4 y, j' }" U& {" X
  119.     ADD ESP,1C
    4 [9 E0 _7 T3 z/ Q/ h3 x
  120.     RETN 8
    % N9 i# K4 M  Y
  121.     PUSH ESI ) l% T) ?% \5 x
  122.     MOV WORD PTR DS:[ESI+6E],14 / w4 ]5 S$ w& i
  123.     MOV DWORD PTR DS:[ESI+70],ESI
    ! a6 I: J4 U# {, [' N! q: I+ d
  124.     CALL 6FC2A4DE
    8 y8 o6 G0 D6 |5 N0 T/ Z
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4] 2 G; m: r3 G0 d+ D) t3 g
  126.     OR EAX,00000400
    : K4 v) o9 n5 w3 e3 m3 Q. M
  127.     POP EDI
      F, x% u) W# N
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX ( L# X0 F1 L# d6 P( [$ r. h
  129.     POP ESI - M. c) ]: X7 U, [$ p- C# B
  130.     POP EBX
    , m+ w; f$ s7 v) O
  131.     XOR EAX,EAX + U) r; v+ x# c1 F# a
  132.     POP EBP
    ) Q9 A9 z" Y* w( O7 X
  133.     ADD ESP,1C 6 Q6 {- S  y, r; h
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。
* H* L. U# @7 A地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。# O; W- \8 L* C9 J
. a& q1 N6 z+ ^# F  [
修改的限制代码为:
7 ]; `: s. N# `+ w3 N
  1. 地址= 6FD17B75      
    ; O7 c% Q0 u1 j+ J3 }$ ~( x- t
  2.     CMP EAX,6D         6D为第五幕城内% K* H/ o, L9 Q3 X
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    % y2 x* I/ l6 B* c# t
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    ! |6 [" k. [2 p/ i1 w, |- j
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱! q( \0 Y2 a* v- v. v0 p$ {- Y
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。
2 c7 o- l- J: p
3 ?; I% @" Y+ k5 U/ M3 J! x" S修改箱子合成部分: F4 |, P+ X$ v, K
1、d2game.dll,跳转至6FC924176 h5 _! D" S( w6 z7 c
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
9 v: t- U: F. |4 e$ Y5 R) a& i
  1. CMP AL,4 ' J/ I  x  I( _6 Q) e1 F" ~: n
  2.     JE SHORT 6FD17AE4 ! Z  R& V; x/ z6 `, [- U
  3.     MOVZX ECX,AL ) s" P2 q+ x/ `  d; v
  4.     JMP 6FC9241E
复制代码
' V5 i& e! O6 I; {) g/ S* M% J
3、跳转至6FD17AE45 Y2 Y9 Y* ?2 K
  1. MOV EDX,DWORD PTR SS:[ESP+12C] : ]0 d$ D" s! h) `, C4 a
  2.     MOV ECX,DWORD PTR SS:[ESP+128]
    ) ?& E6 ]; `( p% S  I
  3.     CALL 6FD17A2B * o7 U. s* w" V5 i/ J
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B; b  q' H' Y" Q! D3 n* r
  1. PUSH EDX
    2 t/ n: `7 H: L
  2.     PUSH ECX
    ) c5 ], p0 G9 o$ w* u7 q
  3.     CALL 6FD17B0F    0 U. u5 L( o3 k2 [0 C
  4.     RETN
复制代码

4 r0 g- t+ V+ `/ x! p* E' I# n, U
' R- c$ }: I, I1 dDLL部分修改完毕。! z5 f2 d5 W& n! V; Z9 L6 e4 I
在cubemain.txt 添加改红门开启的设定" u) k+ p, u, S2 Z+ {
条件设定自行定义,在output处填入Portal即可0 h* w. G$ M, ?7 D7 ^# f2 C
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇9 D, q9 X4 i$ C+ e9 p" U+ D2 ]; e
经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error% }8 m0 Y. V& b3 g: [) _: d
, X3 ]  o+ c: n& n# I/ Z' n
然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-19 20:40 , Processed in 0.060435 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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