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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4054|回复: 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
2 S4 L! x* S; y, p1 N) \7 o/ q' r3 W该教程仅限于暗黑1.13C0 S* ~! H3 {; \+ N8 @) F
: A* e7 g3 ], S( F  P7 K
使用hex 16进制修改工具打开D2Common.dll: {- ^" I% ^8 [- E# X- J7 C( `$ p
ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C
8 `+ N. b4 N! j6 }: r9 O+ Z
& R/ ^5 u4 r# l+ b+ B  [8 O( q使用OD软件打开D2Common.dll,
( u8 I) l# P2 f& _! r1、ctrl+G,跳转到6FDD87EB,输入以下代码
- \+ H2 a5 O4 S8 N2 R8 p' E/ P2 W
  1. PUSH  6FDE4F60
    ) E" C- ?( j( \1 Y5 ~/ d
  2.     PUSH EBP . Y7 i, m; q/ k7 e  w% E. V# @
  3.     MOV DWORD PTR SS:[ESP+20],ESI
    $ n1 _+ D3 Q, L- l4 V8 Y
  4.     CALL 6FD51EC0 1 Y+ Q) r7 g/ l7 d8 R& q, p" _2 y
  5.     ADD ESP,8 % N% |# {, `! I5 G! s. L" h+ C
  6.     TEST EAX,EAX
    ! l- T3 V# ?& ?# ?' c! f0 q" ^
  7.     JNE 6FD6BAD0 6 c$ i2 C9 T$ C, n
  8.     MOV BYTE PTR DS:[EBX+8],4
    / g6 h, ?* ?  s2 O
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5
# a! L! m6 ?% L
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
1 |" m: m# D4 A& k
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll" \0 ?6 n& T- P
1、跳转到6FD17B0F$ v9 T6 u  o7 l: r7 ~
  1. SUB ESP,1C
    & }9 }5 E0 v% S4 _3 ~0 R/ V9 Z
  2.     PUSH EBP
    % s3 `+ m( K% ]
  3.     MOV EBP,DWORD PTR SS:[ESP+24] . A4 C- ]. P  ^9 O- e7 X& z: B
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4] * w1 m' f# R# D! m+ d7 L$ N8 r
  5.     MOV ECX,DWORD PTR DS:[EAX+8]
    0 @1 f# I9 r% a9 f5 n% p3 B
  6.     MOV EAX,DWORD PTR DS:[EAX+0C] ! q! h1 u1 l+ t- n
  7.     PUSH EBX
    " X- Z) i3 p; v/ g
  8.     PUSH ESI + T/ P5 E2 W0 D% b" I( o3 e
  9.     PUSH EDI / C6 s5 k2 q5 M3 Q
  10.     PUSH 0B                                                         
    ; y1 I0 |  E2 b: H3 Z+ P1 R
  11.     PUSH 4                                                  
    4 V5 p7 t9 o% c/ O. P* S
  12.     PUSH EAX                                                        0 h1 n- i) Q+ C+ d' w1 q3 }
  13.     CALL 6FC2A568            $ K5 {5 D4 b/ t$ V& S' @, \# P
  14.     MOV ESI,DWORD PTR SS:[ESP+34]
      q% h+ F8 y& q$ l" v. j7 e
  15.     PUSH ESI                                                                ; ~  R) O* J% R. W, `% @# |
  16.     CALL 6FC2A4C0            ) H! g! O6 z) Q! J
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    0 v  a, G. ]' u4 e/ I+ W
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] * h* E; c) J) G/ D1 Q  Z
  19.     PUSH 0A                                                         
    3 j' z6 I. a) D) X5 U6 Q9 ?6 g' N
  20.     PUSH 4                                                         
    % P( f8 v8 X7 x: P: l  n' D& X
  21.     PUSH EAX                                                                & O( W# G( I" d/ \1 u( w
  22.     CALL 6FC2A568            
    7 o3 E$ d8 J! C  A, S/ J& G
  23.     MOV EAX,DWORD PTR SS:[EBP+70] & V5 I. X$ |1 {1 t4 c# w
  24.     PUSH ESI                                                        
    ; \! J; r6 y& ^* v7 N
  25.     CALL 6FC2A4C0                    ( F9 J; \# w$ w7 b  c
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    * ^7 E9 a, b+ c' ?( a1 c
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    * e, ?: D, w  I
  28.     PUSH 0                                                  5 J. B- a/ g; r0 j4 ~, X- m& O$ Y
  29.     PUSH 28                                                  
    0 }6 Q  {+ B4 d, T& G! m
  30.     PUSH EAX                                $ \2 }- l1 r7 I  u' a
  31.     CALL 6FC2A568                    ' \) P; |8 F1 A4 P9 g
  32.     PUSH ESI                                
    " Z: |, T/ y0 H# w; ]$ B2 U9 E
  33.     CALL 6FC2A478            0 {! X5 T4 K: |. o3 y7 t
  34.     MOV EDI,EAX 6 K( ~& e5 m2 k  M
  35.     PUSH EDI                        
    1 E, M( M, q+ X
  36.     CALL 6FC2A556    $ T% j) w! E% P3 H1 ]
  37.     CMP EAX,6D / |  e5 Q6 |9 K/ Z1 x% {8 y
  38.     JNE 6FD17C79
    1 _6 D; n; S" w- j. u
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    0 ?% L+ Z4 R) G' a
  40.     CMP CL,2 ( ~3 _+ ^) x/ v
  41.     JNE 6FD17C79 9 T  s* i- D. u. m
  42.     LEA EDX,[ESP+24] 7 ~: m1 H' T5 K: U
  43.     PUSH EDX                                        ' ]4 }% b, F' h& M- L! N
  44.     PUSH ESI                                
    1 F0 n0 ~- R1 k
  45.     MOV DWORD PTR SS:[ESP+38],0 $ ^4 _$ Z0 N( I! [/ ~* P4 G, Y
  46.     CALL 6FC2A544   
    & {1 g  H- B$ T% f
  47.     PUSH 64                  5 c4 a6 O2 a( k7 O4 e5 c/ r; J
  48.     LEA EAX,[ESP+34]
    % E. D4 x+ R/ C' W6 c# f
  49.     PUSH EAX                        
    . U! P3 @# B+ }  m
  50.     PUSH 400                        
    : I/ }7 T: K2 e* p
  51.     PUSH 3                    K; `: x9 U8 s' `" y
  52.     LEA ECX,[ESP+34] ' |9 `. T( B$ @- l) }
  53.     PUSH ECX                                
    , B# y- w% T" F! r1 o
  54.     PUSH EDI                        
    8 v7 f4 ^9 G% t7 x0 Z
  55.     CALL 6FC54130            1 o3 w* x. h; }$ Q% [
  56.     MOV EDI,DWORD PTR SS:[ESP+30]
    6 y! M1 \( x6 t) s
  57.     MOV EDX,DWORD PTR SS:[ESP+28] % V  d- E: ?* T8 f& j1 m: }
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    ! f& n  @' K6 \1 p1 f
  59.     MOV DWORD PTR SS:[ESP+14],EDX
    & O- V! R8 E4 N+ U# }& t
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    6 [8 o& I, t1 q" g- E
  61.     PUSH EDI                        3 J/ p' A) G* Y0 D4 L
  62.     CALL 6FC2A808   
    2 p& C' r: c' S: a' R
  63.     PUSH 27                  
    ( s2 U) F& U9 s: ?1 H/ v
  64.     CALL 6FC2A56E   
    2 ^: U3 B0 y' w, Q3 b6 h
  65.     PUSH EDI                        
    ! H% H. T! ]1 p# c; ^6 T
  66.     MOV BL,AL        
    4 Y' T; J* J) w) A0 r+ {
  67.     CALL 6FC2A556 3 z  z) h) g2 B8 g2 h; W0 X% K
  68.     PUSH EAX                        . k. v! o0 x! r
  69.     MOV DWORD PTR SS:[ESP+1C],EAX
    ! V3 K" R- B3 z' H% \  G( d0 H
  70.     CALL 6FC2A56E
    8 l4 x: ~# R4 \1 p8 q# L
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
    2 K$ V7 r; h8 A+ ~! c% x' t
  72.     MOV EDX,DWORD PTR SS:[ESP+14] , x$ E: w/ A8 N0 M; b* V# P% B4 D! U
  73.     PUSH 0          2 n# L1 w6 m! D5 a" X* n. M7 F
  74.     PUSH 0C01 # v- |6 R& B" T1 ?4 v' `
  75.     PUSH 3E01
    5 V" m! `+ w  X" @
  76.     PUSH 3
    " z5 Y/ p8 |- k, ]( @* v8 o5 {6 a
  77.     LEA EAX,[ESP+2C]               
      l  @! i) ]' x
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    / {+ H# @! W, j+ t3 v: H/ I
  79.     PUSH EAX               
    2 c2 C. q/ W1 \
  80.     MOV ECX,EAX      
    ' k, Z) h) A+ {  a  w' _. I% S
  81.     PUSH ECX               
    , M2 H; k) p4 S5 D6 b$ Y9 C; `
  82.     PUSH EDI                        0 y! }7 u- c: R3 P/ m
  83.     MOV DWORD PTR SS:[ESP+3C],EDX ( n  X+ W  y! D% f
  84.     CALL 6FC2AE98   
    8 s! X$ a' _+ E( v  j5 `, t! E
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    8 E9 C1 h/ \, t5 r+ I# [
  86.     MOV EDI,DWORD PTR SS:[ESP+20] + l3 |$ |1 n5 }
  87.     MOV EAX,DWORD PTR SS:[ESP+30]
    2 w$ q+ @2 M) ^# H  W& ~
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    2 P/ G' x4 H3 g0 R! a3 s
  89.     MOV DWORD PTR SS:[ESP+14],EDI ; F7 r, b4 D1 R0 K+ D. c
  90.     CALL 6FC21280 ( E3 Z) J; y( |4 v% U! |2 X" H8 O
  91.     MOV EDI,EAX
    5 W6 v$ W, Q- g/ o( H: ]  A
  92.     MOV EDX,DWORD PTR SS:[ESP+14] + r6 B- Y# Q8 R) v- }; H! H
  93.     PUSH 0          ( s- [  I% _0 @3 m9 T" P4 {) T& S
  94.     PUSH 1         
    . i6 F# d3 r( G/ ?$ N
  95.     PUSH 1
    $ N: i0 q2 e4 R2 y! r
  96.     PUSH EDI        
    & S, j: I. p+ N" d) Y6 _$ A
  97.     PUSH EBP        
    4 y0 \; F! G4 [  y
  98.     PUSH EDX        
      ]5 W0 ]. e1 I% `) W5 B
  99.     MOV EAX,EBX      
    ) q4 h- D1 l/ h" j" b
  100.     PUSH EAX        * j+ X+ @9 m  f+ l$ C2 J
  101.     MOV EDX,3C      
    1 O2 |9 f6 f: G9 B
  102.     MOV ECX,2        9 v7 p9 G3 @5 M5 h- u( E, N( \
  103.     CALL 6FD01D90   
    % t3 }/ @3 B7 W3 V
  104.     MOV ESI,EAX 9 h" I3 Y; T! C+ U# r
  105.     PUSH 1
    ! S3 b# e' B4 M+ U
  106.     PUSH ESI
    + ~, c( e) N# z' P- U
  107.     CALL 6FC2A4A2
    ' G& D% C8 g! M8 u. P* U7 U
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
    % F9 F3 ?3 {7 _  l- |' U) d$ Y  F
  109.     PUSH ECX                        
    ! p3 f- g% Z7 f+ ]/ `( X
  110.     PUSH 88                          
    ' |) `6 h% d# I+ M" f( D9 `; M
  111.     PUSH ESI                        
    . h3 a9 E# `( m1 i/ N8 N* X
  112.     PUSH EBP        
    / q2 N% Q0 H6 `4 f
  113.     CALL 6FCC22E0    , D- I. k3 B0 X
  114.     POP EDI / y( _! S4 ]9 a
  115.     POP ESI ( }0 t9 \7 \2 A1 S4 K
  116.     POP EBX
    , m1 Y# a( g) Q0 |
  117.     MOV EAX,1 ' y/ w* F2 D2 E, U6 ?
  118.     POP EBP
    + w, W9 S# ^  M8 l0 G: L$ U
  119.     ADD ESP,1C
    ; w; \* Y- {2 J' }
  120.     RETN 8
    8 B4 \" u( W& `: {
  121.     PUSH ESI / h4 ]" Y/ u6 v0 R( e/ C& x4 o: G
  122.     MOV WORD PTR DS:[ESI+6E],14
    : ?: m6 i$ g' j; V* i
  123.     MOV DWORD PTR DS:[ESI+70],ESI
    5 q2 t7 N& V# a& f7 [; s% m& v
  124.     CALL 6FC2A4DE & U/ Y1 S( a0 R- l
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4] + k1 S6 P9 d$ R# K
  126.     OR EAX,00000400
    - U* u4 K. S& _
  127.     POP EDI + D8 e- Y7 u) R0 d, ]
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX
    . C2 w$ [+ M) ~2 a
  129.     POP ESI - c  ]) X1 Z4 E
  130.     POP EBX
    : k; t) u1 \' k! O; g4 K
  131.     XOR EAX,EAX - A3 d! k4 f7 t; |
  132.     POP EBP
    0 _. z3 J+ F" m* P+ K2 t
  133.     ADD ESP,1C
    3 d# B' Z$ O) G4 ^- {
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。
  ]! J3 _. Y* @3 f地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。
