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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

428

回帖

830

元宝

1

圣者绑元

管理员

Rank: 9Rank: 9Rank: 9

积分
1
发表于 2018-8-29 20:12:12 | 显示全部楼层 |阅读模式
转载:http://diablo.phx.pl/forum/viewtopic.php?t=62242( X& G# i8 o; J9 J. L+ N5 V
该教程仅限于暗黑1.13C6 l) ~# H: V* S6 C+ g$ J
5 {, y% B9 x: R
使用hex 16进制修改工具打开D2Common.dll8 v, W6 K- ~9 \# }: \" _
ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C. K  Z' a8 {" s1 Y) E7 G

8 {' s$ B. N2 f3 \9 h& L+ C- Z使用OD软件打开D2Common.dll,) W9 c* K5 ^% X' l5 [5 V2 T( W  E
1、ctrl+G,跳转到6FDD87EB,输入以下代码
* n) T7 s9 o7 O4 H( F
  1. PUSH  6FDE4F60
    " B0 c8 a& q# z# }! b5 `. k
  2.     PUSH EBP
    ) }2 k+ a! A9 L9 \" [7 u
  3.     MOV DWORD PTR SS:[ESP+20],ESI
    ; m) q) D; o+ s1 O
  4.     CALL 6FD51EC0
    : F  E6 o. O5 k0 B2 Z! P: n) |
  5.     ADD ESP,8 % V: b$ s) P0 `' c# X
  6.     TEST EAX,EAX
    ; }6 R4 i3 J; @6 b7 M' P
  7.     JNE 6FD6BAD0
    6 {/ ]; ]& I  m
  8.     MOV BYTE PTR DS:[EBX+8],4 $ H5 _! ]1 y7 R: h
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5
: x! s8 E% b3 K. [3 |0 ^- O/ R
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
1 X, e9 c% q( n: n1 q- R! Q* b- v2 g
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll
) p$ C! z) F* x# c3 x" k5 w1、跳转到6FD17B0F: A$ W& @3 ]; T: t
  1. SUB ESP,1C
    ) N4 p) e5 A4 l5 r
  2.     PUSH EBP
    4 S2 y  J* |$ u5 `. W2 w9 M- ^6 p' v1 L
  3.     MOV EBP,DWORD PTR SS:[ESP+24] 0 n* E+ |: k4 `6 ?
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
    3 D& ^9 p( a  J- n
  5.     MOV ECX,DWORD PTR DS:[EAX+8] . J4 \" r/ P" Z/ l) b$ k* Z1 A
  6.     MOV EAX,DWORD PTR DS:[EAX+0C] & a6 ?; l0 F9 |4 S; |
  7.     PUSH EBX
    3 M+ P, K  w; m! z
  8.     PUSH ESI
    / \+ O+ V! W4 t3 K2 ?
  9.     PUSH EDI " x* e( q$ Z/ M6 r3 U! F; l- b+ ?3 O
  10.     PUSH 0B                                                         
    0 L4 E- g- ]5 U' k; ^# z& j" A0 _
  11.     PUSH 4                                                  
    1 t: a4 D% `8 _2 T7 }+ y7 ~
  12.     PUSH EAX                                                        ( z# [! C4 u5 d/ v$ J. m
  13.     CALL 6FC2A568            
    % c% Z9 `0 ]: D
  14.     MOV ESI,DWORD PTR SS:[ESP+34]
    . _# e% z0 y. w+ [
  15.     PUSH ESI                                                                3 g* C6 G. b1 n  G1 N3 R
  16.     CALL 6FC2A4C0            
    ; k6 b3 ~1 N1 A  }
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D] : _3 g, p  c( ?. k5 U
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    * N$ Z. ^3 t+ t9 c1 J: o6 W: I8 X! k" i
  19.     PUSH 0A                                                          ' p+ I  i7 [4 ~5 M
  20.     PUSH 4                                                          ) z/ i/ T8 u  K( R
  21.     PUSH EAX                                                               
    4 M: ~5 P9 ]9 Q* C3 p& ~; o
  22.     CALL 6FC2A568            
    0 N4 g8 x) p+ f& N
  23.     MOV EAX,DWORD PTR SS:[EBP+70] 5 Q/ h9 z! r% r! ]( O
  24.     PUSH ESI                                                        : z2 R3 l$ n# }( b" C
  25.     CALL 6FC2A4C0                    4 }) r' B3 Z% @5 x! b0 H
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    7 d3 \! P( k$ ?
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    6 A& d3 [" }/ z7 d  R, H1 h9 z
  28.     PUSH 0                                                  
    . n% c8 t% ]9 j
  29.     PUSH 28                                                  , g1 p2 j6 l! O+ W: ]0 Q6 F
  30.     PUSH EAX                                % @4 l$ h: p5 Y/ c6 l$ U+ i1 X! W. l
  31.     CALL 6FC2A568                    . g" d  I8 F7 c1 ?) a' G, P
  32.     PUSH ESI                                
    , y, G: ]" J) p5 k( P6 }
  33.     CALL 6FC2A478            + R% _( k4 Q, f' j& n* t
  34.     MOV EDI,EAX
    ! y  Y6 p- R- c( e- w; o
  35.     PUSH EDI                        7 r$ `# \5 W  U7 K
  36.     CALL 6FC2A556   
    5 @/ o; T/ E1 ?! {# X3 l6 Z, @0 q
  37.     CMP EAX,6D & F6 ]' }* d3 }- Z8 d9 A
  38.     JNE 6FD17C79 9 S% q9 V3 i* k( j1 N
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    3 A& M2 S4 \( I4 `# y+ k8 }% y
  40.     CMP CL,2
    8 v) R! Z, k# f
  41.     JNE 6FD17C79 # S9 k6 t' c0 q( o  |
  42.     LEA EDX,[ESP+24]
    9 z9 L. a0 n. C7 C6 i. l
  43.     PUSH EDX                                       
    2 n5 ]. Q/ T: u; \  o  Z4 x7 q
  44.     PUSH ESI                                # R7 Z" E0 P% d& u& N7 K
  45.     MOV DWORD PTR SS:[ESP+38],0
    4 ~5 Q; M' I( E% _) O3 }
  46.     CALL 6FC2A544    ! B$ M( E* |( @, }$ v7 u
  47.     PUSH 64                  
    ! v4 L! S$ w' g; {8 b$ v5 h0 ]
  48.     LEA EAX,[ESP+34] 1 H( _3 j* z* L( F% ~; y
  49.     PUSH EAX                          |! c' ?/ M9 W- N, p
  50.     PUSH 400                        
    ! k: b8 P5 a+ `
  51.     PUSH 3                  , J- S2 w8 C! Q# j4 B6 Y/ h) t
  52.     LEA ECX,[ESP+34]
    + y' F  T) c6 H) y4 W0 r
  53.     PUSH ECX                                
    4 [$ u; _& _4 }/ S7 K- \0 [
  54.     PUSH EDI                        ! e3 n9 @: {& [% Q: o; `6 N
  55.     CALL 6FC54130            $ t& {* F$ X) Z( U8 G- U( y
  56.     MOV EDI,DWORD PTR SS:[ESP+30]
    / z+ ]' E0 u/ s7 b' @4 s
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    : }6 V7 m" J6 Q* j+ K( C
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    / l# \5 i* o- d" B/ c  n4 H
  59.     MOV DWORD PTR SS:[ESP+14],EDX
    1 Z& t& h$ `4 T# p
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    . a; e8 c# c# L9 g
  61.     PUSH EDI                        
    $ M3 k; I9 x, H* o6 J+ a
  62.     CALL 6FC2A808   
    7 j' n) h- @' J3 g' n# Q6 |
  63.     PUSH 27                  
    ! H# t! B7 @8 E; |, i& s
  64.     CALL 6FC2A56E    " b, F, h8 T3 g5 m! c: `
  65.     PUSH EDI                        , B! Z7 ~6 P, Z3 w6 }6 _
  66.     MOV BL,AL        5 o, j4 R+ Z/ W% B( h! o: x. [5 c3 ]
  67.     CALL 6FC2A556 # g$ H" l+ s2 H3 E
  68.     PUSH EAX                        
    8 j" l% Y( c6 ]+ V# v- f
  69.     MOV DWORD PTR SS:[ESP+1C],EAX & w* a9 Z8 @1 E" q4 I# o
  70.     CALL 6FC2A56E + O5 [  c. p$ n1 o( h) j, w
  71.     MOV ECX,DWORD PTR SS:[ESP+10] - w+ [, n$ O3 v% P3 J, j
  72.     MOV EDX,DWORD PTR SS:[ESP+14] ; _6 K1 f# j- ?8 W. O( h
  73.     PUSH 0         
    0 S2 ^+ \$ l( v( N1 b9 H$ n
  74.     PUSH 0C01
    - s# E6 m) k) c* m( P+ e& U
  75.     PUSH 3E01
    " o, Q2 o2 W& N  H  \$ w4 x
  76.     PUSH 3 ! F# P' {3 ^, J
  77.     LEA EAX,[ESP+2C]                7 Q! S- V4 N7 j8 R8 w9 `) i  P
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    + N  k1 X0 \8 d- B+ @
  79.     PUSH EAX               
    - E- E  i1 S0 y% U9 T
  80.     MOV ECX,EAX      
    6 P- g: ?% }3 V
  81.     PUSH ECX               
    + R+ X# ?  c. S% P, M) K
  82.     PUSH EDI                        
    0 j, M+ j# k1 p. d% \. B% d% O
  83.     MOV DWORD PTR SS:[ESP+3C],EDX 8 n2 k- _) X9 N, v( }
  84.     CALL 6FC2AE98    ' s+ G$ D, F" e; ^5 R
  85.     MOV EBX,DWORD PTR SS:[ESP+1C] 9 E* m% U( N8 P+ I0 c4 \
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
      c7 X  N4 p& ]5 |' ~1 x
  87.     MOV EAX,DWORD PTR SS:[ESP+30] : S: L. P+ O7 h
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    8 e5 |! Y4 P9 |% ^! \9 g6 H
  89.     MOV DWORD PTR SS:[ESP+14],EDI 3 i: n; _( K4 |3 ?; A7 f
  90.     CALL 6FC21280 ! W$ r' a- M$ y7 v  i) e+ m
  91.     MOV EDI,EAX
    , ^2 Y; \) C1 x: \) S  I8 f- T
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
    " |( M- {! Z. h- B
  93.     PUSH 0         
    ( _( j" C, ]3 k: F
  94.     PUSH 1         
    4 }9 u. c$ J( q+ ^/ |
  95.     PUSH 1
    - a$ \' |, `5 C: t% @: J( Q% r5 Y
  96.     PUSH EDI        ; y3 D/ Y. e5 {+ b( r
  97.     PUSH EBP        ( S! Q- V  Q$ W4 w9 y/ V/ `% d" D/ d
  98.     PUSH EDX        " O# [$ t  g" e; d+ X, `1 ^
  99.     MOV EAX,EBX      / S% ^& k+ q+ _& G/ [8 k
  100.     PUSH EAX        0 H, E- a$ N7 _$ n
  101.     MOV EDX,3C      
    - d0 |- V3 m/ ~  |' Z7 \% A$ o
  102.     MOV ECX,2        ' `5 r5 ?+ F4 r1 m. d5 ?
  103.     CALL 6FD01D90    ! {4 c* U( v  q$ d
  104.     MOV ESI,EAX 3 {: S( U, Y+ Y" m7 _3 S
  105.     PUSH 1 ( t# O) R# U% `# g  E
  106.     PUSH ESI
    4 U% Y' ]& n" U' e9 A
  107.     CALL 6FC2A4A2
    9 f" B9 ?7 f6 L9 `" P3 _) O
  108.     MOV ECX,DWORD PTR SS:[ESP+18] & _+ q6 E5 N, s& r, N
  109.     PUSH ECX                        ; j) s# x* _- O8 d
  110.     PUSH 88                          , M' M4 {  B9 m9 q$ j
  111.     PUSH ESI                        9 k- `! P) |: C2 M8 v1 n1 r
  112.     PUSH EBP        
    0 o4 ^* |3 G  I/ D
  113.     CALL 6FCC22E0    9 l, f7 G7 I3 l$ s. T! [6 O/ ?+ ^9 c
  114.     POP EDI 5 M) M! F2 p* i- M: H" V9 C* {' g. y
  115.     POP ESI & h) f: Q" |$ c# L) s9 [& `% m* l
  116.     POP EBX 5 y' V1 F( A5 p4 I' @5 ^
  117.     MOV EAX,1
    ) ?! X2 z0 V3 {% \0 U$ D
  118.     POP EBP / O+ O  h) [6 E5 i! \6 {. G+ B2 I$ ~
  119.     ADD ESP,1C
    9 z: `5 O1 f+ Q" Z5 b, ~4 o
  120.     RETN 8 " x8 _7 z1 N! s: S
  121.     PUSH ESI $ Z, a: D+ V- M( x: `4 r  N
  122.     MOV WORD PTR DS:[ESI+6E],14 ' p1 T- R/ N3 _5 Q2 }/ ?% F$ ^
  123.     MOV DWORD PTR DS:[ESI+70],ESI 0 _  B8 x$ G" R0 `
  124.     CALL 6FC2A4DE * f% x! o$ ?( P3 Z  u5 `' T1 W
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4]
    8 i( L; L. f& S' u$ u* N3 X
  126.     OR EAX,00000400 5 t% U: Z  w& {  G" X
  127.     POP EDI
    2 v( l6 h6 p" `* V9 @+ d6 p! M
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX
    5 h; ]) {  e! \( l- I7 G
  129.     POP ESI   o! f# D/ ~- \/ G
  130.     POP EBX
    " w) P* q4 `* F7 I+ b" z& U( p$ P
  131.     XOR EAX,EAX
    ; g# q4 `# z* ~' B7 O3 [6 k5 z. ~
  132.     POP EBP ' i/ `3 S7 F) ^2 @% t
  133.     ADD ESP,1C
    0 G" P  R! x) r# C7 F4 l: u
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。
6 t' `/ W0 }) E- m* ?: S, h0 a地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。
7 W' {* ^& D3 ]8 E
2 o: X* ]) N- s7 Y4 D修改的限制代码为:/ O( z1 W4 b6 l8 Q
  1. 地址= 6FD17B75      
    8 R- t4 e2 ~7 N; U: M6 s
  2.     CMP EAX,6D         6D为第五幕城内
    4 g+ y5 b' c7 F8 U7 m) h
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    9 R! l5 `7 X  M$ I8 p- |4 k4 F- l9 U
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    # o) m+ u* {) J
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱4 L+ J" x: g! m7 N4 @
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。0 v  e5 _  a1 ^
2 x% `6 L1 [7 g) Q$ Z0 s! E8 P
修改箱子合成部分
/ O8 k& H9 n( u1、d2game.dll,跳转至6FC92417
2 N# z- Z* E. h2 Y/ W3 D5 X
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
7 I) h1 W" {6 @# w" J$ b
  1. CMP AL,4
    # A. T0 Q! X# X( w+ Y3 r
  2.     JE SHORT 6FD17AE4 ' x& M* ]) W! m$ ^/ e: d& c
  3.     MOVZX ECX,AL * a0 P; V4 Y" z$ ^5 M2 l
  4.     JMP 6FC9241E
复制代码

/ C/ K$ ]9 n$ `/ `3、跳转至6FD17AE4
7 v# v: i2 W1 M; ]( y
  1. MOV EDX,DWORD PTR SS:[ESP+12C]
    ( S( X, Q, f$ U: g% u% n
  2.     MOV ECX,DWORD PTR SS:[ESP+128]
    # q' j  e* h1 j: F% d- @
  3.     CALL 6FD17A2B
    # j3 y% {5 j+ @0 o6 d0 d- }/ Q7 G
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B+ u5 e2 Y7 B1 S9 }. s
  1. PUSH EDX 6 q  O& P& C: F8 p0 D5 k
  2.     PUSH ECX
    5 a) b3 {* v4 r2 g' ~! {
  3.     CALL 6FD17B0F    , |# h/ A3 U7 H8 X6 m4 m! R
  4.     RETN
复制代码

3 P) \. }5 ~& N  Q" |" f1 C9 P$ B+ `0 I: i/ u* U9 \
DLL部分修改完毕。
4 {1 }5 N5 J+ A9 r* a+ }( H3 \在cubemain.txt 添加改红门开启的设定8 I" ~) X" x! l' M4 o* R
条件设定自行定义,在output处填入Portal即可
5 @" c4 W: c4 X  J3 }3 h  c, b
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇
; Q" ~4 Z9 I7 Z) L) y8 A( D2 D经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error
' h* i# P: t% H+ Q: U( o: [) |9 U9 [7 d0 M! ]) V( a0 U. [3 m
然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-31 05:19 , Processed in 0.064151 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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