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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4134|回复: 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
: U% a  |% n; E# O8 z' c该教程仅限于暗黑1.13C8 S3 m8 A5 V( p1 e+ F8 [; H' @
3 o8 T* M- l5 ?
使用hex 16进制修改工具打开D2Common.dll# ]* g' v7 R9 D9 y6 o! j  O6 {
ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C
$ U( a( ~; N8 s, H) Q
* G: w- @6 r' q- v% J% m, c使用OD软件打开D2Common.dll,
8 l- Q9 a/ A$ F: E  X2 X1、ctrl+G,跳转到6FDD87EB,输入以下代码0 P2 W9 `( L2 g* W. `0 P. J/ B5 J
  1. PUSH  6FDE4F60 ( ?  K- p  E. P. p2 @# X- c. ~
  2.     PUSH EBP ; M- o3 ^! Y' D) v) @; U# ~
  3.     MOV DWORD PTR SS:[ESP+20],ESI
    ( F. K  g0 l* `' [# ?7 a: ?
  4.     CALL 6FD51EC0
    4 g- C* ]: L- I/ q4 c
  5.     ADD ESP,8
    4 ]# @/ g) X! d7 e
  6.     TEST EAX,EAX
    2 K. _' i- h& ^: w; h: ]2 w- Z$ P
  7.     JNE 6FD6BAD0
    # S) Q1 f8 z5 f4 |) A; y5 ^
  8.     MOV BYTE PTR DS:[EBX+8],4
    - R0 G* [: \0 Y7 z4 Y6 C, d8 q( ^4 Z
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5
+ o8 D, w2 o  X! G8 T
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
1 H) h/ E" c& T0 W; F" y& g# _; l
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll
  v2 C- ?" b6 [3 Y; S6 N; b5 m$ p1、跳转到6FD17B0F
/ Z$ y1 v" |3 Z+ @( |4 n
  1. SUB ESP,1C 6 N' H" }1 {% R' R$ S; g
  2.     PUSH EBP 4 ~+ v; S6 J- k8 U7 `" G4 [" O
  3.     MOV EBP,DWORD PTR SS:[ESP+24] 3 ]1 H8 u! X  S
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
    ! \. G7 K8 A  Y" I
  5.     MOV ECX,DWORD PTR DS:[EAX+8]
    - ?, H+ j) W6 v
  6.     MOV EAX,DWORD PTR DS:[EAX+0C]
    " n) G) [3 {, x) ]3 l
  7.     PUSH EBX % [. |0 O: p0 @0 Y$ j: f
  8.     PUSH ESI
      n5 s4 l  Y' ~: i& j
  9.     PUSH EDI
    ' c* B9 }# T! x! b! I6 c) B
  10.     PUSH 0B                                                         
    & g. X, z1 o6 X& I
  11.     PUSH 4                                                  4 X; A" g+ g$ v& ]7 O9 |
  12.     PUSH EAX                                                        1 x8 _- j6 ^! h$ Q/ Q) a
  13.     CALL 6FC2A568            - }' h# K4 x6 u$ C& U; s
  14.     MOV ESI,DWORD PTR SS:[ESP+34] + v( Y  x; m9 x) C
  15.     PUSH ESI                                                               
    ( \. b8 A1 k+ a" Q# l6 t% T
  16.     CALL 6FC2A4C0            
    0 j2 m6 D. s4 G
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    7 i# B: S7 s2 ^' a6 t8 K& d
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    * ~2 _; G5 H2 P5 S( y
  19.     PUSH 0A                                                         
    ' e& t# ], r* q& v- v1 i: v
  20.     PUSH 4                                                          8 m( d5 [2 S$ p0 W, e: I- `9 E2 O5 W
  21.     PUSH EAX                                                                8 F/ C" B# f, ~9 F
  22.     CALL 6FC2A568            
    2 t9 Y% T9 |- N) X1 E5 E8 q! l
  23.     MOV EAX,DWORD PTR SS:[EBP+70]
    0 r! Z# s7 u5 Q8 w
  24.     PUSH ESI                                                        6 I( [  I: s' y3 H. b* J; b
  25.     CALL 6FC2A4C0                    
    * q2 j; M7 k, \  O/ U7 c
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    . x: `  D- h: S7 m/ F; [. Y  v6 O
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] & C- X0 \( D: b6 ~% r
  28.     PUSH 0                                                  8 o& P9 \& ~6 i6 t) f7 y
  29.     PUSH 28                                                  " _7 G5 _- S  g' _* }/ @# I
  30.     PUSH EAX                                ( ]  H! t0 D% X4 y
  31.     CALL 6FC2A568                    ! F1 g- s" f/ N: ~( r
  32.     PUSH ESI                                0 f/ P3 t8 U$ B% N
  33.     CALL 6FC2A478            
    : M5 r* w( I) C# f; t* n5 u9 g: H# t
  34.     MOV EDI,EAX , A( h1 N. r/ o. n$ r; ]; H
  35.     PUSH EDI                        
    3 Z* V4 ^/ f. H1 ^, p
  36.     CALL 6FC2A556   
      o- F. J6 H& ]8 T8 Q
  37.     CMP EAX,6D
    / F. z. }; H, ^9 A1 ?
  38.     JNE 6FD17C79
    $ V2 m6 m. T7 U+ F% R) H
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    9 a7 t/ W. q7 w3 z% _( E
  40.     CMP CL,2 ) s2 ?; X% d/ ]" v
  41.     JNE 6FD17C79 4 L5 f( y) H( O9 ?. G: K$ u! L
  42.     LEA EDX,[ESP+24]
    . v2 ?& f5 G! ^
  43.     PUSH EDX                                       
    + T9 ]0 E4 r5 P/ G( d* R
  44.     PUSH ESI                                
    - p9 t  u4 X) h2 R4 M& G( F$ Q/ D- W
  45.     MOV DWORD PTR SS:[ESP+38],0
    ' T: O# ~9 Y* m! _' X9 P7 l
  46.     CALL 6FC2A544   
    , o6 ?6 v! q9 R9 Z
  47.     PUSH 64                  
    : h" U9 b) e, f
  48.     LEA EAX,[ESP+34]
    ; c8 L+ p/ y  D
  49.     PUSH EAX                        
    / q' Y9 `9 f( s8 g6 B
  50.     PUSH 400                        
    7 o" x% x# @7 L# \
  51.     PUSH 3                  
    % @6 s! l. R. d; @
  52.     LEA ECX,[ESP+34] ) X7 o  Z9 E# a2 K. X
  53.     PUSH ECX                                1 ^, F* M' S6 {3 S' g/ F6 {; E" X8 r
  54.     PUSH EDI                        
    ! O; Z9 o2 n0 K1 E8 j$ t* K7 |$ G' Z
  55.     CALL 6FC54130            
      T  b8 j5 j# P: z& e  |7 R
  56.     MOV EDI,DWORD PTR SS:[ESP+30] & u: L; L7 E4 K% a& `" d* i
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    . L, t  h0 Z' I4 P0 C
  58.     MOV EAX,DWORD PTR SS:[ESP+24] ' @" ?6 _) X( p5 I+ b' {1 [
  59.     MOV DWORD PTR SS:[ESP+14],EDX
    1 Q- M1 g# \5 }, w  x/ ?3 B4 L. v
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    , |3 U+ b+ p0 y" b; J
  61.     PUSH EDI                        
    7 X* ~. M8 n! l) f7 {& C' R+ S
  62.     CALL 6FC2A808   
    * v8 h, V. h  u3 [& b6 I
  63.     PUSH 27                  
    4 u5 K/ n  M8 h. [" c6 d
  64.     CALL 6FC2A56E    9 J: V% z0 R* d* V# P2 V' W
  65.     PUSH EDI                        , [% Z. U% r5 J, d
  66.     MOV BL,AL        $ c6 s. ?: P! U4 n& H9 Z) ^% t
  67.     CALL 6FC2A556 " r' F2 l) \7 W" |4 @2 Z
  68.     PUSH EAX                        
    4 r3 g. B$ c+ G3 l
  69.     MOV DWORD PTR SS:[ESP+1C],EAX " G% n/ w+ s) S5 q# y, G$ T1 [
  70.     CALL 6FC2A56E
    0 E1 w# N2 J+ k7 t' b% F4 g# v
  71.     MOV ECX,DWORD PTR SS:[ESP+10] ( O/ q8 p$ T3 Q( T0 I& S
  72.     MOV EDX,DWORD PTR SS:[ESP+14] 8 X" x- \6 y1 L! }1 _- H
  73.     PUSH 0         
    * y, a! B6 o. Y0 C
  74.     PUSH 0C01 0 d3 I2 k0 ]) [/ @8 v4 l
  75.     PUSH 3E01
    # S% W) S1 D  n2 R8 p0 h' P! l
  76.     PUSH 3
    , @: @3 D  v6 ?) T
  77.     LEA EAX,[ESP+2C]               
    / J8 c$ e8 P/ E9 U5 |% |
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    - \: p: ?& E, T
  79.     PUSH EAX                3 V+ S5 \6 p1 b3 B: c0 J3 C
  80.     MOV ECX,EAX      4 G$ I" t- p9 y3 I% |5 p
  81.     PUSH ECX                8 E8 l2 |. g. d- q6 S
  82.     PUSH EDI                        % I; F& d$ Z9 }
  83.     MOV DWORD PTR SS:[ESP+3C],EDX 3 d! l! v% \' ~6 i
  84.     CALL 6FC2AE98   
    ; p4 o/ p/ T6 v7 |4 ~
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    / d' ^1 Y1 _1 q! F7 f- `6 R9 H
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    ' w# [) t* p% {4 a0 J
  87.     MOV EAX,DWORD PTR SS:[ESP+30] / h6 x1 q2 a, \* X# ^
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    / F# \' a3 f& s
  89.     MOV DWORD PTR SS:[ESP+14],EDI
    7 K0 p0 |% z8 N9 K7 C& p6 ^1 v
  90.     CALL 6FC21280
    6 u5 t' B1 s0 Y
  91.     MOV EDI,EAX
    8 F+ j1 O: w( I$ E1 ^, L) r; t
  92.     MOV EDX,DWORD PTR SS:[ESP+14] # R/ u7 Z  c. F9 _# A* l- s4 [
  93.     PUSH 0          ! E, o6 s: V# m& ?
  94.     PUSH 1          7 L0 ]0 n. I5 a  G/ Z
  95.     PUSH 1 & @4 W3 t0 @( `+ c, v( T- u
  96.     PUSH EDI        
    2 R3 T3 p/ F, t* q/ p
  97.     PUSH EBP        # n2 b; k. l( t! c8 }
  98.     PUSH EDX        4 T- Q$ T% w( \. O, C3 N" a
  99.     MOV EAX,EBX      
    1 N/ V& ^" K$ z- o
  100.     PUSH EAX        ( X4 q; l1 J5 S5 C5 I
  101.     MOV EDX,3C      ! f3 i) {. F- j9 Y) `, {
  102.     MOV ECX,2        ) `+ R! y# L9 W: ^* ~5 H
  103.     CALL 6FD01D90    4 ]2 b4 b2 i' G) c# i
  104.     MOV ESI,EAX
    2 C; m0 B; L4 S0 ~+ H" n& F
  105.     PUSH 1 " V0 V- S0 h, f; V, [
  106.     PUSH ESI
    & v1 ~4 l" c- @2 j$ L
  107.     CALL 6FC2A4A2 ( w. n5 o4 e- W4 }
  108.     MOV ECX,DWORD PTR SS:[ESP+18] 1 {& N% r* ~, ?
  109.     PUSH ECX                        
    ; I/ c) Z5 U7 L3 [
  110.     PUSH 88                          
    3 O; P, \! }" T& a$ T2 p: |
  111.     PUSH ESI                        
    3 L  o. W8 o" ]% y
  112.     PUSH EBP        : Q& W- a; o3 g4 @
  113.     CALL 6FCC22E0   
    ( ^* r" L1 X1 z" ^( L  o
  114.     POP EDI
    * d! X2 g" P* u7 g) t
  115.     POP ESI 0 v, W; A8 C* e  s, M. y9 \
  116.     POP EBX * q" H6 W. ?9 W, j% H1 v7 X
  117.     MOV EAX,1
    ; q- ]% o0 V- ~1 \1 ?( }& L
  118.     POP EBP $ O7 Y5 @9 y: x+ C, M9 ^
  119.     ADD ESP,1C / E& |" D; C6 d) M/ f/ q" a# ~
  120.     RETN 8
    5 L1 @& [. h' H8 E( d
  121.     PUSH ESI : o3 A0 W6 F, M! w6 Z8 q) _
  122.     MOV WORD PTR DS:[ESI+6E],14
    $ g6 u  W) }) _7 F
  123.     MOV DWORD PTR DS:[ESI+70],ESI
    4 e5 s# U5 S8 Q( v
  124.     CALL 6FC2A4DE
    0 ]& f! |& Z+ L3 e  d" d
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4] 7 j# n# \# P& ^4 R* E% ^8 t2 e5 c
  126.     OR EAX,00000400
    ) [9 g4 e5 U, T2 Q. j7 o  ~; t9 Z" F
  127.     POP EDI
    $ q3 K2 Y! f# [& Y1 b, [+ g4 r
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX 1 r, ]9 Y4 _! m0 c
  129.     POP ESI
    & H! t  X8 Y4 `: C# H% e
  130.     POP EBX & `2 Q0 s7 ?# |( e* J9 F8 `
  131.     XOR EAX,EAX 3 Z$ ]& m0 C" I- T; B
  132.     POP EBP
    * l" m4 w" H: I/ `$ Z; t4 p1 ]
  133.     ADD ESP,1C
    - A- z2 L& M8 z+ K. y4 O
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。" [+ P- q' N3 r0 X* w
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。
5 g) f# u" Q9 o; j/ w- D5 A1 N+ c) a" p; @
修改的限制代码为:
8 s9 X8 C& l, T  h
  1. 地址= 6FD17B75      
    & L! C: a; Y+ [3 ?/ w) l9 H
  2.     CMP EAX,6D         6D为第五幕城内- _9 D1 N/ d) a) ]& o5 N& S6 R' q
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    ( W3 B1 {9 J% L9 }/ w
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    , C( I, A/ s2 i$ C
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱
    3 l4 G/ ~9 E" x& I$ g& b( l9 o, C/ \. g5 z
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。
8 F  K6 p9 Q* d; G2 W
' R/ Q+ r' V6 Y( j# x修改箱子合成部分" p/ g! Q$ c: [3 ~* i8 Z) m
1、d2game.dll,跳转至6FC92417
' |, _+ X3 {$ g$ K% S+ H1 A2 o1 b
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
& {% H4 k5 N. @2 M- T& R/ T
  1. CMP AL,4 . g" U* i* M: m, r7 T
  2.     JE SHORT 6FD17AE4   O: V8 z8 M; S# T; E. K/ P
  3.     MOVZX ECX,AL
    . ~  L: l- I2 M3 N7 P
  4.     JMP 6FC9241E
复制代码

+ D, O5 R" v" ?" S3、跳转至6FD17AE43 w- O% ]- E, g, b& z/ ~
  1. MOV EDX,DWORD PTR SS:[ESP+12C] ) E% X( `1 {; i; l* R
  2.     MOV ECX,DWORD PTR SS:[ESP+128]
    ; i0 Z$ a" V6 Y0 \( U$ O0 `, Z; B; @
  3.     CALL 6FD17A2B 7 k/ [9 m" V1 E  T3 B) H2 ^! [
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B
* h* D9 p" j. [& s/ l6 B% f2 x
  1. PUSH EDX
    3 v! V: A8 z' k+ W1 p4 `2 w
  2.     PUSH ECX
    ' `% @2 B# l+ c1 \8 |. p; k7 z
  3.     CALL 6FD17B0F    $ w& M/ S& r3 ?! H
  4.     RETN
复制代码

5 _. q: z$ Z  r4 A9 A! b; M: W2 t/ Q6 @+ k4 o; @
DLL部分修改完毕。/ k9 L* w- D/ c& I$ T+ J; @
在cubemain.txt 添加改红门开启的设定
6 [. }6 {, a: W) c条件设定自行定义,在output处填入Portal即可. V) K* C/ G$ h$ u
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

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

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error
5 Z, U6 C" x: n  \
+ d5 q) A; h7 `7 n- B+ K然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-11 06:30 , Processed in 0.064464 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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