% _7 j& i2 b1 ^$ Y) Y4 o% J4 o7 [- {. V- B- ?" k1 x
修改的限制代码为:
6 y5 C/ m3 g" f' M6 d
  1. 地址= 6FD17B75      # a0 w' ~- X3 A9 m3 |$ V) x+ g
  2.     CMP EAX,6D         6D为第五幕城内" U! W1 U& j: u9 t, U* M4 B8 F
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E - Q3 E9 w% X" X  D# d- Y
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    * k% U1 E3 K- O2 N
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱. R$ [6 Z+ d1 r
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。7 M/ E0 ^2 y4 v. Y4 Y

( e' [! S0 F& W1 M) W" P# S5 P修改箱子合成部分
  b5 H- h) [4 c6 t, B; C1、d2game.dll,跳转至6FC924177 a6 Q' o( M( e; @; a
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8/ }/ |& c7 a4 o
  1. CMP AL,4 % a2 a# U0 l$ ~6 I; k( n, p+ i, K9 E
  2.     JE SHORT 6FD17AE4 : s. K) {0 D! `4 o
  3.     MOVZX ECX,AL - ^5 {+ v  C$ N# {6 i: \
  4.     JMP 6FC9241E
复制代码
6 o6 J" @3 J& X9 }) c9 N
3、跳转至6FD17AE43 p- R2 y6 Z# V% m8 F0 L8 r
  1. MOV EDX,DWORD PTR SS:[ESP+12C] . V7 t5 E8 C3 w6 U
  2.     MOV ECX,DWORD PTR SS:[ESP+128] 9 X# U2 Z# t5 [+ F7 D) x0 Z8 a
  3.     CALL 6FD17A2B 4 o* ]/ }4 \  K) M3 S2 f
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B
0 ^% {1 w" ]! T; w  l/ g4 B
  1. PUSH EDX % r- Y% ?7 c0 ]! T9 z0 Z5 E
  2.     PUSH ECX
    ( V8 Q) M4 q) D9 e. h
  3.     CALL 6FD17B0F   
      ]6 `# U: ?9 k: n5 O
  4.     RETN
复制代码
1 j( c8 ?* ]* f& d4 j6 R5 O
4 h$ W3 @' j: _
DLL部分修改完毕。
) c8 n3 t' @$ Z$ f  W, i. m# m在cubemain.txt 添加改红门开启的设定
7 ~5 B8 w& H4 p3 d9 Q! U+ L条件设定自行定义,在output处填入Portal即可. c$ u0 x" V0 L0 }( @/ b  `$ D1 Z
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇
9 \2 `7 R" D' a  v1 s, t# c% |( ~经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error4 _! J0 r+ f* L: M. i, K2 d
2 O1 U6 U) Q5 m' V% g5 A
然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-10 23:15 , Processed in 0.145989 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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