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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

暗黑mod发布网
搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4851|回复: 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
# O! L5 Y/ e5 o  Z3 u9 e该教程仅限于暗黑1.13C
" d. E& x2 }& n% U2 u) s( h5 G* b8 Z; i
使用hex 16进制修改工具打开D2Common.dll
( C- q1 d5 o( Kctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C& W( a/ _! I, [; Q+ K

  ]- c; K& Q! P使用OD软件打开D2Common.dll,
; V1 O$ K$ o% a8 s+ ^- w1、ctrl+G,跳转到6FDD87EB,输入以下代码# j' H  T. z) [# a- o. x3 u% J
  1. PUSH  6FDE4F60 ; X! O2 {5 O$ x1 w1 Q: g* T
  2.     PUSH EBP 9 U9 Y' f+ Q2 t+ P5 w7 }
  3.     MOV DWORD PTR SS:[ESP+20],ESI
    * a( Y5 I2 i5 a9 w0 B! q
  4.     CALL 6FD51EC0
    3 N9 _9 n' v( E. Y( q+ T! D8 q
  5.     ADD ESP,8
    . O& M* H7 d: T% c* {8 v; A, z
  6.     TEST EAX,EAX
    4 y% J) ?8 w7 ?! |2 j
  7.     JNE 6FD6BAD0
      O" d2 A5 q4 Y) a# p* H3 y- ~8 O
  8.     MOV BYTE PTR DS:[EBX+8],4 & v1 x. u( P$ H/ j
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC52 o3 |+ k( N2 F! p) \" H& C9 T
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A" S) w2 z3 p: X: `4 n: L& K9 J
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll
% p! k/ l6 L3 i; F9 H! ]/ a1、跳转到6FD17B0F. o' x  v* U+ F, {0 ~6 h
  1. SUB ESP,1C
    8 @* Q8 N* K/ A) S0 n2 _
  2.     PUSH EBP
    3 L, M3 A6 r% c4 r" M
  3.     MOV EBP,DWORD PTR SS:[ESP+24] ; o! z( a; N" \1 k3 j
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4] ! M' l# C+ o# _4 L: k6 F$ x3 B
  5.     MOV ECX,DWORD PTR DS:[EAX+8] 8 U5 Q" X6 g; k, V* Y
  6.     MOV EAX,DWORD PTR DS:[EAX+0C] 6 E/ s! R  t3 z# m
  7.     PUSH EBX
    2 e4 X6 G1 p' f8 A" k
  8.     PUSH ESI $ U+ C- }/ r% S: J' K& |$ Y7 Y
  9.     PUSH EDI
    ) \) _, U! _. i6 d$ F5 `$ |
  10.     PUSH 0B                                                         
      \0 M1 P0 |5 @5 R( S* k/ D$ c
  11.     PUSH 4                                                  
    & i7 X& L1 o9 y" m7 J3 G: t5 x
  12.     PUSH EAX                                                        
    $ U. }- l* h, T8 z' }3 Q. E$ e& X
  13.     CALL 6FC2A568            ) n" `3 c3 Z! R: A/ E
  14.     MOV ESI,DWORD PTR SS:[ESP+34]
    : [/ P5 M: H) x
  15.     PUSH ESI                                                                # Y# t7 j5 J# ]) j8 Z
  16.     CALL 6FC2A4C0            
    7 O5 C" j; o- L1 X: ]: {
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D] 0 o/ x3 H+ w; |3 J  O! r! V
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] 9 V( |" {. R8 z! ]
  19.     PUSH 0A                                                         
    8 ^; c: d6 {6 Z
  20.     PUSH 4                                                         
    6 c; b: U% @7 e, Z  ]
  21.     PUSH EAX                                                                / f; s2 q! u) u0 w5 A. |/ M
  22.     CALL 6FC2A568            , N' [+ o7 y3 m' H
  23.     MOV EAX,DWORD PTR SS:[EBP+70] 1 W: C! N: S$ u
  24.     PUSH ESI                                                        " c$ g# m& Z8 ~1 h
  25.     CALL 6FC2A4C0                    
    % d+ Z6 f/ C2 ?, \
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    " T9 T8 f% {8 u) M( k7 }% S
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]   X/ z+ b# S' V. q2 E+ R; M
  28.     PUSH 0                                                  
      i0 G$ s+ i' K! k1 r5 F
  29.     PUSH 28                                                  + \! W" X" a, }/ T2 c9 p
  30.     PUSH EAX                                
    6 ?/ ]* ]5 @/ D4 U
  31.     CALL 6FC2A568                    3 g. u7 V% A, N' m. ~
  32.     PUSH ESI                                
    1 X4 x; f( ?( d' S- J
  33.     CALL 6FC2A478            3 V- [, r# J( |& F( i
  34.     MOV EDI,EAX
    , x7 f5 X% q2 W2 Y' a; I$ ^: C
  35.     PUSH EDI                        + j+ e5 Z' i% A" M, y/ }
  36.     CALL 6FC2A556    " J, X* G: \; P$ F! a# s( x
  37.     CMP EAX,6D
    # |% K- [) `$ _) y  p4 A. X- ~
  38.     JNE 6FD17C79 7 C8 ^) }+ u/ {4 S, |, [  s
  39.     MOV CL,BYTE PTR SS:[EBP+6D] 2 |, K6 h+ w1 ?" a4 a- E9 k
  40.     CMP CL,2 1 |0 p; n! Z; l% Z$ I' \' |4 y
  41.     JNE 6FD17C79 * k; y6 h5 ?5 X2 H* i9 U
  42.     LEA EDX,[ESP+24] ( D( o2 v( `, E4 l0 `) `+ N
  43.     PUSH EDX                                        5 ?2 F; K! r& B" t
  44.     PUSH ESI                                , B1 w/ j4 h9 K0 a
  45.     MOV DWORD PTR SS:[ESP+38],0
    " P" n+ Y7 B; C8 i& u- e0 U- J
  46.     CALL 6FC2A544   
    / S7 h, d7 j; g( R- `) j
  47.     PUSH 64                  
    ; I. N# ^; d3 a- f
  48.     LEA EAX,[ESP+34] $ |2 s3 _2 }* W0 x9 Q4 ]* D# l3 Y& R
  49.     PUSH EAX                        
    % N' m* r/ M' ~, _1 Y  v
  50.     PUSH 400                        
    ) {- C: B. i4 M) x
  51.     PUSH 3                  
    / D, E- a1 z7 M2 T3 i0 ]. s" j0 _8 ]7 v
  52.     LEA ECX,[ESP+34]
    % U2 R3 P8 r, f  f( Y. D6 D7 m
  53.     PUSH ECX                                
    ' J0 V' h1 t9 d( |+ W8 p
  54.     PUSH EDI                        8 q" Z# t* X8 j* f
  55.     CALL 6FC54130            # U; i4 t2 y$ d) J9 f) T% @
  56.     MOV EDI,DWORD PTR SS:[ESP+30] ! i) a3 M# k6 O6 g$ ^
  57.     MOV EDX,DWORD PTR SS:[ESP+28] ) {( N, c  i/ C7 a  j0 h) o
  58.     MOV EAX,DWORD PTR SS:[ESP+24] : K. m4 K1 m% S1 `( g
  59.     MOV DWORD PTR SS:[ESP+14],EDX ' |9 G6 D/ ?3 A5 [9 l" J5 D
  60.     MOV DWORD PTR SS:[ESP+10],EAX 1 U/ v/ {5 u7 S, S* h$ n0 p/ G! o  j2 l
  61.     PUSH EDI                        . I) r' x6 {+ a
  62.     CALL 6FC2A808   
    + e7 o5 f7 R6 ^3 p" w9 |: p; }- q
  63.     PUSH 27                  6 o  Y) L% d" C: H: k+ e; o
  64.     CALL 6FC2A56E   
    8 w5 ~1 i7 I( }4 h5 F
  65.     PUSH EDI                        
    & R" |1 \) D4 e* N
  66.     MOV BL,AL        ) v- k+ b* b& q; o
  67.     CALL 6FC2A556
    % c, ~: h) n% A$ X- d5 F9 Y
  68.     PUSH EAX                        , l" Z' _8 C8 ?2 v( f
  69.     MOV DWORD PTR SS:[ESP+1C],EAX % ^) g' ~+ A3 j* s- C, `5 w( T
  70.     CALL 6FC2A56E ! i% @1 O0 T& o: L
  71.     MOV ECX,DWORD PTR SS:[ESP+10] 1 k% L& s2 p+ m4 O+ N# L
  72.     MOV EDX,DWORD PTR SS:[ESP+14]
    ! }4 b3 z1 _  H6 ?
  73.     PUSH 0            N% Z2 p) E$ F2 P
  74.     PUSH 0C01 # h5 h3 ~( |, B$ F0 j: }
  75.     PUSH 3E01 5 m: c. p" u8 M
  76.     PUSH 3
    9 f+ ~2 g. z. Y* H" u1 Z
  77.     LEA EAX,[ESP+2C]               
    " o8 O  \: V# Z9 ?+ ?$ b6 T
  78.     MOV DWORD PTR SS:[ESP+2C],ECX 0 ?: M' N- v5 B: {% i- ~
  79.     PUSH EAX                1 m% f, S+ ?" C0 u7 g
  80.     MOV ECX,EAX      % e  ^5 T! r8 J
  81.     PUSH ECX               
    " Q) z# b) C. n8 [5 {- c
  82.     PUSH EDI                        
    4 W1 l5 j) e3 R
  83.     MOV DWORD PTR SS:[ESP+3C],EDX * f6 B- M5 O1 N$ C1 m5 |
  84.     CALL 6FC2AE98   
    3 K# |8 w: y1 k5 C  o4 z
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    8 }" c& b5 n. e* t9 u
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    + K1 P, M  @1 p; ~7 U1 e% O, x4 @: y
  87.     MOV EAX,DWORD PTR SS:[ESP+30]
    - l: }8 I# G0 X( f% z. k3 `* T9 R# l
  88.     MOV DWORD PTR SS:[ESP+10],EBX # K; x1 B4 e, k& L" V! h
  89.     MOV DWORD PTR SS:[ESP+14],EDI + Z* ?, {0 i/ j: h4 ^* Y
  90.     CALL 6FC21280 ! J7 X8 ^% A  Q) }! W
  91.     MOV EDI,EAX $ K6 D5 K* _; z
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
    & \6 f2 W8 _" }2 X6 T" m
  93.     PUSH 0         
    * @- A) @% R5 D. \  W
  94.     PUSH 1          - A5 o4 r8 ]+ v; W) E
  95.     PUSH 1
    8 u" ?: r$ b. ~+ w  h: K
  96.     PUSH EDI        - A  S: V8 p; K% r% r* y
  97.     PUSH EBP        
    - A" x# x5 `# M- a9 I6 w9 l( H
  98.     PUSH EDX        
    , R( q( D1 V- s. I9 o9 A' g
  99.     MOV EAX,EBX      
    , O( s6 Y; I! ]7 {9 G
  100.     PUSH EAX        
    " I9 K3 z$ p* Z
  101.     MOV EDX,3C      4 y4 C: l- t2 |+ ~
  102.     MOV ECX,2        
      P3 K! @! O0 t! Q. l
  103.     CALL 6FD01D90   
    4 U2 M) s. s2 q8 T; |
  104.     MOV ESI,EAX
    ' H( x: ~5 n8 U
  105.     PUSH 1
    4 L# _7 `$ g( C( w5 l  w
  106.     PUSH ESI
    # N' }, S/ k! T
  107.     CALL 6FC2A4A2
    . X3 b" X9 F# k7 m: T7 F$ S
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
    3 x5 w: c2 H  J8 n( F
  109.     PUSH ECX                        5 j+ }2 u( L2 ^" `  P
  110.     PUSH 88                          5 a, e  D5 M% ^
  111.     PUSH ESI                        4 c8 {6 Z; R$ E+ n  T  E( E  z
  112.     PUSH EBP        
    * o+ H& x; R- J* y8 K
  113.     CALL 6FCC22E0   
    - r1 ^5 l9 v- p$ G$ f& Q
  114.     POP EDI
    9 t6 V/ i; q  `6 m* d! [( _
  115.     POP ESI
    / O4 t5 ^) a% D; g1 t$ l; e2 n* ]) l  y
  116.     POP EBX & v$ y2 j4 `, _! y! b7 f# i& k. L
  117.     MOV EAX,1 ; _- w0 E. K5 n
  118.     POP EBP / e1 g  X( o, m+ m1 O1 M
  119.     ADD ESP,1C 9 l9 i2 u# \8 Z. c) M! V
  120.     RETN 8 8 I! x, d* u* V/ |
  121.     PUSH ESI
    ' X. o# S  S; \, S# e
  122.     MOV WORD PTR DS:[ESI+6E],14 2 h/ x1 H5 Z, E0 }' ]* b6 n/ ?1 L3 x
  123.     MOV DWORD PTR DS:[ESI+70],ESI
    # _7 z( P2 X1 Z8 s" _
  124.     CALL 6FC2A4DE & [/ o. U9 Q% [, V2 U& Q
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4]
    : Y2 w. A1 G2 u& U6 t# N" A
  126.     OR EAX,00000400
    2 e8 L! m# H4 }4 I& `  \- [
  127.     POP EDI
    2 _2 E( t9 a6 w" x5 A
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX
    8 a+ o/ t/ u. y5 O4 C
  129.     POP ESI ; t# U3 k6 t0 r& ]
  130.     POP EBX
    & d$ F+ y5 c, K
  131.     XOR EAX,EAX # m1 v; h% e) k% A! s! g
  132.     POP EBP
    6 c& P: v( l5 z$ N3 g/ v  F
  133.     ADD ESP,1C : M0 H3 ^/ v1 w0 v" k$ {
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。" n$ Z3 }2 [- }2 n. S
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。/ P% [5 Z! |4 E
! Q5 E0 _( ~+ I
修改的限制代码为:3 w5 p5 c% E2 c) e4 t  O- L  A
  1. 地址= 6FD17B75      
    4 P9 P/ D5 ]; Q) ^
  2.     CMP EAX,6D         6D为第五幕城内
    $ C# \5 P1 S" X
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    , J  k5 d* J1 u2 h% |
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内; V  B1 K" N! L. G, C, X, Q
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱
    ) A1 X( s1 J3 \  y# C5 U
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。
* I# d' L& A$ A" i
. ^4 {5 K. [" i9 x修改箱子合成部分8 |. @0 V( X& k
1、d2game.dll,跳转至6FC92417
# S2 l  z7 j% |
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
) h' Q: r' K2 X2 }+ b3 F4 c- W* I
  1. CMP AL,4
    2 f3 Q7 g+ ^3 i( ]& H0 r$ M
  2.     JE SHORT 6FD17AE4 5 f& c; G2 d6 p/ T
  3.     MOVZX ECX,AL . A& L! `1 t3 ]+ Z- Y7 D, Q2 E# R
  4.     JMP 6FC9241E
复制代码

5 a  e* Y$ m/ U7 d3、跳转至6FD17AE4
+ h6 @1 T9 c! `2 c' \& i9 l0 b
  1. MOV EDX,DWORD PTR SS:[ESP+12C]
    2 z4 }' Q& r- a" c. y
  2.     MOV ECX,DWORD PTR SS:[ESP+128]
    $ E+ W+ V# ]2 D8 p" y, Z
  3.     CALL 6FD17A2B
    / T. ]9 z0 `2 S- M6 Z
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B
, C& T( Y. w5 x# r, R
  1. PUSH EDX
      U2 u7 u: P. y5 |9 l, y
  2.     PUSH ECX
    , o+ s: t3 s7 C7 D
  3.     CALL 6FD17B0F   
      _# K0 F5 M' S
  4.     RETN
复制代码
- v! j! @2 S5 @- L2 V
* l$ W% j9 l1 W& g' \
DLL部分修改完毕。
3 S" c: [1 o3 F, a在cubemain.txt 添加改红门开启的设定
' [2 I# p$ P. P  c5 F条件设定自行定义,在output处填入Portal即可, g& s) Y5 N, ?* l! k8 z! N
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇7 Y7 f5 A5 o; S; U0 ^/ a
经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error
/ o3 a* e# ?3 A& J1 r0 u7 P2 S3 X" ^/ y, n8 u- I1 d
然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-20 02:20 , Processed in 0.096043 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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