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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4084|回复: 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( |8 _' G7 |3 ?/ s( d
该教程仅限于暗黑1.13C/ y) s" v: V& \
5 Q( r, w0 }. F3 T, A# b2 Z2 I
使用hex 16进制修改工具打开D2Common.dll
6 b5 @3 k& V1 S% @8 z5 zctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C
* P$ E" o0 g& C6 m  R6 r4 d
' Q( x( O3 g4 B; b. H+ x- L使用OD软件打开D2Common.dll,
6 z" L9 \1 X: y8 t3 B8 Q) E1、ctrl+G,跳转到6FDD87EB,输入以下代码
( b4 ^* i6 K4 D1 p; F. o" ?4 S
  1. PUSH  6FDE4F60
    $ N/ j/ z0 U/ R% ~: @2 I
  2.     PUSH EBP ) G$ X; _2 Y) A1 D  r
  3.     MOV DWORD PTR SS:[ESP+20],ESI 4 J2 C2 v1 H. i: c5 y9 N# a
  4.     CALL 6FD51EC0 * ?* A/ c: |4 [+ S, ?0 \" z4 ^9 _
  5.     ADD ESP,8
    / f0 y4 `% {4 Y8 }" n( R: F  g
  6.     TEST EAX,EAX % f' ]6 X- t1 [
  7.     JNE 6FD6BAD0 " c8 @; p& v1 y+ B, P: K( K! [" R
  8.     MOV BYTE PTR DS:[EBX+8],4
    # O7 }8 V' r9 P, `7 l
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC51 ^6 X+ U) [2 W# p
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A3 b( {1 i5 ^# ?* E  I
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll- o9 B# V8 v" D# C$ q5 p9 l4 `
1、跳转到6FD17B0F% r' M/ u- K' }, q, `. H% O; y( U
  1. SUB ESP,1C , o1 M% x8 ?8 ?1 H# ?* m' G
  2.     PUSH EBP 7 Z" h* R$ P2 C" `1 W- V
  3.     MOV EBP,DWORD PTR SS:[ESP+24] 9 g* ?+ K* F/ z
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
    $ f! x+ N8 o3 e7 `: Z, j% S
  5.     MOV ECX,DWORD PTR DS:[EAX+8] ( D1 D2 u3 X. P8 G8 N8 I
  6.     MOV EAX,DWORD PTR DS:[EAX+0C] ) Y  D, e( L: H! G; D: g2 r! E
  7.     PUSH EBX % O' B! ^( v* N- Z$ H% d" |) g
  8.     PUSH ESI
    6 a  ?2 R" U/ h2 [: h0 k$ J  o& }
  9.     PUSH EDI
    ( z: p3 ^+ M% ~, s
  10.     PUSH 0B                                                         
    ) V" s' ]* ?5 Q/ K4 B5 p
  11.     PUSH 4                                                  
    4 ]7 z2 @* z% Q8 C
  12.     PUSH EAX                                                        
    $ N% ]3 ~0 G- \  g% b" h1 d
  13.     CALL 6FC2A568            1 E2 y1 }/ M3 ?! X6 c
  14.     MOV ESI,DWORD PTR SS:[ESP+34]
    + ]! |! y( r) M% @1 K+ C3 D4 a
  15.     PUSH ESI                                                                + ]- y) U. i4 ~: j* Q
  16.     CALL 6FC2A4C0            . v! d! ~! c. w- q+ H5 P
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    ! F4 k9 e9 _3 }: j
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] : l7 |2 Z. E( ^& J- z
  19.     PUSH 0A                                                          0 k$ N# G+ x: n" H$ Q
  20.     PUSH 4                                                         
    3 A$ A; b: h; Z+ b( Q$ z
  21.     PUSH EAX                                                               
    8 D" i' k' m. q( Y# N% U
  22.     CALL 6FC2A568            
    , A) f6 I' D+ {
  23.     MOV EAX,DWORD PTR SS:[EBP+70]
    - e; v8 l8 `4 s5 @
  24.     PUSH ESI                                                        
    $ l; I" e7 n) K+ j. y1 e
  25.     CALL 6FC2A4C0                    
    $ q: Y" B1 e8 G1 i- L# y9 I/ K
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    , l5 f0 Y/ W9 f- z) w4 R3 E5 J
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    ; d- U# b7 A* y" q
  28.     PUSH 0                                                  ' q4 ]2 J- C$ \: `8 e/ y
  29.     PUSH 28                                                  3 Z/ R6 v; d+ ~( x; r% C7 O
  30.     PUSH EAX                                & `7 a+ U8 T! a$ x$ B+ A$ b% f
  31.     CALL 6FC2A568                    
    4 S2 a( @; E' J3 H: ~
  32.     PUSH ESI                                
    & w% C! |9 ^5 K% b! z1 ~
  33.     CALL 6FC2A478            
    $ [) |% J$ _0 y( t- U1 j7 h
  34.     MOV EDI,EAX 6 a$ M& L3 [! z+ }4 F6 w
  35.     PUSH EDI                        
    5 B1 b2 m; ~4 G1 n
  36.     CALL 6FC2A556   
    " a$ v! ]) _5 @% f' G( E
  37.     CMP EAX,6D ( \) Z$ B% _# {) I  d. S
  38.     JNE 6FD17C79 ; b2 W  }2 b  T& Q
  39.     MOV CL,BYTE PTR SS:[EBP+6D] % }+ a8 n# J) v8 ~
  40.     CMP CL,2 / a! k& S  w3 |  X- I& o$ y
  41.     JNE 6FD17C79
    - U: L# v6 u2 U/ c; Y* c
  42.     LEA EDX,[ESP+24] 3 Y" p; H  P# b
  43.     PUSH EDX                                        5 o4 \) C  V5 `9 I* h0 Z
  44.     PUSH ESI                                - N- i' ?' v) N' H# S
  45.     MOV DWORD PTR SS:[ESP+38],0
    - z* y" |: R" s5 g# P6 o) J
  46.     CALL 6FC2A544   
    ( c4 s6 Y5 A5 c6 ~
  47.     PUSH 64                  ' j$ I' ^) l2 z2 i) Q2 \
  48.     LEA EAX,[ESP+34] $ }9 I& b+ {5 j
  49.     PUSH EAX                        
    + i. @( S0 n' m
  50.     PUSH 400                        $ ~9 R* J2 w: Q# z; y
  51.     PUSH 3                  5 |7 y2 M3 `# d( a- z: }) y
  52.     LEA ECX,[ESP+34]
    ; Q- r: ^0 f2 b+ }! A1 N0 |
  53.     PUSH ECX                                
    2 K$ h& A" W1 [2 `
  54.     PUSH EDI                        , [2 `1 X( `' u$ ~; m! Z% P
  55.     CALL 6FC54130            
    , k) _- Y+ e' F' k2 F
  56.     MOV EDI,DWORD PTR SS:[ESP+30]
    3 d: W3 V0 x$ U8 [5 x, R9 a
  57.     MOV EDX,DWORD PTR SS:[ESP+28] - d' {3 _# ]- Z) s: z$ F6 C
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    $ a& r  s+ E6 U% Y
  59.     MOV DWORD PTR SS:[ESP+14],EDX
    & `. f$ o; A: J5 Y
  60.     MOV DWORD PTR SS:[ESP+10],EAX ; J  K  I. H7 D! {4 R1 i
  61.     PUSH EDI                        
    4 w6 N) Y; j8 i6 C. f0 i
  62.     CALL 6FC2A808   
    8 x0 N# e4 j: V+ h0 A+ {9 X+ ?
  63.     PUSH 27                  ( H: w) O8 [( L9 y. K7 U7 b
  64.     CALL 6FC2A56E    . x- G$ s! y( T+ X
  65.     PUSH EDI                        
    4 M6 Y) v+ s6 a
  66.     MOV BL,AL        
    # }, ~, q: V5 W) ^9 O% y
  67.     CALL 6FC2A556
    ' Y! c3 s0 T. q3 X  s" K
  68.     PUSH EAX                        
    % E& F  h" ^; i
  69.     MOV DWORD PTR SS:[ESP+1C],EAX * r5 X) d0 W2 r7 g/ s
  70.     CALL 6FC2A56E
    8 M7 |/ ?9 E3 y0 ]4 [7 y
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
    ( N/ e( i! O4 W4 g4 w4 G! O2 c/ A  U
  72.     MOV EDX,DWORD PTR SS:[ESP+14] + ^# w) H* A( C; ~
  73.     PUSH 0          " }  d$ g9 `, X' n6 _
  74.     PUSH 0C01
      O* I* Y7 I, N0 y% m, |
  75.     PUSH 3E01 * G, j* u- M7 z& T
  76.     PUSH 3
    3 Z3 ?) j! [6 X* T# _* Y. k) `
  77.     LEA EAX,[ESP+2C]               
    / P' V+ ^! u5 h- ^! M# F0 w
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    . n. d; b  e1 S) V8 V
  79.     PUSH EAX               
    4 U3 H0 ?% c2 _0 _3 t
  80.     MOV ECX,EAX      ! R$ ~4 }. o0 r
  81.     PUSH ECX               
    3 Y; a, i$ {6 x9 O
  82.     PUSH EDI                        ! f! C' [: n$ ~! E
  83.     MOV DWORD PTR SS:[ESP+3C],EDX
    ' k" M; q3 E/ o4 q# K% w
  84.     CALL 6FC2AE98   
    4 q; L% S- a% N8 c# i
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    , g# p' _9 U$ F& n  J$ J* s, f" |
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    9 I& G; f; E" E4 ?: S+ d) T7 ~! S
  87.     MOV EAX,DWORD PTR SS:[ESP+30]
    $ }0 m% K$ I- N# E# K! n* t/ j
  88.     MOV DWORD PTR SS:[ESP+10],EBX : X' Q9 B" N) i; Z! R
  89.     MOV DWORD PTR SS:[ESP+14],EDI ( p" ^2 g6 H+ i
  90.     CALL 6FC21280
    % L! ^0 g  P: |+ y: k: v1 S7 n
  91.     MOV EDI,EAX # K* T! X4 C- ^8 \: n7 {5 Y& z9 f
  92.     MOV EDX,DWORD PTR SS:[ESP+14] 1 Q* p$ j& U. x! B
  93.     PUSH 0         
    " L0 X# Y, w3 H9 i' z8 t
  94.     PUSH 1         
    - l. J4 g- s+ Z- x4 h3 m1 ?, Q  X
  95.     PUSH 1 1 L+ p# @8 |! e0 i: I! l0 O4 I" O9 @
  96.     PUSH EDI        % Q8 a8 U4 h/ c2 n  H4 K1 N
  97.     PUSH EBP        
    ) l  p4 F" U7 ^7 S6 P( h$ t
  98.     PUSH EDX        
    5 r9 A* k' g" _+ o8 ]7 k$ U
  99.     MOV EAX,EBX      ; x( |3 ~8 Z5 \" h
  100.     PUSH EAX        4 b! y- h. ~8 e2 s1 S# s
  101.     MOV EDX,3C      4 M  d% ?8 c( y0 b) S5 l- w
  102.     MOV ECX,2        ; s6 d1 B/ |$ x$ r* k. B$ `
  103.     CALL 6FD01D90   
    5 ~: ^' Y: C" m% U2 Z
  104.     MOV ESI,EAX ) ?3 M& S9 L0 T3 W/ e8 M
  105.     PUSH 1 ) L9 Z- Q) `! |9 N
  106.     PUSH ESI
      M) k' ~; }. G9 c- u- C
  107.     CALL 6FC2A4A2
    0 z3 M8 q) Z" ^" u8 v# `
  108.     MOV ECX,DWORD PTR SS:[ESP+18] 5 M. j; w$ d7 v- [; y
  109.     PUSH ECX                        8 R8 o) L! J' Q2 S$ @' N+ K, L% e
  110.     PUSH 88                          
    1 M7 c2 X4 R* o! }& U, C
  111.     PUSH ESI                        
    % m6 ]5 Z, q+ [% A0 e
  112.     PUSH EBP        
    - Y7 m: Z! o% I
  113.     CALL 6FCC22E0   
    6 L2 @  w2 ~7 j- _8 P5 }
  114.     POP EDI
    ( T0 w# w1 ~; D( F( ]
  115.     POP ESI ; B  R8 `' R$ t$ K" |8 w8 p  ?
  116.     POP EBX
    & O+ h. P0 ]" p+ F
  117.     MOV EAX,1 5 [1 ?5 B' N; k$ ?8 T7 W. o: k9 D
  118.     POP EBP / s+ h! n+ U0 m8 |2 A0 f
  119.     ADD ESP,1C
    " T+ V1 p, O# s3 Y# N0 i3 T+ i
  120.     RETN 8
    & E" ~, d" V$ T
  121.     PUSH ESI ( B! D, f' ?  P$ [' _0 I
  122.     MOV WORD PTR DS:[ESI+6E],14 8 f1 N1 a& D3 J4 b" U9 g  z  \' ~% x
  123.     MOV DWORD PTR DS:[ESI+70],ESI
    6 Z2 G' w$ [2 T, f* X, Q
  124.     CALL 6FC2A4DE : E/ b! M/ m/ L# M% ]3 r, e( G
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4] & R" u; Y5 }% g4 l% L+ H
  126.     OR EAX,00000400
    ( ?0 `" ^: B9 }+ D! g
  127.     POP EDI
    6 S7 Q1 ]% m* ?5 h, m: L) X
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX 9 e5 t% b3 E, N4 b
  129.     POP ESI ' T& |6 P+ m8 n3 K/ |
  130.     POP EBX + X. Q7 l# c. u6 k& T# S, f
  131.     XOR EAX,EAX . O! z2 \  l1 H/ S2 _) g
  132.     POP EBP
    6 {' Y9 S, z- \0 M. W8 ~2 Z  l
  133.     ADD ESP,1C
    / n' e! f0 P# `  ]/ W1 ^
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。2 d2 j5 n7 k+ C! A& b4 e+ g+ `, W
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。9 I: \! c" R( z2 l0 L/ V

  K" x+ N$ i; R4 r0 V% y! [修改的限制代码为:
- d9 n5 d# u8 c# w
  1. 地址= 6FD17B75      
    " Y1 z4 q* P# l/ j5 ?
  2.     CMP EAX,6D         6D为第五幕城内& C4 a# p4 n& M: t4 P
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    ' A1 R. ?/ U* a3 i5 e& }  P9 P
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    ) a0 n% t% W1 T* H9 p8 l) k1 X
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱; w" w7 M* }) |$ `5 k+ A& @
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。
6 w6 \( ]0 Q0 D& r  X
. c$ v# C: K- J6 [4 e修改箱子合成部分8 S5 Z; j: D# n) D, a: `0 y/ d+ C
1、d2game.dll,跳转至6FC92417
2 Z4 X5 ?( G4 K  @! R
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
+ z' w' G8 G; d( E6 z! f- X
  1. CMP AL,4
    / g9 H+ E7 T( C1 p+ i
  2.     JE SHORT 6FD17AE4 4 }- l  `7 K/ ?: P5 K* v3 x- B
  3.     MOVZX ECX,AL
    # {+ ~- O& z9 ?. ]1 l9 I/ u4 O
  4.     JMP 6FC9241E
复制代码
4 G; A; A+ M* I8 I% W3 y  M8 Z
3、跳转至6FD17AE4
# s7 b3 _0 i7 {6 X" P) S: a
  1. MOV EDX,DWORD PTR SS:[ESP+12C] 3 S# x2 M: H/ Z- a  d
  2.     MOV ECX,DWORD PTR SS:[ESP+128]   N+ ^, s# g" @+ ?6 a. O  c
  3.     CALL 6FD17A2B
    7 I( G# u: l2 ^2 n' z/ K8 n
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B
  i0 ~9 a. W; D* \4 w
  1. PUSH EDX % h1 }7 h" o8 m) x( H
  2.     PUSH ECX
    8 ~. j6 p: B% P( _5 y1 M
  3.     CALL 6FD17B0F    $ f2 V+ N8 d6 Z2 C; O( o% j3 C5 B
  4.     RETN
复制代码

; `  M9 `+ g6 R- ~0 [7 D: Y9 n4 m3 o
DLL部分修改完毕。
" u' R3 I! M+ c# n在cubemain.txt 添加改红门开启的设定& n/ l8 ^( u/ Z6 j
条件设定自行定义,在output处填入Portal即可
7 N3 K, A' l/ g( d& o- h4 S
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

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

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

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

! J" t/ T* f& M6 i" D- J$ D然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-21 15:59 , Processed in 0.064442 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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