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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

暗黑mod发布网
搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4190|回复: 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
- B+ K3 f7 P" y1 F* u; C3 T/ {0 T8 k7 ?该教程仅限于暗黑1.13C# Q# U6 H" y1 v- O) n- i* h
( o4 w$ ^( d4 {" H3 F8 C0 ~
使用hex 16进制修改工具打开D2Common.dll0 v9 x1 h9 ]0 ?- o! h  t' E* @
ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C
! |0 \+ i( \6 Q* y* U3 B
& r; N2 a% G: z& w使用OD软件打开D2Common.dll,
: G' W9 Z+ D, Z1、ctrl+G,跳转到6FDD87EB,输入以下代码
5 P4 X: _0 X2 H% w5 q4 k- }
  1. PUSH  6FDE4F60 ( f1 T9 s; _7 r6 f
  2.     PUSH EBP " \* T6 u# l' c& u/ S# r8 k2 }$ N
  3.     MOV DWORD PTR SS:[ESP+20],ESI ) k4 y: e& y2 e: T1 s
  4.     CALL 6FD51EC0 7 T. d9 s; s6 @8 l) V: A
  5.     ADD ESP,8
    & q* \+ ~9 I3 @0 }. E
  6.     TEST EAX,EAX
    3 F3 Y' h1 R% J0 q9 I0 t
  7.     JNE 6FD6BAD0 5 X" S2 y/ ~8 U
  8.     MOV BYTE PTR DS:[EBX+8],4 $ N$ c& s2 I/ D
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5; O3 I- |- b9 v$ r9 c/ ~( p
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
/ B. F# K# k) B; E! R7 n$ X, S$ W
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll  e/ B# \/ {' J: B! u* @: A
1、跳转到6FD17B0F. d. D2 H: h& |: `
  1. SUB ESP,1C
    ' l0 b9 ]; E" _7 @1 ]( M9 u
  2.     PUSH EBP , {0 |, s* I9 i9 @& S8 K
  3.     MOV EBP,DWORD PTR SS:[ESP+24] $ e6 }" j6 ^* n5 g! Y
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4] 7 o" |8 F+ g" @. z/ B
  5.     MOV ECX,DWORD PTR DS:[EAX+8] 7 @  i0 t7 b( Q5 w  a$ a$ @
  6.     MOV EAX,DWORD PTR DS:[EAX+0C]
    / E( |* ~7 E2 z% u# z5 A
  7.     PUSH EBX 5 |2 J/ d) J4 d' y, E, P" l( D6 B
  8.     PUSH ESI
    , z1 z+ N, I2 S+ w2 A& Y/ @2 g
  9.     PUSH EDI - v5 ~: s5 c1 D( t8 `
  10.     PUSH 0B                                                          3 V- b+ v' n; ~) Z+ |4 p; a
  11.     PUSH 4                                                  
    7 Y8 u( N+ \% ~5 b6 N; f% K9 J5 e
  12.     PUSH EAX                                                        
    ; U8 n; j4 B. y9 {6 v6 F" P+ v
  13.     CALL 6FC2A568            
    4 ]4 @" P8 d) U! Y: y
  14.     MOV ESI,DWORD PTR SS:[ESP+34] . }. j. M$ G. W$ L& F
  15.     PUSH ESI                                                                ) E& T# e+ V) @8 x- ~% O9 E
  16.     CALL 6FC2A4C0            ' G" z( M% b' Y; }4 p, q
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    ! T& m* u" e9 @- B9 ^
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] + R$ n& ^( {, Y6 a2 ~" D) |- O' m6 R9 J
  19.     PUSH 0A                                                         
    - t" J9 Z. g1 d; Y: A- O- s1 q! _
  20.     PUSH 4                                                         
    # o" N- Y" @3 g7 d0 _* |% F
  21.     PUSH EAX                                                               
    . z& L4 X4 O4 [. _7 |
  22.     CALL 6FC2A568            # I9 m+ C& F1 q! h% w
  23.     MOV EAX,DWORD PTR SS:[EBP+70]
    5 i. V5 j. A& ?" M% O
  24.     PUSH ESI                                                        
    . {5 b9 c( {0 |' G2 u0 ~8 n& m. D( c
  25.     CALL 6FC2A4C0                    
    . S& `0 b2 U2 B* M
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D] # ?. H' \9 E- J; r4 i! N  Q1 ]
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] 0 }2 N  a) V) U* N
  28.     PUSH 0                                                  * Y; k8 ]1 v- N2 U. f
  29.     PUSH 28                                                  
    1 k2 A* Z0 }1 j# {8 m
  30.     PUSH EAX                                
    / }( N$ y% U/ K. k
  31.     CALL 6FC2A568                    
    3 q3 {4 Y) A3 p9 Z9 _" s2 @
  32.     PUSH ESI                                ! m# d% [9 h$ ~' ?  b
  33.     CALL 6FC2A478            ! }! e. z0 V6 I0 y2 ]
  34.     MOV EDI,EAX - d( H6 S7 M* H$ r
  35.     PUSH EDI                        6 d- ]9 Z4 x& J, o. r
  36.     CALL 6FC2A556   
    5 w7 H& L7 J$ i5 w/ U5 E$ ]2 P) t# D
  37.     CMP EAX,6D ; K+ H+ L! Q( V% I: f
  38.     JNE 6FD17C79 & U0 ^  t/ T9 W: ]/ i
  39.     MOV CL,BYTE PTR SS:[EBP+6D] / T9 P. B2 Y- r! p( G: W7 ?5 X
  40.     CMP CL,2 % F9 s- z& Z* l% }. v) @, M, T
  41.     JNE 6FD17C79 6 R: q! J4 y0 i" }6 L
  42.     LEA EDX,[ESP+24] 0 @" t: k, T/ x( ]. O6 \% W% Y
  43.     PUSH EDX                                       
    6 G: d) R9 d! A
  44.     PUSH ESI                                - ?- T% g, y. E9 f  X9 f
  45.     MOV DWORD PTR SS:[ESP+38],0 % U* B/ h  a$ d- d* G; j4 F
  46.     CALL 6FC2A544   
    ' \/ h8 ^* f& A/ M! o
  47.     PUSH 64                  1 b9 N* E/ P- Q6 J' `0 Y4 Z
  48.     LEA EAX,[ESP+34] - t& A" h# b# Y8 G* E* s% Q
  49.     PUSH EAX                        * I+ T$ T( o( L) C
  50.     PUSH 400                        ! S. v" f6 S  r  ]3 J
  51.     PUSH 3                  6 X6 s" L$ W& M3 i) P9 G
  52.     LEA ECX,[ESP+34]
    ; k! e# j, R2 J" a
  53.     PUSH ECX                                4 P- ~+ }9 w9 |' B
  54.     PUSH EDI                        
    9 q3 o3 ^4 O6 g5 o
  55.     CALL 6FC54130            # ^" P- A7 A# B: C1 r) a" r
  56.     MOV EDI,DWORD PTR SS:[ESP+30] " I9 w5 c1 p9 G/ }) `/ z
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    9 ?, \; v* q$ b
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    / n( \' i3 |8 @2 x
  59.     MOV DWORD PTR SS:[ESP+14],EDX
    + y3 T$ ^  ~$ ~, Q  @
  60.     MOV DWORD PTR SS:[ESP+10],EAX ; l: W$ f! I, x# Z0 u
  61.     PUSH EDI                        
    6 T( H. r6 i2 Y% v
  62.     CALL 6FC2A808    1 c6 F" [  f8 q. H: {; q
  63.     PUSH 27                  $ Q: n" i* p% p$ m
  64.     CALL 6FC2A56E   
    * z% z) R# o5 x, B0 W" H( \! P
  65.     PUSH EDI                        
    2 Q/ q! ]8 _9 V1 {' I% ~5 J
  66.     MOV BL,AL        
    7 W& I; m/ w! n( M0 u% I6 d, Z8 T% `
  67.     CALL 6FC2A556 8 E# i: ]5 [6 t9 f- }# C
  68.     PUSH EAX                        ; A' |+ r  x! U" G3 B
  69.     MOV DWORD PTR SS:[ESP+1C],EAX
    # x4 H7 ?) e# F+ I' c; l4 A9 l0 ?
  70.     CALL 6FC2A56E
    0 f, w% M% R# m2 n' i
  71.     MOV ECX,DWORD PTR SS:[ESP+10] 0 u, B+ g; g3 J$ J: T! s6 |, S
  72.     MOV EDX,DWORD PTR SS:[ESP+14]
    $ m4 k) z: k4 T3 C2 n9 ~
  73.     PUSH 0          ' R4 R% o" w. {
  74.     PUSH 0C01
    2 ~, C' p# z! \/ z5 ]
  75.     PUSH 3E01
    ' y4 P7 C1 u) g4 V$ j; x7 ?% ~
  76.     PUSH 3 ' n3 ?% p# p2 C9 g
  77.     LEA EAX,[ESP+2C]               
    ' G% b4 @' k1 D
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    & q' `! k$ B, ]7 {2 p
  79.     PUSH EAX                7 h; S; R1 m; i% s! w3 \6 w
  80.     MOV ECX,EAX      ' z6 a2 E) h; `8 z4 S- l% L: L
  81.     PUSH ECX               
    / |. g3 E. c) F1 J6 A3 Z1 V) W, s
  82.     PUSH EDI                        8 ?$ a& U' h; {+ i4 E) ^- v, A
  83.     MOV DWORD PTR SS:[ESP+3C],EDX
    " ~1 p6 l: `! `( c* B0 J/ ?0 S
  84.     CALL 6FC2AE98    4 o! V  J% b0 ]
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    2 U# Z/ {% C4 o  _7 s/ S1 w- e
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    3 L! E1 R$ h  N0 O: ^) |+ e
  87.     MOV EAX,DWORD PTR SS:[ESP+30]
    8 a2 @9 `" `: w8 G3 u1 p
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    ; |0 Q! L/ t/ A2 t
  89.     MOV DWORD PTR SS:[ESP+14],EDI 3 T. p) n- ^5 P* |* t* J
  90.     CALL 6FC21280
    1 J5 x' l( o- A# v
  91.     MOV EDI,EAX 2 V  a7 Q6 U7 {; p
  92.     MOV EDX,DWORD PTR SS:[ESP+14] : q9 G+ |( G) I1 H
  93.     PUSH 0         
    3 e2 {+ Z3 q! Q  D
  94.     PUSH 1          ; G, K, M( w1 ?- p+ n% Y8 S
  95.     PUSH 1 : Q$ o+ _2 A7 K
  96.     PUSH EDI        
      p1 T5 e, I; a4 p( u
  97.     PUSH EBP        
    ! v/ O( V8 z$ T0 e( s
  98.     PUSH EDX        
    ( i$ O  r/ j; I8 O+ J) ?( \  }! z) B
  99.     MOV EAX,EBX      
    5 m: ]& W0 Q( n9 x( ?  m9 L
  100.     PUSH EAX        
    7 w/ Y! M, t7 s" g. T! R" |
  101.     MOV EDX,3C      
    / V  r$ K' `  M: E$ x- n
  102.     MOV ECX,2        % ?2 h9 ]0 T3 r# j0 p* }  @7 Q
  103.     CALL 6FD01D90   
    - r; X; [  s' N# j' {& d
  104.     MOV ESI,EAX
    3 k: ^8 Q. }, W* Z* o- p' W2 W
  105.     PUSH 1 ; m9 p* ~4 i  w1 c- I
  106.     PUSH ESI - A, g9 z  G' e2 G) U& i
  107.     CALL 6FC2A4A2
    3 e! |8 v' b3 g( y7 p# q& b5 p
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
    / q! l5 O7 \9 O" _$ ^
  109.     PUSH ECX                        
    , {* K* y' i. z4 W
  110.     PUSH 88                          * d5 P1 m% t. q* j% x8 v$ H, `
  111.     PUSH ESI                        
    # z5 x0 n! L4 w; p% z4 a
  112.     PUSH EBP        2 S$ y+ j8 U3 V4 [( U# e
  113.     CALL 6FCC22E0    ! n3 I% i7 d7 ~4 Y% g! C1 c( W
  114.     POP EDI 6 H6 k; i! l4 H- s' a4 P) x. b
  115.     POP ESI - C5 g2 d5 F2 b  l
  116.     POP EBX 1 i3 R& Q/ a( v! ^+ q* r5 o0 ^$ N/ R
  117.     MOV EAX,1 9 Z9 B4 J4 k. H
  118.     POP EBP * Y* K1 ^  J- ?2 U, S4 O
  119.     ADD ESP,1C
    + a  i6 S- J& ]  M
  120.     RETN 8 / ?) H, B/ g8 c) s/ }
  121.     PUSH ESI $ J. w; A5 D/ m! c$ u
  122.     MOV WORD PTR DS:[ESI+6E],14 8 G" [# o. X' _3 k
  123.     MOV DWORD PTR DS:[ESI+70],ESI ! r8 ?  B' `( ^. O9 K+ Q
  124.     CALL 6FC2A4DE + w: Y3 B6 r, S/ g
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4]
    7 z( X: }  ?8 B' u/ l
  126.     OR EAX,00000400
    1 y2 {- X; p6 j
  127.     POP EDI
    - x7 t# p7 y: b' H& \
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX
    " M' b! @- w4 ^4 H
  129.     POP ESI + ?+ q6 z' p* X2 l1 t/ D
  130.     POP EBX * [8 p/ n" ?9 r, o1 ]
  131.     XOR EAX,EAX 0 D5 M/ {  [: D2 C4 q
  132.     POP EBP
    0 h6 ~; W/ l. s' _9 x3 H6 p
  133.     ADD ESP,1C 9 d4 V6 O( v+ i3 X% O+ u
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。$ Q* f1 r4 r0 ]4 L: x9 m; f! C7 v
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。) u+ o2 ^, W7 t# b0 ^

0 V0 Z. E& y+ o% Q! H# f- D修改的限制代码为:9 h. n- T) f0 ]1 n8 t3 N8 v7 I3 ]6 \9 F
  1. 地址= 6FD17B75      ! \- g$ M* o, w; z7 P9 y- `
  2.     CMP EAX,6D         6D为第五幕城内+ O9 P$ ]6 D, G: [0 o
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E + c3 S# O" m9 f) w; P9 G" |
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    . y( u& p2 j/ G0 |* F' i
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱
    - I  K6 g( y+ P* e! s. m
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。
+ A0 ~+ W6 h9 |1 |
! h! R7 D: b/ r# S4 i修改箱子合成部分9 o! P0 _$ o* R
1、d2game.dll,跳转至6FC92417# b+ k; g6 |8 Q8 N/ c' G
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
7 A3 M+ I+ r) @
  1. CMP AL,4   q: T8 E% f% v: n1 w4 l/ b
  2.     JE SHORT 6FD17AE4
    " V6 k* O) c2 ~. c- F
  3.     MOVZX ECX,AL
    : k7 C7 `$ n8 G; }! U
  4.     JMP 6FC9241E
复制代码

+ ^# }& Q4 c7 i3、跳转至6FD17AE4
/ G8 L: ?8 X; _' {; n# ^
  1. MOV EDX,DWORD PTR SS:[ESP+12C]
    3 }0 A6 Q) ?$ `( ^0 T+ Z+ r: v2 j
  2.     MOV ECX,DWORD PTR SS:[ESP+128] " a. J* P; Q* R" ]
  3.     CALL 6FD17A2B 5 a3 K: G( w9 M
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B# b# r2 ^+ s5 L; s5 q9 S
  1. PUSH EDX
    1 m/ ^" Z# c7 W: |% ?
  2.     PUSH ECX
    3 E7 b1 {6 {2 p* o. m5 ^: s
  3.     CALL 6FD17B0F    & k& p! R+ R! k6 c
  4.     RETN
复制代码

& v8 p+ l& u  d$ {( j" l6 A. x2 T5 e0 F  [) n3 X! X$ T
DLL部分修改完毕。
" S% |, L7 \% }0 l4 ^在cubemain.txt 添加改红门开启的设定; `+ R0 ?6 w, C( l& q" I
条件设定自行定义,在output处填入Portal即可
- ~& b* j# R7 A& T0 }- b
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇3 G1 U8 v# z3 A# E# @
经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error7 G+ P& f) K$ s3 F  A* N! H: n; u

, T; S' e3 N0 I, K然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 10:16 , Processed in 0.056894 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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