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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

361

回帖

830

元宝

1

圣者绑元

管理员

Rank: 9Rank: 9Rank: 9

积分
1
发表于 2018-8-29 20:12:12 | 显示全部楼层 |阅读模式
转载:http://diablo.phx.pl/forum/viewtopic.php?t=622421 Y5 }0 x/ }6 j9 R8 ^8 I$ s8 z
该教程仅限于暗黑1.13C
1 x( o, V: i( k0 Y
% d) n; V2 @+ ?5 r* Y- l& {使用hex 16进制修改工具打开D2Common.dll( f0 C. ^# q# l; u+ T. I
ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C% j3 }  Y1 O/ K8 M, F/ [
" C& d) i2 [$ k/ n0 t
使用OD软件打开D2Common.dll,. J$ b. a9 @* T' Q
1、ctrl+G,跳转到6FDD87EB,输入以下代码
. y" q' i5 b3 T; a$ C3 }
  1. PUSH  6FDE4F60 + @( ~) F: h8 @& y6 v+ B# Y$ n
  2.     PUSH EBP . W, ?+ g# ]$ |! |. L8 S
  3.     MOV DWORD PTR SS:[ESP+20],ESI
    + F4 u! b: W9 Y- K+ W6 }
  4.     CALL 6FD51EC0 5 l9 N3 [$ W& E3 g: f2 ]
  5.     ADD ESP,8 / l. P6 a3 K: H3 ~5 G& Z
  6.     TEST EAX,EAX % B, i+ Q4 @! K% L
  7.     JNE 6FD6BAD0 * ]. L+ Z- k+ l$ }* p* B3 K
  8.     MOV BYTE PTR DS:[EBX+8],4
    ' P8 C( L; b* U2 K9 [* k2 q. W
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5
9 S7 W9 s) R* Y9 ^9 a
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
0 K: U& D- {/ d2 ~/ `% E
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll- ?3 r$ d/ G) o4 X
1、跳转到6FD17B0F0 }; o) ^7 M6 i! g* T% q
  1. SUB ESP,1C
    % [. k  h. r9 C( j+ T7 I
  2.     PUSH EBP
    * V' z+ @  e3 C' o. h7 m) `! e
  3.     MOV EBP,DWORD PTR SS:[ESP+24]
    ( B/ g- f4 s% L  ~
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
    % y, v# Z1 U; ?8 X
  5.     MOV ECX,DWORD PTR DS:[EAX+8] ' s5 h* \) C6 X
  6.     MOV EAX,DWORD PTR DS:[EAX+0C] 8 {% H, x" x+ s
  7.     PUSH EBX
    , \4 v; c. ]& Z! x) }: F+ n
  8.     PUSH ESI & K- I9 a) V. H2 l! p+ a' `  U
  9.     PUSH EDI
    & E% M' v$ t8 ^. {
  10.     PUSH 0B                                                         
    " q4 u6 i9 K( ]4 m0 K3 u5 u
  11.     PUSH 4                                                  , Y- p0 T4 `/ y& o( r1 n
  12.     PUSH EAX                                                        9 K/ A3 E% j& @# U/ Z$ P) h9 L( g5 c
  13.     CALL 6FC2A568            
    5 Y$ v0 J+ K) h/ i- q, G% ]4 h
  14.     MOV ESI,DWORD PTR SS:[ESP+34]
    1 b3 i) J# ?3 m, S. X9 x
  15.     PUSH ESI                                                                * g4 Z$ p) l% d) N! b
  16.     CALL 6FC2A4C0            
    # V. i. g, B1 l# |2 U5 z4 J
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    1 z9 E: R0 O" ?, Y
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    : B3 a$ y7 A$ d2 d) `* k% L! ~
  19.     PUSH 0A                                                         
    * J0 V$ \: s9 D8 U
  20.     PUSH 4                                                          4 r) G, c. y/ ]: `  O8 r
  21.     PUSH EAX                                                               
    & u# r- K- z: ?3 V, M1 K: y6 q
  22.     CALL 6FC2A568            
    ; w+ K. o6 E. ~( {
  23.     MOV EAX,DWORD PTR SS:[EBP+70]
    + H# B/ W4 f9 G
  24.     PUSH ESI                                                        ! F8 d" q0 J6 F/ O6 P* Z4 T9 ~
  25.     CALL 6FC2A4C0                    , J$ _9 ^+ A8 ~7 E
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    ! L9 Q1 `9 l/ b2 h: @
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] 3 Y+ m% c8 W! L
  28.     PUSH 0                                                  9 E- M8 D' v$ g
  29.     PUSH 28                                                  
    , {2 a/ D9 G- J$ H4 @
  30.     PUSH EAX                                & t5 P) _) j2 a* e, y' z8 L" d
  31.     CALL 6FC2A568                    
    5 n; {& f* M' A! S! @0 o* Q- d
  32.     PUSH ESI                                
    3 G- _' X/ u+ f8 r$ ~8 A
  33.     CALL 6FC2A478            " `5 M; t- w7 Q* w4 G7 y
  34.     MOV EDI,EAX
    % \( z1 x  C: `
  35.     PUSH EDI                        , P$ B& l2 l: n4 F( J# g7 ?
  36.     CALL 6FC2A556   
    * ]% ]" v0 [) v3 Q- a+ l
  37.     CMP EAX,6D
    ! I2 `5 G* _1 b, ^
  38.     JNE 6FD17C79 # @. k2 X3 T: e" ~4 H2 {; [
  39.     MOV CL,BYTE PTR SS:[EBP+6D] * e' B! O9 F8 n8 h. j8 w! H' ~3 t
  40.     CMP CL,2 6 s1 t" f- k4 {) A
  41.     JNE 6FD17C79 ! |; K3 d4 `6 D7 Q6 g" S
  42.     LEA EDX,[ESP+24] # k% m- \, W0 b' R- U, U
  43.     PUSH EDX                                        5 M, C8 D* j! M
  44.     PUSH ESI                                
    $ R3 Q/ M) \2 H1 {) m3 N
  45.     MOV DWORD PTR SS:[ESP+38],0
    . v1 ^- B/ \# T/ X& S& N1 I
  46.     CALL 6FC2A544      A, d$ j! I% X: @% r
  47.     PUSH 64                  
      o) d, L. F9 `& R+ Z5 c  P( s( x
  48.     LEA EAX,[ESP+34]
    2 |' Z# r! V! v, M
  49.     PUSH EAX                        
    - ~- N3 T$ \% h
  50.     PUSH 400                        
    4 Q1 k" Q. I6 L$ ^  P
  51.     PUSH 3                  / q7 S7 b# i/ U- F# b7 [
  52.     LEA ECX,[ESP+34]
    / Q7 w3 g' r* n/ h
  53.     PUSH ECX                                
      E+ M2 a( Y. r( M4 R& D% o
  54.     PUSH EDI                        0 |" a( v' W% ^4 C) t2 r; z
  55.     CALL 6FC54130            
    ! q+ Q) t$ b' v* q3 y
  56.     MOV EDI,DWORD PTR SS:[ESP+30] 3 E0 E& f; A2 g8 E6 N
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    / ^2 f( l+ h1 C2 Z+ K+ o
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    * L. p! n1 d( B" b' A
  59.     MOV DWORD PTR SS:[ESP+14],EDX * i. W+ ?. ~" {+ w3 p- [
  60.     MOV DWORD PTR SS:[ESP+10],EAX : Q+ z2 U5 Z2 i3 \% t. V
  61.     PUSH EDI                        . ?0 K  b% V+ y9 D7 \7 F5 w
  62.     CALL 6FC2A808    4 \9 s4 M: Y* _$ `/ I
  63.     PUSH 27                  5 {6 g: i2 M- l* [" y
  64.     CALL 6FC2A56E    & D! s+ Q: f* G' Y5 P
  65.     PUSH EDI                        
    * X# n9 {/ \, @7 b5 s" x: a
  66.     MOV BL,AL        
    $ x, T% s! e# Z4 ~, r
  67.     CALL 6FC2A556 8 E. Q3 h6 l! j, G# |4 N7 D
  68.     PUSH EAX                        % A8 L% |  f; P: \
  69.     MOV DWORD PTR SS:[ESP+1C],EAX
    3 I% h- N5 M! F
  70.     CALL 6FC2A56E 6 q- V2 Y- b% ^6 D$ K5 B5 h
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
    $ {& ~3 D, L6 P3 F' g+ p, ?. ^. M
  72.     MOV EDX,DWORD PTR SS:[ESP+14] 4 ^8 f: b2 x; e* X
  73.     PUSH 0          ( A4 N  {- W- ?. W4 ?; Q
  74.     PUSH 0C01 % G& t" }% S' T3 E1 @& h% C$ H, I/ |
  75.     PUSH 3E01
    , r5 h/ ~- e1 v: E+ r
  76.     PUSH 3 % v" }2 [5 q5 s: \+ h/ X! O+ U
  77.     LEA EAX,[ESP+2C]               
    % T/ F% \9 W( j0 {, ~/ G" f
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    4 t: J# q& v( X7 g" C2 M2 T: ?
  79.     PUSH EAX                : @- z: u, q# z& Z: D
  80.     MOV ECX,EAX      ' O! \; b' C! Q) I  N3 P* ~% x
  81.     PUSH ECX                / W) P& s8 K  d* Z5 T
  82.     PUSH EDI                        
    - g+ [9 m# q7 f9 X- \0 a
  83.     MOV DWORD PTR SS:[ESP+3C],EDX 7 L4 H. O; S3 b  U# K% m- b, N
  84.     CALL 6FC2AE98   
    ' X/ o2 F% w/ O! k; Q
  85.     MOV EBX,DWORD PTR SS:[ESP+1C] 3 g) x' W0 M* e/ U6 E
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    ! I1 m  H6 g) F5 r7 m$ o; Z
  87.     MOV EAX,DWORD PTR SS:[ESP+30]
    ; z/ [4 V" x2 V; @. a* b7 i
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    ; h1 }) V4 {- y' i
  89.     MOV DWORD PTR SS:[ESP+14],EDI
    . \# V4 G) w: _0 l+ V  j
  90.     CALL 6FC21280
    . n( y5 s% g& x9 _! q) p0 z: |. D! M
  91.     MOV EDI,EAX
    * X0 x$ ?2 ?4 t! z: ?/ |
  92.     MOV EDX,DWORD PTR SS:[ESP+14] 9 M7 H; y' }- u  Z+ N" V% [8 a
  93.     PUSH 0          9 V- P+ N+ C2 Q3 t6 K/ U# V2 C7 S
  94.     PUSH 1         
    ; x, J9 N$ i+ ^6 \; `4 l5 M2 D1 [
  95.     PUSH 1 % |* s% g* n+ ~& f& I$ V
  96.     PUSH EDI        ( w/ B; h8 e( c4 S) G
  97.     PUSH EBP        
    9 M/ Z( i6 A* p
  98.     PUSH EDX        2 G7 [6 \, A: _7 {4 N7 u; b
  99.     MOV EAX,EBX      
    0 ?* D5 h" ]+ x3 X/ m: v
  100.     PUSH EAX        
    $ q( {  g( O- |, m
  101.     MOV EDX,3C      
      b; h3 J* Q3 r% |3 i  m$ |
  102.     MOV ECX,2        0 N+ S5 v, i' Q& j
  103.     CALL 6FD01D90   
    ( ]7 F* n; ^0 Z4 @4 a$ h5 x
  104.     MOV ESI,EAX 5 B$ U2 D' w# u" B3 S
  105.     PUSH 1
    3 [( u- H! Z6 q3 W( n
  106.     PUSH ESI
    3 \6 t2 S3 b# O9 t1 V
  107.     CALL 6FC2A4A2 4 K+ u) j/ Z' X6 e! |
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
    - h8 m4 v% j# Z$ P% m# p  K1 I9 L4 S  A% n
  109.     PUSH ECX                        
    4 L/ |: A% X7 ]$ N7 w
  110.     PUSH 88                          
    ! u' B( ?* P  H
  111.     PUSH ESI                        & z% z, ^& H$ ]
  112.     PUSH EBP        
    : j. E1 ?4 W6 @5 {" i/ S
  113.     CALL 6FCC22E0   
    ' s! ]* w* b0 G) o  f- ?
  114.     POP EDI
    : p" h5 |$ a$ f2 C0 r; ^% E
  115.     POP ESI
    * `% U* k6 ~) j$ Q
  116.     POP EBX 2 D/ Y6 E- m5 g) H) x9 N8 L6 ?5 F
  117.     MOV EAX,1
    ; Q- h" D7 U! R+ a" G
  118.     POP EBP
    ( d! t* x! V; Z0 S
  119.     ADD ESP,1C 0 y3 G4 {; U1 A/ q# K! @$ ^
  120.     RETN 8 ; n' L: i5 S8 F. D0 v$ g6 v# [. k
  121.     PUSH ESI $ n& f) u3 N5 x9 ?0 n! \( L# b
  122.     MOV WORD PTR DS:[ESI+6E],14
    ! i5 P  k: f* w1 N
  123.     MOV DWORD PTR DS:[ESI+70],ESI 4 Y9 o; }3 y9 A# B( x0 _7 @7 p; n
  124.     CALL 6FC2A4DE
    . E& r3 r3 m( e' C) Z7 a1 @
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4]
    & ^; p# i% f! k8 m. U" g; X
  126.     OR EAX,00000400
    - z+ R0 [( _3 b# |" L2 t
  127.     POP EDI 1 t/ R! E! H) H! ?
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX
    2 J3 i$ r; X7 @& O
  129.     POP ESI 5 |5 S. l! C) M3 S* c3 D0 M: C
  130.     POP EBX
    1 R* K" |1 f" b2 P! o6 j% l$ e
  131.     XOR EAX,EAX
    8 N( _3 h# E: x; y! s7 {; B: ^
  132.     POP EBP # H" P6 E3 G% i' q
  133.     ADD ESP,1C 4 L7 ~1 q8 _0 f" z" C8 b
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。
$ D$ a! [$ [, J6 O: |; i$ H2 n0 j地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。
# ]! l; H" v; `8 ?0 q5 F3 |" `* u$ `$ [- w3 k4 f9 @
修改的限制代码为:/ s8 `7 C. H  f- X* |1 S
  1. 地址= 6FD17B75      
    9 C1 H0 N2 r, w# d
  2.     CMP EAX,6D         6D为第五幕城内
    - D; V* ^/ G$ w2 T0 O
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E + B+ m8 Z4 X. K' V- d4 i8 E# x! C
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    7 D- ?% q: t. a3 ~3 M
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱1 @6 g3 {7 K1 {2 o( d* S
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。0 q7 x- O. @! l7 k" C' _* o

3 @3 Z2 n: [& h3 T修改箱子合成部分
" n8 y4 ^% U) [) K$ m1 e5 I! n1、d2game.dll,跳转至6FC92417
" a6 r: d7 D3 z) U% m
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
/ G$ k9 V; w, M0 z* Y: b
  1. CMP AL,4
    1 Y) B) v# U; _0 H1 D4 w; P
  2.     JE SHORT 6FD17AE4 5 X' l* K8 y( B: y- l' v$ [7 Y
  3.     MOVZX ECX,AL
    ' ~" s" |" f9 g0 E: P! i6 @
  4.     JMP 6FC9241E
复制代码

; ]7 l1 Z9 G+ A8 |9 }3、跳转至6FD17AE4
7 E5 V( z) }0 T, F" E2 s5 d
  1. MOV EDX,DWORD PTR SS:[ESP+12C]
    6 @7 L: b* B6 @; J  n" r) ]9 N
  2.     MOV ECX,DWORD PTR SS:[ESP+128] 0 e! B. W7 n* d( ~( `
  3.     CALL 6FD17A2B 0 R9 y6 ~& f) W5 @* \
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B% a& `, w9 I; W9 n+ |4 f9 n
  1. PUSH EDX ! n' d8 h5 y. B( i0 n
  2.     PUSH ECX 8 m, O& |1 i  e: J9 Z
  3.     CALL 6FD17B0F    & k4 c. I; X- e7 e: t
  4.     RETN
复制代码

  J% @4 b; N* l" o6 Z0 ~( T2 _
% Z" ^9 n2 E' _' zDLL部分修改完毕。6 F0 m+ F7 }6 o" h+ L+ b
在cubemain.txt 添加改红门开启的设定
" u$ _5 a5 s* y( t; q" |条件设定自行定义,在output处填入Portal即可
, `8 J2 E3 B' f( ~
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇
- L) I3 z" c; P) N经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error: z+ D% U1 @" j- B

, l3 P' |" n6 N& T3 z9 F' o4 K然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-11 13:49 , Processed in 0.056633 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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