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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4066|回复: 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
5 B8 ~6 P3 f% s8 \1 R! h该教程仅限于暗黑1.13C
* h. R$ \" K3 Y: [/ [; L4 ?0 @
; w7 ~2 _' M; r3 [使用hex 16进制修改工具打开D2Common.dll
; ~' b- l- b: b* W' @0 Q3 Ectrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C
* O6 c3 l" Y* E2 Y
& _' o+ R- m: E) X使用OD软件打开D2Common.dll,0 n& D$ g( ^: f0 y8 k8 w
1、ctrl+G,跳转到6FDD87EB,输入以下代码7 }5 |6 h' C% S8 L/ a; W$ B
  1. PUSH  6FDE4F60
    ( ^6 K* D( |- `+ F$ H4 T
  2.     PUSH EBP
    $ M( }7 h* x4 m+ a3 t  y
  3.     MOV DWORD PTR SS:[ESP+20],ESI & t3 l3 c# e+ d8 g
  4.     CALL 6FD51EC0
      ~# P" r( w. G" h9 x
  5.     ADD ESP,8
    - A- ]: D3 K% C  H6 T' l+ X
  6.     TEST EAX,EAX 0 {, R  g& B% V  L5 Y
  7.     JNE 6FD6BAD0 3 j* L  O% `+ u3 B  b* F6 l
  8.     MOV BYTE PTR DS:[EBX+8],4 6 m: Q. q+ U- r& }6 t  D* }
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC59 g) J' O# [5 ]  z& N" E" Y" e
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
3 |/ y9 L2 N0 Y" J0 l" Z% D# |
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll$ g3 V; @' N& H) ~0 J
1、跳转到6FD17B0F) C* t0 n7 f5 m4 G1 Q) k$ @( u
  1. SUB ESP,1C & g$ Y( j5 g5 z% p$ k' B: B: ?
  2.     PUSH EBP
    1 L' [7 z- z+ q* ^/ Y# x7 r
  3.     MOV EBP,DWORD PTR SS:[ESP+24]
    8 B1 B& ~$ \, f) @& w# }
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4] 5 q0 P! G# k# a1 Y3 u7 o4 b+ t
  5.     MOV ECX,DWORD PTR DS:[EAX+8]
    , [. P' B0 O1 E1 s- T% C
  6.     MOV EAX,DWORD PTR DS:[EAX+0C] - T1 |4 z, V  Z) h
  7.     PUSH EBX , ]: P+ E$ b2 I3 f
  8.     PUSH ESI
    - ]3 F' z. l% T  o
  9.     PUSH EDI , t: l- N# o. D- t! X% o8 O3 w
  10.     PUSH 0B                                                         
    # U4 Z8 i( R4 M- j# x+ `) G) F/ u& {
  11.     PUSH 4                                                  / x  {- K9 O2 k6 Y9 b4 q
  12.     PUSH EAX                                                        6 @. _7 x3 ]6 a
  13.     CALL 6FC2A568            
    5 K/ v& V/ l+ t( Q+ |/ B8 y
  14.     MOV ESI,DWORD PTR SS:[ESP+34] / M0 [1 m* ^3 W" a, ~- O3 R9 w
  15.     PUSH ESI                                                                9 `$ s: @# A; N% J- Q) j# p
  16.     CALL 6FC2A4C0            
    6 x/ L6 f. S% _5 p, m8 G- |
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D] + _6 m' R/ S4 T& z# `
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    7 w3 x- h$ ?9 F8 E3 @' \, }- ?
  19.     PUSH 0A                                                         
    9 B; x% B: S" T; l, L2 l
  20.     PUSH 4                                                         
    4 {! z$ ^1 s  w4 b7 G/ L
  21.     PUSH EAX                                                                ; w0 b; v$ g- m7 @( }* S2 h0 ?
  22.     CALL 6FC2A568            
    ; |# n7 q1 P8 \% p; V
  23.     MOV EAX,DWORD PTR SS:[EBP+70] 6 p/ P& G0 g  t
  24.     PUSH ESI                                                        + Z+ S, [0 {' u* C& p; L+ |
  25.     CALL 6FC2A4C0                    
    ( ?$ x) e3 z. C; [& s
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D] 2 y, c% _! u% m" |6 f+ i1 l+ P
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] * Q6 G, b6 }) @  C( X. N$ P$ M
  28.     PUSH 0                                                  
    / c- ]! p. C; V7 N' k# [
  29.     PUSH 28                                                  
    & j9 Q2 P+ v4 Z2 |! |
  30.     PUSH EAX                                
    + q2 m. s8 j8 |
  31.     CALL 6FC2A568                    ( ]- n' O) f. n! e. ]
  32.     PUSH ESI                                % ?3 H) I$ t1 h: e8 ?, c& o/ [
  33.     CALL 6FC2A478            3 l7 N2 q* ?# Y. P
  34.     MOV EDI,EAX " U& W$ J& ?6 t9 K; C* ]: x2 q7 C
  35.     PUSH EDI                        : |' ^( q: R0 u) F' m6 s9 c3 q
  36.     CALL 6FC2A556    ) ^' p2 Y1 ]6 m6 m: K& F  r, ]# k
  37.     CMP EAX,6D ; r* ]6 x# S% ]6 J/ n: S" d
  38.     JNE 6FD17C79
    2 y$ B1 o/ u' Q: Z- N9 S/ Q" G# m
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    / \+ Z% b% q9 o2 o, o- C0 z
  40.     CMP CL,2
    * H7 k7 O* [* Q$ ?! e
  41.     JNE 6FD17C79 6 a5 d  J( ^1 [1 H, ^* @* M3 N
  42.     LEA EDX,[ESP+24]
    , u; X$ m% j0 p" S
  43.     PUSH EDX                                       
    1 t/ M1 O9 R! H$ Q5 \; P3 M3 u- g
  44.     PUSH ESI                                
    6 T# E% K+ Y9 G6 C& N7 z: O% w
  45.     MOV DWORD PTR SS:[ESP+38],0 % [2 r7 d4 A$ L
  46.     CALL 6FC2A544   
    + u; Y. m& J* ]6 E
  47.     PUSH 64                  + Y* R' [" u. `2 _) J
  48.     LEA EAX,[ESP+34] ! ^& K, r& D  T- p$ d
  49.     PUSH EAX                        - _$ d9 U1 m% P: ?; Y% T
  50.     PUSH 400                        
    % g/ S; r5 R" ~; l6 C
  51.     PUSH 3                  # n/ V9 V7 }6 V. h2 w0 z7 h
  52.     LEA ECX,[ESP+34] , p! p4 K2 u: A- `1 q
  53.     PUSH ECX                                4 ]! h2 }) F9 Q! Y, x. x
  54.     PUSH EDI                        8 S& S! K5 P3 E* F0 q! U$ D0 h- r
  55.     CALL 6FC54130            
    7 Q# u! J0 ~/ j; x: }# C
  56.     MOV EDI,DWORD PTR SS:[ESP+30]
    6 l7 Q' z0 v  L' ?9 W2 Y
  57.     MOV EDX,DWORD PTR SS:[ESP+28] - S& Y: t/ Q% g- u4 F9 Z7 J. a
  58.     MOV EAX,DWORD PTR SS:[ESP+24] % t% p; R+ |8 s# ?4 G
  59.     MOV DWORD PTR SS:[ESP+14],EDX - `* J5 Y% _6 \1 y5 E0 Y0 R5 o. P
  60.     MOV DWORD PTR SS:[ESP+10],EAX 3 w' O# Y+ d6 ?; v% [
  61.     PUSH EDI                        - P# J$ J4 f+ r' S* @# t% ?6 n/ w
  62.     CALL 6FC2A808    * {  E- C7 q7 Z' m% G  D$ L' T
  63.     PUSH 27                  
    ' z% J$ d9 |+ y: ?
  64.     CALL 6FC2A56E      z+ V  e. O3 e- R! c8 a* t
  65.     PUSH EDI                        
    , c) _. J$ _$ r
  66.     MOV BL,AL        
    # W9 o% Y: m: L/ I; }
  67.     CALL 6FC2A556 1 Z6 L& X! J: Q( [* |) W
  68.     PUSH EAX                        
    # }, }/ B! d$ t* E4 x
  69.     MOV DWORD PTR SS:[ESP+1C],EAX
    8 h" I/ k* `% a  p5 }
  70.     CALL 6FC2A56E
    3 ]5 O% {" Z5 t$ ~
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
    # _+ e& u$ [0 l, g2 {+ S, q1 x6 ]
  72.     MOV EDX,DWORD PTR SS:[ESP+14] . d7 R* }# c+ T: T: g' h
  73.     PUSH 0          / }) T/ p" T" n
  74.     PUSH 0C01 5 B- x5 A9 ~% [" N4 u" T
  75.     PUSH 3E01 ) F  q( c; E' m7 B2 Q
  76.     PUSH 3 ; L7 g; Q! u8 A0 ~+ \. k1 E# @7 F
  77.     LEA EAX,[ESP+2C]                " p1 W1 y& b( c
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    3 @6 J7 ~- S! {/ G' [
  79.     PUSH EAX                , `& O( m5 c, N+ o1 L* s
  80.     MOV ECX,EAX      % f1 u5 b0 Z0 x" A0 K- ?
  81.     PUSH ECX               
    2 x7 `- v7 M5 h
  82.     PUSH EDI                        ; J' d" `  V; q
  83.     MOV DWORD PTR SS:[ESP+3C],EDX , y+ z, H3 _/ {0 s* A- M- |" }
  84.     CALL 6FC2AE98   
    ) B" ?9 g" N, Z9 u" z' X% @8 u
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    ( T4 I+ R7 u5 r$ k  P
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    . K4 N3 ^8 U+ P5 ?  G
  87.     MOV EAX,DWORD PTR SS:[ESP+30]
    4 j# j2 D- [: P, S& _
  88.     MOV DWORD PTR SS:[ESP+10],EBX 4 a6 U( c& p. H* Z  B* s' F" |  x
  89.     MOV DWORD PTR SS:[ESP+14],EDI
    : ]9 Y' E6 d! ]; S- T& ^/ k, w
  90.     CALL 6FC21280 3 ~1 A* @& L& b+ U$ G# D% f
  91.     MOV EDI,EAX
    # {; _2 A/ Q- c9 ^: y7 l
  92.     MOV EDX,DWORD PTR SS:[ESP+14] 7 ?) b/ p! g* y9 }7 A5 G
  93.     PUSH 0          ) \+ L" a+ ^6 V4 k5 f4 O: O
  94.     PUSH 1         
    ; I/ P& Z  t2 u6 O( S8 d3 N) `  l
  95.     PUSH 1
    2 y, V: N$ |) F6 n, ~
  96.     PUSH EDI        8 v* ?0 v9 l4 W8 X
  97.     PUSH EBP        5 `* ?2 P- `7 m
  98.     PUSH EDX        ) n  h, }) {+ k
  99.     MOV EAX,EBX      
    0 ?1 D+ u- f" m; e& V4 l
  100.     PUSH EAX        
    ) N  f1 k( l) u5 Z9 J
  101.     MOV EDX,3C      ; |$ q0 e# m% w5 i9 z4 U: e* l# b
  102.     MOV ECX,2        
    8 _5 F9 a; @" S  p9 d4 c
  103.     CALL 6FD01D90    7 b4 m+ p1 w( L1 O' h
  104.     MOV ESI,EAX 3 T/ V2 E. `; H  {6 z
  105.     PUSH 1 * ]: |( V  O- P( M( R
  106.     PUSH ESI
    7 h) f9 X$ c$ ^! d) _) A
  107.     CALL 6FC2A4A2
    7 z& A( B9 q- \) J. ~' t8 I
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
    4 a) W& W( r) o- S
  109.     PUSH ECX                        
    % V0 m. T1 j: G- J8 A1 e  n
  110.     PUSH 88                          
      g9 K+ \5 U, D% g1 K2 ^8 \) _# d
  111.     PUSH ESI                        
    / z7 V4 b3 x3 Y* E7 p
  112.     PUSH EBP        2 F: X& U7 o- \$ J! e
  113.     CALL 6FCC22E0   
    . Y8 R7 i' N1 u" ]4 E1 z7 O9 B4 K
  114.     POP EDI
    : j7 H. d7 _- i. f
  115.     POP ESI $ B; u4 w* G' ^( W% D
  116.     POP EBX
    ; S: d* V, Y3 u% W% X* r; A
  117.     MOV EAX,1 2 E% }2 w4 Q4 R* }8 S- {  W; f- `
  118.     POP EBP
    : I2 X) B4 ?3 w! k: Y1 B4 `+ T
  119.     ADD ESP,1C , E/ G, {( O1 B8 {& V3 f% X! j+ G3 J$ O
  120.     RETN 8
    % N8 z# P% ]- o6 a
  121.     PUSH ESI # f0 u( [" v' V
  122.     MOV WORD PTR DS:[ESI+6E],14 % f* p* K. Y& Z, H: H' Z+ M
  123.     MOV DWORD PTR DS:[ESI+70],ESI
    & m, S& b0 y3 T/ y4 M7 r8 n6 {
  124.     CALL 6FC2A4DE
    . S5 u! E1 a8 j" c8 S4 \1 P
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4]
    & h6 A  J2 v4 K7 b
  126.     OR EAX,00000400 4 O: P0 M- P3 |( J6 u) K5 s
  127.     POP EDI , Q+ f7 i4 I/ S! x* \$ r% V
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX ! }4 u0 `+ P% ^# t6 G9 G% m
  129.     POP ESI + s) I3 S! ]; e& M- V$ i
  130.     POP EBX ! n1 h  l0 u# k8 s
  131.     XOR EAX,EAX . Y8 R, j( |$ s0 L
  132.     POP EBP
    6 J" n1 A2 I: U
  133.     ADD ESP,1C
    ) v6 V5 u' {. D, `
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。
' O' v, q, \3 N: f6 \- H0 g地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。8 e, U5 o1 {* P! c

- A! [0 `$ S% q, s! r0 ^. M" M修改的限制代码为:/ h+ Y% J. q8 W0 T/ a0 U
  1. 地址= 6FD17B75      
    % V- }2 V9 W& P1 u1 k
  2.     CMP EAX,6D         6D为第五幕城内+ m( r+ u" ?7 T9 ]3 h- k
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    8 X2 g- J/ z: |1 k7 }
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内& y5 s2 n0 @" ]7 g  W
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱
    7 e6 w& b3 g: T+ [5 o5 R  y
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。
- O/ }2 t7 }; w& E3 b
  U2 u$ y5 x  P7 Q0 v6 v修改箱子合成部分/ {$ R$ N4 g& P8 y" o% l
1、d2game.dll,跳转至6FC92417
/ S3 q3 n- L1 J5 X1 c
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8( D1 Q: o+ ~0 V$ D
  1. CMP AL,4
    ( {4 o8 s. C( f: K) w& T8 N
  2.     JE SHORT 6FD17AE4
    # h% c5 `2 {; Q' T' {. `- \0 m+ \
  3.     MOVZX ECX,AL # f8 u  V, ]2 T8 ~
  4.     JMP 6FC9241E
复制代码

; O' Y/ q, X; l4 r$ R3 p! P3、跳转至6FD17AE49 q& p; T" `; _3 v' o2 O
  1. MOV EDX,DWORD PTR SS:[ESP+12C]
    % Z0 Z, U1 _# x" f, m8 ~( ~* `
  2.     MOV ECX,DWORD PTR SS:[ESP+128] & K( |3 Q  b/ E! I5 A$ F6 P
  3.     CALL 6FD17A2B 8 S2 b8 M: Z  [4 W7 S7 z* ^
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B* x5 S3 E% C$ ~! \
  1. PUSH EDX
    0 f: t0 V" h6 H& P6 `5 E- q
  2.     PUSH ECX
    , b: ]0 E" C+ F
  3.     CALL 6FD17B0F    % h, ?: o# G2 P5 _
  4.     RETN
复制代码
: i% u! G  B8 s9 J, Z: w5 ]
2 I+ @: Y2 S0 b" e
DLL部分修改完毕。0 l# j9 x- Z) J( w# u
在cubemain.txt 添加改红门开启的设定
0 q2 H+ j" |. X( j4 ~, f3 H条件设定自行定义,在output处填入Portal即可' b: l/ f. |# R2 Q. |0 [+ S
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇: s/ v. P7 U& o* e
经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error5 ~+ l1 M# F9 J% R* M, e0 X

3 {2 e- D& K8 e6 w然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-31 03:19 , Processed in 0.151379 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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