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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4090|回复: 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
; f7 Y5 k- d  X3 U, b  |& K& P+ q该教程仅限于暗黑1.13C" \' o! |$ I4 o& b: P3 G
  S& J; D  G8 x/ C, w% P
使用hex 16进制修改工具打开D2Common.dll# v1 s) y6 e1 t7 u, k) I) ?
ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C# s* B% [/ G/ R' X2 T$ _" s
  H1 V- I) Y% k) Z' S& Z% ~$ j
使用OD软件打开D2Common.dll,
# s8 Y2 J! Y& ^# Z& D$ y1、ctrl+G,跳转到6FDD87EB,输入以下代码
+ L' c8 Y( {: K& i# H1 _7 G
  1. PUSH  6FDE4F60
    7 l. H/ d9 C0 [+ d
  2.     PUSH EBP
      Q' G, D  N, p9 T2 Z" j$ f9 F
  3.     MOV DWORD PTR SS:[ESP+20],ESI   {0 X9 N+ K, X6 m5 l
  4.     CALL 6FD51EC0 6 \9 s7 s1 E0 |5 d6 u7 Y( @* a, Q+ T
  5.     ADD ESP,8 " z( r" \1 l; n/ ?3 I+ n
  6.     TEST EAX,EAX + R; `$ q; ?3 O3 [
  7.     JNE 6FD6BAD0 / [2 }0 ~! G5 p1 A* K6 E4 k/ \# ]
  8.     MOV BYTE PTR DS:[EBX+8],4 $ z4 H- ^2 N0 e' k
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC59 k$ u! U2 A. p- C2 l
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A$ a. Q2 Y+ o. o. A6 U
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll/ Q  ]. `+ w5 z, v$ k# o- w
1、跳转到6FD17B0F
% {) d( Q. u* ^. U; v5 R- K/ S1 A3 Z
  1. SUB ESP,1C - a) r. X, V* d5 P( }
  2.     PUSH EBP
    0 K  }  W4 e( \& a
  3.     MOV EBP,DWORD PTR SS:[ESP+24]
    : w" N& ~  ]1 B9 f
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
    ( q6 ?6 u$ z$ t" _( ]8 H
  5.     MOV ECX,DWORD PTR DS:[EAX+8]
    ( e& a8 `. u  m6 {) A
  6.     MOV EAX,DWORD PTR DS:[EAX+0C]
    2 O- O( l+ g8 P/ L* ]' e0 `
  7.     PUSH EBX % ~1 |& n; D+ a/ O' o6 ^) r
  8.     PUSH ESI 1 R; E+ Z5 t) M; {8 h
  9.     PUSH EDI & N4 {$ c; R7 J9 @
  10.     PUSH 0B                                                          6 }/ f2 u, k. ~; Y
  11.     PUSH 4                                                  3 s) S, n3 K6 t/ l6 X0 m
  12.     PUSH EAX                                                        
    - ]% u6 `1 @( t: l
  13.     CALL 6FC2A568            
    7 T1 D1 |' G2 B
  14.     MOV ESI,DWORD PTR SS:[ESP+34]
    " V& P4 ^2 u2 b7 L# L# i* F
  15.     PUSH ESI                                                                0 u5 D! \' N, R4 s/ y
  16.     CALL 6FC2A4C0            ) P4 U( O9 M6 u$ O9 o) W' Q
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    3 T. |# c3 B2 {& x
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] 8 |/ J  K+ ?1 z# W" S. v. A. |
  19.     PUSH 0A                                                         
    0 |( t4 R3 x: y# ?, r7 J4 p
  20.     PUSH 4                                                          ) r0 \( H7 f+ m
  21.     PUSH EAX                                                                  m2 A. X# z6 L6 H6 V  Y
  22.     CALL 6FC2A568            
    3 D3 i( d& @* C: z
  23.     MOV EAX,DWORD PTR SS:[EBP+70] 4 u; V- S& ^" v5 Y" R
  24.     PUSH ESI                                                        8 o0 l7 S0 I& m, T
  25.     CALL 6FC2A4C0                    
    1 ?* Q) w" W& l& k
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    1 p% D0 r* u- b& ?2 H+ Q
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] ; H9 F1 M# V) f/ q
  28.     PUSH 0                                                  
    # j1 c: l! p" E" N: B
  29.     PUSH 28                                                  
    7 B2 b( [! q. I/ {* a+ ?
  30.     PUSH EAX                                  Q' ]1 f5 p' L
  31.     CALL 6FC2A568                    ) j2 R" p" ~" `0 M0 a
  32.     PUSH ESI                                
    6 T, O7 d6 Y* `; Y2 M+ G
  33.     CALL 6FC2A478            + e( S" Y( A& H$ ]; ~
  34.     MOV EDI,EAX 4 G6 M# |& a  x6 w; }
  35.     PUSH EDI                        
    ; O: Y, ]1 d; P( d$ e9 O5 s
  36.     CALL 6FC2A556    ! S, c  N6 i1 L- w$ k; N
  37.     CMP EAX,6D + o8 M  I6 q0 s7 n# D. r# P0 {
  38.     JNE 6FD17C79 7 q6 H9 Y# H/ [  o/ _+ V4 R
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    ) p2 q8 m  R( _* ~
  40.     CMP CL,2
    / s6 a4 {# v9 j! J
  41.     JNE 6FD17C79
    " @$ l0 i( A% W" z$ I. k/ ~% ^+ f* g6 W
  42.     LEA EDX,[ESP+24]
    2 n7 J6 D' ^8 O3 p
  43.     PUSH EDX                                        & O% G! b+ m& D" `! [- G1 n8 {, O
  44.     PUSH ESI                                ) h# a% P& ]; w4 t" W& X
  45.     MOV DWORD PTR SS:[ESP+38],0
    3 L  l3 ~9 k) ?" H- z
  46.     CALL 6FC2A544    ' ~2 i7 P- D9 j8 S( E( V- I. S
  47.     PUSH 64                  1 V) b( ]8 `& S
  48.     LEA EAX,[ESP+34]
    : @6 b/ Q9 x5 a
  49.     PUSH EAX                        ! C& I6 x) y6 T
  50.     PUSH 400                        & l2 b& q+ Y- _& ]% V
  51.     PUSH 3                  
    + n# Q3 f. T# k- B& m' R
  52.     LEA ECX,[ESP+34] : ~) q, a* r7 f7 T( Y" U! H
  53.     PUSH ECX                                ' o# R# I% Y! q7 V$ k: D) Y! y3 T5 x
  54.     PUSH EDI                        
    ; ]6 ~9 q: [! m% n. V5 N
  55.     CALL 6FC54130            
    ' ?$ K% R% I1 l# G, _- n6 b
  56.     MOV EDI,DWORD PTR SS:[ESP+30] % B/ q/ U2 i2 T( F" Z1 F7 O
  57.     MOV EDX,DWORD PTR SS:[ESP+28] 1 O" j" O; S: j1 v+ o! Y6 j
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    : L) J7 J! _) W' _$ m( x
  59.     MOV DWORD PTR SS:[ESP+14],EDX 7 s# K9 x- M8 |  \
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    ! ~$ O( M1 L3 N! B6 j& _
  61.     PUSH EDI                        ; W# s8 \) f- w
  62.     CALL 6FC2A808   
    0 E! }8 ]# \" T% l& d8 I
  63.     PUSH 27                  
    + D) w1 J* O' t2 S2 O
  64.     CALL 6FC2A56E    ; U, P; X0 j3 U( b, s5 s
  65.     PUSH EDI                        2 [$ r+ `% T6 G% B% y" [) ]
  66.     MOV BL,AL          U2 U5 _/ `8 v, v; v% ^* L
  67.     CALL 6FC2A556
    ' R1 U* K/ ]3 I+ S2 M
  68.     PUSH EAX                        . l9 l4 {# D5 o! b; G* g
  69.     MOV DWORD PTR SS:[ESP+1C],EAX ; h" z7 {8 }9 J
  70.     CALL 6FC2A56E % n3 d1 w0 a: Y8 b+ {
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
    1 A5 P% J3 }: J& [2 y5 C* e7 C
  72.     MOV EDX,DWORD PTR SS:[ESP+14]
    7 d" G' \" ?3 m- d: _
  73.     PUSH 0          5 |$ V8 X) \' {) ~! L8 C
  74.     PUSH 0C01 , q% t4 x/ C; i! y8 A: m
  75.     PUSH 3E01
    ' R2 q* V2 s; b
  76.     PUSH 3
    6 y6 {' K) T# L, k7 `$ g3 v6 W
  77.     LEA EAX,[ESP+2C]               
    2 K% _' I% {; Q
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    # |. R; m6 M4 {
  79.     PUSH EAX                . r: g) Q; ?# J
  80.     MOV ECX,EAX      0 y! G$ o) t( O5 M0 r% f4 g. ^
  81.     PUSH ECX                ( U% y! X. C/ R% }# X! `* f
  82.     PUSH EDI                        
    * K, ]: N, E3 q. O" J8 M7 I  V( F6 }
  83.     MOV DWORD PTR SS:[ESP+3C],EDX
    ! S  |9 i0 z9 w
  84.     CALL 6FC2AE98    % D' O( g6 p% C! c& _$ O
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    + d$ S, ?, L: l0 F5 H7 [) V% J2 l9 v
  86.     MOV EDI,DWORD PTR SS:[ESP+20] 0 Q' S* |9 G  Q$ u, J, g3 u
  87.     MOV EAX,DWORD PTR SS:[ESP+30]
    8 c  \0 n9 m+ i$ n# O7 S5 c
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    2 Y8 i4 J: U; F& o) M$ m
  89.     MOV DWORD PTR SS:[ESP+14],EDI 6 e" j5 x2 s0 a# n6 Q: m) }
  90.     CALL 6FC21280
    / i  y" u- E$ ?, _" {5 }+ p# i; z
  91.     MOV EDI,EAX
    6 N' b- K( `$ @5 n. v# i
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
    7 B' G% u) i& H. e
  93.     PUSH 0         
    0 I6 {  B2 L# h! `9 F
  94.     PUSH 1         
    - g3 ]" }7 D5 _7 c/ D6 ]
  95.     PUSH 1
    ' E: b" l* \! w  U' ~. k3 M
  96.     PUSH EDI        
    3 ?+ Y- a, l+ l7 q1 i: O( d& A) B( A
  97.     PUSH EBP        
    ( t# {# K# W, |8 _
  98.     PUSH EDX        
    7 o4 O( a2 {. H( A0 ^
  99.     MOV EAX,EBX      1 M# o& |: T- m/ C
  100.     PUSH EAX        2 V' p' P( j' m0 o
  101.     MOV EDX,3C      + j) S$ K5 m- ^" ?
  102.     MOV ECX,2        
    2 s4 m" p. V0 {5 ]# Y0 j5 R: z
  103.     CALL 6FD01D90   
    ( \2 c0 b: S* M, G: c5 U
  104.     MOV ESI,EAX
    " z" I/ n$ e& M$ t& G* }
  105.     PUSH 1
    * |% o$ b2 A. `  }- L
  106.     PUSH ESI
    / y6 i% {- A7 D  Z
  107.     CALL 6FC2A4A2 ' q1 ~1 S' h3 E
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
    7 P, |" \8 t, E% @: `
  109.     PUSH ECX                        % B9 I; J* _0 R/ `9 G' p
  110.     PUSH 88                          
    4 q4 G' @) z" ^- y' \$ |$ U* X
  111.     PUSH ESI                        , T! J) I- ~$ }+ x. @
  112.     PUSH EBP        ' V7 e% _  `+ v5 X  G
  113.     CALL 6FCC22E0    7 F$ J! y$ w5 i" s& C
  114.     POP EDI / v8 K8 t* t, P1 q  m
  115.     POP ESI
    + Q0 D' A% _9 n6 s% C3 M; _5 F
  116.     POP EBX
    1 x$ j4 ?  U* j/ [" V3 E
  117.     MOV EAX,1
    : _+ M1 E) F4 }. h: S
  118.     POP EBP / P) T, m6 ~2 k* }6 b% }% q0 U
  119.     ADD ESP,1C ) o/ b) e4 ~+ L0 ^& L
  120.     RETN 8 ) Z5 L8 ~6 T) E0 i
  121.     PUSH ESI 7 }, ?4 X4 Y5 i
  122.     MOV WORD PTR DS:[ESI+6E],14 ! z) k6 E- G2 E6 f5 @# W5 k* R! ]
  123.     MOV DWORD PTR DS:[ESI+70],ESI 9 g  _/ A6 |: v( \" ]* o" k! q7 h
  124.     CALL 6FC2A4DE 3 v- h7 U7 b; p& n
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4] . {+ x, E6 W7 y! v. z* Y
  126.     OR EAX,00000400
    0 ^; N( I0 |% A- L  I( S
  127.     POP EDI ! w; ?5 \7 n0 O+ q! i' Q* q! D
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX 3 e& I; X; K/ L. b$ L0 A
  129.     POP ESI 4 d* [. M' e1 L% N
  130.     POP EBX # U; x9 \8 ?; F1 V! @2 `
  131.     XOR EAX,EAX
    8 {3 p' o3 W6 _5 U2 S) M% e" i
  132.     POP EBP 9 D' a) T: y. x, v: C/ a
  133.     ADD ESP,1C 5 q$ l# `. b3 j; q) T6 I3 G' u
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。* x+ i) Z7 X4 v9 \3 X' F
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。$ X% D& G; ^' Y8 g' i2 x+ P" |) r
1 A( n* y$ g- b: V8 |- x  j8 }9 ^
修改的限制代码为:
; n! K: l# L7 M) ^" \9 q# }; W" R
  1. 地址= 6FD17B75      
    7 y; P6 ~/ Y  ~& m+ C
  2.     CMP EAX,6D         6D为第五幕城内9 T9 {3 H- d  w. Q) Y/ N6 e
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    0 ~' J: Q( W" t4 P' M5 N7 X
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内" R# [7 C% }( u
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱1 T8 I( }+ T# H! l7 h# C
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。7 e2 h9 x0 I0 V; @$ z& D$ ]

* H; @1 C0 C& i8 @& r/ \修改箱子合成部分4 h' |" f$ G3 y" z3 \6 H
1、d2game.dll,跳转至6FC92417
7 `  T3 F+ }9 x+ o9 [) t
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
. ^% O7 r( c- _$ H% x
  1. CMP AL,4
    5 ]4 l/ k- `% L+ p, m4 G+ |
  2.     JE SHORT 6FD17AE4
    . Q# x, G2 L/ r, ?, T
  3.     MOVZX ECX,AL " Y5 g" N0 M1 A9 A
  4.     JMP 6FC9241E
复制代码
- n$ G' m8 E8 s( \8 @
3、跳转至6FD17AE4
5 m: P; A% V8 u& ^. F7 n
  1. MOV EDX,DWORD PTR SS:[ESP+12C]
    - i3 ]1 C" U# j; m/ w
  2.     MOV ECX,DWORD PTR SS:[ESP+128]
    0 a2 [3 t  z2 v/ J
  3.     CALL 6FD17A2B 2 F- i- M: e* F& m: d: J
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B% l: J% k1 a* W" M7 b; Y9 W
  1. PUSH EDX
    9 j2 g7 W5 i' a& O# _
  2.     PUSH ECX : i! W+ E/ m" [# L5 _( Q
  3.     CALL 6FD17B0F    4 I, a# h  l, d4 H: @
  4.     RETN
复制代码

( D: n' D! \: {4 g+ v* g9 ^1 W0 t! ^
DLL部分修改完毕。6 `: U4 Q, {( y/ y( h
在cubemain.txt 添加改红门开启的设定
) ?) d& G0 `3 [# s条件设定自行定义,在output处填入Portal即可
% C' y1 q$ a2 F6 j* U
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇, e6 c+ I$ L/ t. @( \8 M
经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error3 x; ^' l/ R3 d/ N
3 V3 n+ Z) b& h7 t
然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-25 22:01 , Processed in 0.064570 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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