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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

428

回帖

830

元宝

1

圣者绑元

管理员

Rank: 9Rank: 9Rank: 9

积分
1
发表于 2018-8-29 20:12:12 | 显示全部楼层 |阅读模式
转载:http://diablo.phx.pl/forum/viewtopic.php?t=622425 s/ ^2 F8 q$ F% ]5 N) A7 x
该教程仅限于暗黑1.13C( `9 ]; ?, I% j# L2 n& g0 O

: t. I% W5 @: D; f& C" N5 J使用hex 16进制修改工具打开D2Common.dll
0 k& }/ o  ?3 P! _  O' _ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C6 u- E5 o, z" t+ j% L' a) R) U

, @- n1 U$ ?+ N; P7 s; W使用OD软件打开D2Common.dll,
% t$ W2 S" P$ w& o1、ctrl+G,跳转到6FDD87EB,输入以下代码- R( B9 j% H* Z8 p
  1. PUSH  6FDE4F60 ! T# ]# _5 }0 X" V9 j) a
  2.     PUSH EBP . n( T& x' f4 w, q$ s
  3.     MOV DWORD PTR SS:[ESP+20],ESI
    2 e! t/ C% }& b. }3 _
  4.     CALL 6FD51EC0
    4 S( O" W  |) A
  5.     ADD ESP,8 . U  ~8 O/ {" U7 T' v
  6.     TEST EAX,EAX
    3 e) E& e% t- _! h. ?" L
  7.     JNE 6FD6BAD0 5 d6 f; d9 t! Z% s% n8 W
  8.     MOV BYTE PTR DS:[EBX+8],4
    1 S* V! h+ J& }0 t
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5
( G# {1 H9 X. }2 ?
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
- b6 s  q% D* _
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll
2 Q8 g6 q9 Z6 }0 K1、跳转到6FD17B0F4 ]# q; y$ u9 T9 ~' l( m$ f: F
  1. SUB ESP,1C ; c7 n8 Y) P: Z( T; U
  2.     PUSH EBP $ p4 d( b) x( M( T
  3.     MOV EBP,DWORD PTR SS:[ESP+24]
    3 S0 @! J% Y6 |, p  X; P; P
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
    7 V/ g- R% ?% O' a7 }( K
  5.     MOV ECX,DWORD PTR DS:[EAX+8]
    1 C( J. p5 R& A7 Q+ _8 N+ r
  6.     MOV EAX,DWORD PTR DS:[EAX+0C] 6 O, j5 d& I6 y* X( g! C1 n
  7.     PUSH EBX
    % F& |4 {3 {1 ]8 T1 h2 w
  8.     PUSH ESI
    0 u% N5 F- [. V5 q) K
  9.     PUSH EDI
      \7 L- T, G) z0 |- N
  10.     PUSH 0B                                                         
    8 D+ C+ z! [5 x; V1 i
  11.     PUSH 4                                                  
    . }. K. r2 t- x' j3 }
  12.     PUSH EAX                                                        
    4 J; c1 a: X; t
  13.     CALL 6FC2A568            
    0 g# G& D" c- E3 M8 ~: ^# c! [
  14.     MOV ESI,DWORD PTR SS:[ESP+34] . w' Y7 I: a) E% z$ B, l) Q
  15.     PUSH ESI                                                                . g! z1 Z2 ~4 A" M6 L5 a3 U2 w: W
  16.     CALL 6FC2A4C0            . T# l7 A+ Y* ?3 N. N0 i$ U7 I
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    / k, F  |6 Z/ C
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    ( R2 X! o/ N& C+ H1 E
  19.     PUSH 0A                                                          " S7 [# S( b- o1 k' f; E- ^4 y5 P
  20.     PUSH 4                                                          7 Z, J$ k$ V  w+ g
  21.     PUSH EAX                                                                - n1 r% ]' X3 n$ X' D
  22.     CALL 6FC2A568            
    4 R4 h9 O5 x+ y! o6 x2 A" ^; ^0 u
  23.     MOV EAX,DWORD PTR SS:[EBP+70]
    - n; l- e. o2 _
  24.     PUSH ESI                                                        . s$ q1 n) F0 A4 ~
  25.     CALL 6FC2A4C0                    6 |4 l' |5 x+ f
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D] + A3 v6 E, {' ]* g/ ^
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    ! T& C( i" L( B: H; c
  28.     PUSH 0                                                  7 o; s0 c! L5 h  U' u% G/ ]# _* e
  29.     PUSH 28                                                  - S" b" [- P, M( h2 f1 F
  30.     PUSH EAX                                ' `$ o: n! @7 `6 F% ?5 c: D
  31.     CALL 6FC2A568                    ! v* p4 [9 A# H$ @1 g$ x; O) n) s9 n
  32.     PUSH ESI                                5 I7 J/ j5 S! M0 F1 `1 }1 U
  33.     CALL 6FC2A478            - J. x, p4 e- I
  34.     MOV EDI,EAX
    5 _7 d6 c  S0 ?* |, i+ |
  35.     PUSH EDI                        
    ) p' Q  o! q/ E( Z! n: P' D! |
  36.     CALL 6FC2A556    6 |' W( g1 N# g. u; F" w- z0 W
  37.     CMP EAX,6D   j/ R1 G7 O) o0 `% A
  38.     JNE 6FD17C79 + k( \: ?: f& G% Q; l
  39.     MOV CL,BYTE PTR SS:[EBP+6D]   q- i; L2 b0 {5 q+ x* z
  40.     CMP CL,2
    ( t" p* V' Z* U& l; ^) `1 U
  41.     JNE 6FD17C79
    * e) X; Z5 k0 o+ i/ o6 e6 h9 ]+ \, d
  42.     LEA EDX,[ESP+24] 7 G" K5 Y" r! G- Z/ w
  43.     PUSH EDX                                       
    7 Q/ [( R. h1 t/ o; A* \
  44.     PUSH ESI                                7 j# W* A# I% d6 m
  45.     MOV DWORD PTR SS:[ESP+38],0 5 s, J7 {$ b$ R7 x3 H! h
  46.     CALL 6FC2A544   
    . K9 U% G2 @  [. s" W
  47.     PUSH 64                  
    3 e* o4 Q5 Y* w+ X4 M) |8 t4 `# X
  48.     LEA EAX,[ESP+34] / Y, Q/ X" O9 F) c4 y
  49.     PUSH EAX                        
    " @8 v% r$ q3 n( \/ L3 A
  50.     PUSH 400                        
    8 ~% R/ \: `- q7 N
  51.     PUSH 3                  
    . m' ^  W* \' `
  52.     LEA ECX,[ESP+34]
    % d' ^; Q; u7 a& v( ?7 _
  53.     PUSH ECX                                  a! d. M( H& {$ H+ S
  54.     PUSH EDI                        : A* q+ [' w, j) m5 x
  55.     CALL 6FC54130            
    5 p9 X; m4 _5 j5 Y& b
  56.     MOV EDI,DWORD PTR SS:[ESP+30]
    % ~- A: ~* P, b0 P9 p
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    0 \4 m5 U( Y2 H/ g: S
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    ) T* d  Z5 R) s: p& m" y3 P
  59.     MOV DWORD PTR SS:[ESP+14],EDX 9 a. p5 Z' w% _& [0 f
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    : \! }) q) l: o& P9 ~
  61.     PUSH EDI                        4 j$ M! P# B+ {4 t
  62.     CALL 6FC2A808    ' V+ a$ ]: D; S! I$ N! F% o3 Z! x
  63.     PUSH 27                  # D' A6 r7 E$ [5 s. h; |8 L5 x
  64.     CALL 6FC2A56E   
    # i) ~& b9 `/ U$ z" T1 W! O
  65.     PUSH EDI                        
    1 q  x. u9 u4 c- r
  66.     MOV BL,AL        
    7 p: A5 y/ {: t9 [7 T) y0 F' x8 b
  67.     CALL 6FC2A556 7 h3 k' q' {" b# Z0 H
  68.     PUSH EAX                        
    . H& @  @8 q7 ?: p
  69.     MOV DWORD PTR SS:[ESP+1C],EAX 5 T6 b* ~5 Q' f
  70.     CALL 6FC2A56E 5 D9 O0 k4 a. ]. b: X  L
  71.     MOV ECX,DWORD PTR SS:[ESP+10] ' [0 h4 d7 i2 b
  72.     MOV EDX,DWORD PTR SS:[ESP+14] 3 E, u$ C0 H; z( w; N
  73.     PUSH 0         
    7 H2 q; d; a' l6 }0 s" x8 y; _
  74.     PUSH 0C01
    0 K& x4 _6 Q7 i9 M
  75.     PUSH 3E01 1 _, [/ Q/ \/ r+ D3 D3 V2 a1 d
  76.     PUSH 3
    - X  h7 l" A! k* Q! p7 ]
  77.     LEA EAX,[ESP+2C]                ! X) B% c$ g+ p' |
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    & c- b- q4 F4 W/ s) [
  79.     PUSH EAX                $ P- }8 b" u% l# v) w5 D1 W
  80.     MOV ECX,EAX      7 q3 k, T" ^/ D' n$ z# ]- {
  81.     PUSH ECX                ; o- A  Y0 L- t
  82.     PUSH EDI                        
    , p0 Q( a* |' ~2 l  d. ]
  83.     MOV DWORD PTR SS:[ESP+3C],EDX
    % O% J) O7 S# ?9 x
  84.     CALL 6FC2AE98   
    7 w+ ], X- Y3 o% ]
  85.     MOV EBX,DWORD PTR SS:[ESP+1C] . w7 K# Q0 s/ a( ^
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    : u0 t( b# K4 s, \
  87.     MOV EAX,DWORD PTR SS:[ESP+30] 3 C( j' ?' A% m2 G  |* N
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    2 K7 B. [7 H; e3 _# F8 v& A+ H# U6 S
  89.     MOV DWORD PTR SS:[ESP+14],EDI " H' w4 W7 A, r4 T
  90.     CALL 6FC21280 ) @$ A4 b, l4 O/ w/ f
  91.     MOV EDI,EAX ! L* r6 D+ G6 U* }; z( [& ?
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
    6 L7 H' Z/ H/ h/ I6 u; W5 F
  93.     PUSH 0         
    # U) S# F8 P7 H" F# `. _2 J* C. L
  94.     PUSH 1          + m! N0 L) \8 {. q
  95.     PUSH 1   e4 _" i; q% w) Q( O! w: O
  96.     PUSH EDI        
    ' O& ]6 p  u! c; ^9 g
  97.     PUSH EBP        
    " ^9 `- j7 v8 n* @5 d3 h- i% m
  98.     PUSH EDX        
    , G+ E9 h* v: C4 v
  99.     MOV EAX,EBX      * L2 {( J3 Y' y/ Z
  100.     PUSH EAX        
    ( s# V; B  S. v- b+ W
  101.     MOV EDX,3C      
    9 T- i9 c+ t0 w$ s; p
  102.     MOV ECX,2        
    2 ^: Z9 ?$ j8 U. T7 s! b8 h
  103.     CALL 6FD01D90    , }  j. I* R% H0 v
  104.     MOV ESI,EAX
    # X# T+ y" O/ x% k" r
  105.     PUSH 1
    5 j% a7 e) a7 f8 i5 V) Z2 K
  106.     PUSH ESI
    : r6 w' J: @9 X( w0 B" B+ b+ q
  107.     CALL 6FC2A4A2
    ; a/ z& {. ]. m- M4 F  N3 z- Q- B2 I
  108.     MOV ECX,DWORD PTR SS:[ESP+18] * T  V5 A5 j$ U
  109.     PUSH ECX                        
    , k" J! O# k& Z8 A" `
  110.     PUSH 88                          
    . S& c8 x% Y# P
  111.     PUSH ESI                        / P3 D2 R! q6 Y: p8 x2 Z7 j
  112.     PUSH EBP        
    & j  P% \: {& Y: n
  113.     CALL 6FCC22E0   
    # Q( m5 g  ~" f/ V# Z; H5 I
  114.     POP EDI ! O% |& z5 j4 G  P
  115.     POP ESI 9 b  \% i4 {9 L3 U" B5 [8 j9 D
  116.     POP EBX ! a" W  c  t6 t1 `
  117.     MOV EAX,1
    $ b$ r/ ?  Y% v
  118.     POP EBP 9 h& _9 U! g1 C( H" U  @
  119.     ADD ESP,1C ; t# F) e; i" B3 j
  120.     RETN 8
    - J) E4 a1 d9 i
  121.     PUSH ESI 4 l  ^& p2 a- p: \8 M
  122.     MOV WORD PTR DS:[ESI+6E],14
    8 H0 {$ _9 O1 H' B# j- h
  123.     MOV DWORD PTR DS:[ESI+70],ESI : j2 _: h" D" T  X5 g& y+ V9 P; g1 [
  124.     CALL 6FC2A4DE
    , o' E) F+ C5 C2 a) @8 ^
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4] + I( g$ i1 e1 d$ q* h% B
  126.     OR EAX,00000400 * z/ s3 K1 t& l$ m$ H+ Y- l' l
  127.     POP EDI
    8 Z7 g4 v, D  k. Z0 }2 \  m
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX 7 u5 d, V) X% B8 Z
  129.     POP ESI
    ( t5 f7 y+ a( q! q! L
  130.     POP EBX
    2 {) Q* t* M4 G% |- e
  131.     XOR EAX,EAX 5 }' T% h7 H8 E0 l6 u- q
  132.     POP EBP / G, W/ Q6 m, ]. M, A! @
  133.     ADD ESP,1C " v% l: Z* @. S5 F2 R4 Q% S
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。/ D6 x! n4 I5 [- a+ H
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。
+ O4 @- l) U, o9 `' x* o
: }8 d( z4 n; V2 @7 V( w# \修改的限制代码为:
6 w: x+ `! p# h- z
  1. 地址= 6FD17B75      # t6 n9 H) x# g. k: F
  2.     CMP EAX,6D         6D为第五幕城内
    * X; M2 k; u1 U' t
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E * I/ [6 X" |4 Z6 M4 ~
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内; v+ y! ]: F1 ?
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱( j6 p3 r1 o* n; L! W
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。/ \0 h! G  e& H- N  ]
3 e' V- I+ m0 d- a
修改箱子合成部分* |0 f& O% l% N9 H7 u
1、d2game.dll,跳转至6FC92417
$ }6 B2 m1 J8 N5 C: P
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
# r  W+ ?7 z8 s) p- |9 |  F, ?
  1. CMP AL,4
    , ]& l0 @0 b# c
  2.     JE SHORT 6FD17AE4
      ^" b& E; S) U9 S) i8 u: P$ Z" M
  3.     MOVZX ECX,AL
    2 c# M  w4 y- m- N
  4.     JMP 6FC9241E
复制代码

1 z- Q# X4 h( I3、跳转至6FD17AE4! Z+ f# i+ C' w7 D
  1. MOV EDX,DWORD PTR SS:[ESP+12C]
    ! N! g" A5 l1 [( a# ^6 u' B
  2.     MOV ECX,DWORD PTR SS:[ESP+128]
    3 _3 g$ W, F0 L
  3.     CALL 6FD17A2B + C9 |0 m$ W/ c; S) |
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B( \" m  r* b% Z; u' b
  1. PUSH EDX
    2 Q  x0 ~9 d, c8 M
  2.     PUSH ECX 8 h  @, c, o7 E  Q& c# C
  3.     CALL 6FD17B0F    3 B6 i  v: W  d) E6 l' v
  4.     RETN
复制代码

& l8 @; F3 [8 x; A) U& H% J) y3 j
2 o: z( T7 d  _3 ^" D. u& zDLL部分修改完毕。
0 z, ~4 E" J4 |& y0 A/ a: \在cubemain.txt 添加改红门开启的设定
$ n0 A' ~* r7 m) T4 y: B条件设定自行定义,在output处填入Portal即可
) X' g% ?5 w! |( Y4 N, v
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇
+ `4 u8 v$ o0 p) o7 A4 Q! S经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error
$ F$ Y! @. s3 |8 T* x: c( Y8 K. g- s/ E5 x4 N" z
然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-8 10:45 , Processed in 0.058098 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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