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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

361

回帖

830

元宝

1

圣者绑元

管理员

Rank: 9Rank: 9Rank: 9

积分
1
发表于 2018-8-29 20:12:12 | 显示全部楼层 |阅读模式
转载:http://diablo.phx.pl/forum/viewtopic.php?t=62242
  L# }7 O8 J  u$ S1 t: L) Y! m* ^: D该教程仅限于暗黑1.13C
5 A6 `) J# [- F' l+ l
' z& [4 t- ^5 b/ }+ C使用hex 16进制修改工具打开D2Common.dll. o* ^6 W# @" f/ @$ C/ m$ i
ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C! ]7 G1 |+ ]  X' w! ?. w1 T6 A. {  @
: b5 A" G; y0 H& J4 |4 t
使用OD软件打开D2Common.dll," ]. [% g, b3 q
1、ctrl+G,跳转到6FDD87EB,输入以下代码
( R, ]- x5 ]8 c
  1. PUSH  6FDE4F60
    5 k/ {% h/ q! f) d# ]9 c0 V' E
  2.     PUSH EBP
    * n  [* c) k! H* |- |# T8 r
  3.     MOV DWORD PTR SS:[ESP+20],ESI 9 H0 C6 w" `. Y/ v
  4.     CALL 6FD51EC0
    / @$ E- P, c; W3 W: N. G
  5.     ADD ESP,8
    0 W1 _. s3 e6 _4 q$ _
  6.     TEST EAX,EAX / P3 N. @: d4 B3 [/ K4 s' i" h
  7.     JNE 6FD6BAD0
    " i% ]6 `: i. r6 l% J2 M! c+ h
  8.     MOV BYTE PTR DS:[EBX+8],4 % n4 |. [2 O4 X0 N
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC50 i/ b4 q9 x# {8 i, L
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
8 M$ e9 a% u& r6 W5 O& Z
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll& C% X$ n! e3 n" D
1、跳转到6FD17B0F
; \2 L6 F9 x" S: ^( S7 p1 s
  1. SUB ESP,1C " S' B( a  U# M: s$ `4 v9 [
  2.     PUSH EBP ( d/ Z* V" j1 S6 o
  3.     MOV EBP,DWORD PTR SS:[ESP+24] * v& o# z+ v+ Z
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
    . w3 b0 l3 {9 R! ]7 P
  5.     MOV ECX,DWORD PTR DS:[EAX+8] 5 v4 H& Y, S3 E: j2 f
  6.     MOV EAX,DWORD PTR DS:[EAX+0C]
    # L  ^8 j# _' Z$ z# a
  7.     PUSH EBX
    . X  U5 V) c, _4 ]" o+ J$ Y6 t7 V
  8.     PUSH ESI
    * D# E' t0 v) U- W7 @; b
  9.     PUSH EDI
    3 |1 \) ?) H- v; l2 H
  10.     PUSH 0B                                                          ( m) G# e: k4 e' `) z$ ?
  11.     PUSH 4                                                  5 n% @5 ]% H! z) ]: A9 ]( b
  12.     PUSH EAX                                                        
    $ f: r# S6 y6 {
  13.     CALL 6FC2A568            
    $ H) Z; C7 P. O+ q
  14.     MOV ESI,DWORD PTR SS:[ESP+34] 8 O+ e# r6 C# k$ S+ f3 F1 ~
  15.     PUSH ESI                                                               
    ( O* B& A  r" U& {+ l8 s
  16.     CALL 6FC2A4C0            
    3 T6 Q9 `! i  T. b
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D] ' z" t. B# \+ a4 x7 Z7 m: f" M
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    / h7 q& N0 F( o/ M' b( {
  19.     PUSH 0A                                                         
    / ?$ C- [* |. P4 g
  20.     PUSH 4                                                         
    , `* p+ l; [7 w- `# A% H+ Z
  21.     PUSH EAX                                                               
    / c/ i! n) s/ r
  22.     CALL 6FC2A568            
    + w  T0 p6 @# _5 F# T
  23.     MOV EAX,DWORD PTR SS:[EBP+70]
    4 q1 _# `1 t2 C: y  O
  24.     PUSH ESI                                                        & \' y: }" A9 l3 A
  25.     CALL 6FC2A4C0                    
    4 J  z8 \: \' P3 S; ]! S
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    ( z# ~9 a- \7 r1 i/ X/ I
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    $ S# y3 Q3 I2 ~
  28.     PUSH 0                                                  ' [% l7 M9 i6 V3 e
  29.     PUSH 28                                                  
    . ~- J* a6 A  F) I0 C5 c7 s
  30.     PUSH EAX                                ! ^8 Z# T9 Q( S  t8 J6 |7 H- n% J
  31.     CALL 6FC2A568                    & h& q; i1 u# s6 ]* l
  32.     PUSH ESI                                % J+ W3 A# e1 ^$ o
  33.     CALL 6FC2A478            
    ! Z' ~; o) r; C
  34.     MOV EDI,EAX 4 S' \' t8 l* f9 h; r* `1 A
  35.     PUSH EDI                        
    ; W3 v  ~, ^! W5 O" H' w
  36.     CALL 6FC2A556   
    ' i! m& K- O2 ~' P* j! G
  37.     CMP EAX,6D ! F8 K, c  h8 G/ n4 g5 ], P
  38.     JNE 6FD17C79
    & X( T7 a! l+ P0 D: F& b, x
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    $ {' o4 i$ a* W+ `
  40.     CMP CL,2
    ! v$ k/ z# _3 ?
  41.     JNE 6FD17C79
    1 x/ s0 Q- _$ g0 y% [* c
  42.     LEA EDX,[ESP+24] 5 s6 P$ R- u, ]0 }
  43.     PUSH EDX                                        * F& o* Y- v! {% c/ D+ r
  44.     PUSH ESI                                
    ! N! E( J$ |0 Y2 ], g
  45.     MOV DWORD PTR SS:[ESP+38],0 ' x8 C; \# |, w6 X5 e
  46.     CALL 6FC2A544   
    / j5 [: T( U+ t1 A" C
  47.     PUSH 64                  
    ; h6 ~# U+ O2 D' Z( h5 q
  48.     LEA EAX,[ESP+34] * D7 i& e5 e: t1 a" s
  49.     PUSH EAX                        
    7 d6 p! U3 f  [  V( ~2 U- g
  50.     PUSH 400                        
    , F3 f8 k* v5 s3 i
  51.     PUSH 3                  ; y: N/ d6 n( ^4 l  ]8 I5 k1 m
  52.     LEA ECX,[ESP+34] 9 i& Y! b" |! o8 t& |9 o
  53.     PUSH ECX                                & Z* ^2 F' y$ ]
  54.     PUSH EDI                        
    " w" _1 C1 R' F) E; J
  55.     CALL 6FC54130            
    " [7 N# I7 e) \' b" x7 j" l
  56.     MOV EDI,DWORD PTR SS:[ESP+30] " R3 A  x" p/ J8 `# E% |' [
  57.     MOV EDX,DWORD PTR SS:[ESP+28] 3 X) N& f. U( F4 z
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    7 Q! Z# k( V+ O3 m1 `: S" C% w; U
  59.     MOV DWORD PTR SS:[ESP+14],EDX
    9 q$ [' T0 k2 J0 i7 ?4 v1 X( y7 m
  60.     MOV DWORD PTR SS:[ESP+10],EAX 5 R2 n+ g" m# Q/ z2 W7 u# h
  61.     PUSH EDI                        
    . `6 p% |3 l0 s& r$ o, {1 B
  62.     CALL 6FC2A808   
    & j/ N: j* {6 j! f$ h; s
  63.     PUSH 27                  - |& n9 M) A$ n5 G9 b: B
  64.     CALL 6FC2A56E   
    / y7 ?; d  u. t  G2 S
  65.     PUSH EDI                        5 b1 f# I5 g$ P! X6 v
  66.     MOV BL,AL        
    / j6 Q" F$ z5 y) i* Z
  67.     CALL 6FC2A556 - r) j! |3 @4 o
  68.     PUSH EAX                        - V& C# K5 |1 q$ V
  69.     MOV DWORD PTR SS:[ESP+1C],EAX ' m! V! k2 ^$ v6 K
  70.     CALL 6FC2A56E
    # \4 q9 V3 r6 J! q  w
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
    % F/ m. v0 H6 H! o5 ]' X
  72.     MOV EDX,DWORD PTR SS:[ESP+14] 7 N: j2 Y/ d, n* m) B+ k8 L
  73.     PUSH 0         
    : Y# D7 j: M! ]
  74.     PUSH 0C01
    0 E# c* |) G1 X: N7 S+ Z
  75.     PUSH 3E01 3 B4 |6 d- P& R# `
  76.     PUSH 3 % E2 q3 R) c) G. [5 {% x: y
  77.     LEA EAX,[ESP+2C]               
    ; o# n% H" x3 S) U) }
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    - _: j! G3 b- n$ N9 p9 }" X
  79.     PUSH EAX                + ]4 v3 @5 @5 S( M' S
  80.     MOV ECX,EAX      # C( Q$ Z2 O( i3 M5 F
  81.     PUSH ECX                0 F2 H% t9 {# Q* m$ ]. x/ q: C  m
  82.     PUSH EDI                        
    1 T& ~2 q- C. u- K1 }1 ?' y
  83.     MOV DWORD PTR SS:[ESP+3C],EDX
    0 c# w' @$ d+ A
  84.     CALL 6FC2AE98    ; o0 v6 J5 q& x. T9 p0 p1 q
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    & o  x$ Y  b! Y. I- \& P
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    : y8 o) p6 \9 ~! a5 [9 j' r
  87.     MOV EAX,DWORD PTR SS:[ESP+30] & c+ l, f5 E1 v$ C
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    7 [6 B' s% c: ]1 y1 ^9 s
  89.     MOV DWORD PTR SS:[ESP+14],EDI
    " B' V/ `9 T1 Q5 N7 Y
  90.     CALL 6FC21280   Z8 K- s2 C% S' a2 j2 }
  91.     MOV EDI,EAX 9 p" ]' C* R. E% G- E
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
    % w8 K4 a, ]& n; l0 X# x
  93.     PUSH 0         
    " o* G. k5 j- m- W( U1 N) H; t' B
  94.     PUSH 1         
    7 G& a+ L* H* A
  95.     PUSH 1
    : I* |: b% y$ r4 T2 \* Q4 J4 o! U# m6 V
  96.     PUSH EDI        
    ( V7 \- K# }/ a$ z& ^
  97.     PUSH EBP        
    9 w, [% k9 L" P+ Z. x
  98.     PUSH EDX        7 D1 \1 T/ w/ A+ e3 H
  99.     MOV EAX,EBX      / ~8 I/ q+ e6 D+ \4 W' Z
  100.     PUSH EAX        7 B. v+ K5 G; [
  101.     MOV EDX,3C      
    # y' M) V# i) E5 m  K
  102.     MOV ECX,2        
    - S' ^! h5 h3 u5 B- a$ Y
  103.     CALL 6FD01D90   
    % G. [9 I: A+ ^& u- @1 X5 R
  104.     MOV ESI,EAX ( [: g/ w0 m$ R. t  C% W. j% h3 ?& C
  105.     PUSH 1
    - o, ~% a4 I# t( T# [1 t7 g
  106.     PUSH ESI
    2 V# W! z) X- E2 A2 f9 q
  107.     CALL 6FC2A4A2 9 B6 ]9 V8 v: e7 Q% H+ |
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
    + Z2 ^% @, y$ Z5 t+ j/ |
  109.     PUSH ECX                        
    : p5 D9 [, X& M5 Z$ d
  110.     PUSH 88                          
    2 F' c# U6 z& x
  111.     PUSH ESI                        9 M$ M+ V' [: A- \0 K, D8 d4 t" a
  112.     PUSH EBP        
    & p9 G4 K$ P" F* l9 M. f
  113.     CALL 6FCC22E0   
    ; \3 u/ Z4 Z, i: W3 H
  114.     POP EDI % i/ A$ ~* G. Z
  115.     POP ESI
    ( e8 d' X0 b& t, ^
  116.     POP EBX
    ! r5 I1 Y2 N4 F# W
  117.     MOV EAX,1 $ t5 g3 J" ]) P: m& C
  118.     POP EBP
    6 \# J8 m; M5 K" h5 X1 O9 k) ~
  119.     ADD ESP,1C
    - z& y  e4 @: x7 p7 c2 u
  120.     RETN 8
    1 k4 E7 D, r" |& i$ J: r
  121.     PUSH ESI
    4 W0 |: r. V+ a" Z, C
  122.     MOV WORD PTR DS:[ESI+6E],14
    , B6 O6 ^) S: Q! p6 r; v5 {8 V
  123.     MOV DWORD PTR DS:[ESI+70],ESI
    . P8 x* G7 q6 w$ V' T+ \, S. s
  124.     CALL 6FC2A4DE 6 G% j& ]5 v" R9 @, r0 l2 O) r
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4] ! F0 u! L1 W/ Q* a3 j; e
  126.     OR EAX,00000400
    ) {3 S9 Q8 W+ \3 }, U1 r  @0 c: l
  127.     POP EDI
    5 W$ [* c, C/ i- [1 K9 G
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX 6 N0 @( P9 i1 k0 |- Z9 R$ m
  129.     POP ESI
    6 t4 O0 Z$ U" a& x' K
  130.     POP EBX
    ) h* p' U' a8 w$ F  d
  131.     XOR EAX,EAX 9 y1 m. {/ h/ ^6 z6 j
  132.     POP EBP # F8 X2 e* w  x( N, B3 M: Z: Y$ N
  133.     ADD ESP,1C
    1 M2 O' _7 T' v) m
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。6 q7 T# e  g$ a8 i8 P4 |
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。
; u* {# ^! m) V. w2 u) J1 z) a0 r, G0 O- u8 k: i
修改的限制代码为:  k8 Y8 Z& ?& i& L1 M5 J* _5 `+ w
  1. 地址= 6FD17B75      0 f- z3 P- r& r( _, O" ~
  2.     CMP EAX,6D         6D为第五幕城内9 M& i; A# e! @8 l
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    . Q, p7 j+ ^, p. O+ g+ A: O. ?
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    3 g+ Y# @! F: S$ {6 h
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱
    3 v* |# c) n7 _/ {
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。' D/ Y. n& G0 w- |

' N" o( b7 w/ ~修改箱子合成部分
' ~. E: @+ K/ C. y3 w1、d2game.dll,跳转至6FC92417
: n7 z/ ^, G  E
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8* R. j! S8 W! ?0 x
  1. CMP AL,4 ) r" o3 u1 F5 ^" O, n
  2.     JE SHORT 6FD17AE4 9 j5 Y7 G3 J. Y  |) G' e
  3.     MOVZX ECX,AL ; x' s2 O; Y% X/ U- Y9 V: b# t
  4.     JMP 6FC9241E
复制代码
3 e. S0 r9 _0 D8 K) W
3、跳转至6FD17AE4
- V& D' l# H, d' }; T. }6 h
  1. MOV EDX,DWORD PTR SS:[ESP+12C] : M3 U/ O# W! s9 M! o# d- E) T
  2.     MOV ECX,DWORD PTR SS:[ESP+128]
    % t5 Q' ~( {/ x" d- e" Q% u2 \
  3.     CALL 6FD17A2B
    : u7 l( J& J6 W8 `. ]& a
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B
0 }* ]) }$ E0 x& X2 U6 d$ L( D
  1. PUSH EDX
    4 O4 h3 D' \/ H' D9 U3 f! b
  2.     PUSH ECX
    3 V: l, t* ~0 s% ~' c+ s. r
  3.     CALL 6FD17B0F   
    : m9 g, C" B0 N( g
  4.     RETN
复制代码

3 k0 g% S+ O4 n0 o7 ~7 L# E7 z6 r: N! t) ]% p( ^  R8 X9 m: ~9 j! N9 o
DLL部分修改完毕。' A4 y* |+ E4 v% h' K  f$ N. u/ L
在cubemain.txt 添加改红门开启的设定; P$ H- ?6 i1 i2 b% ^
条件设定自行定义,在output处填入Portal即可# k& V' e4 c( |# D6 I% G
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇" Z/ ^! M/ c! q  g
经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error; n. M9 X  K5 d, h+ f* Z$ ?0 I

3 `  E1 S2 h# m4 d! u6 x然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 10:04 , Processed in 0.057292 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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