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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

361

回帖

830

元宝

1

圣者绑元

管理员

Rank: 9Rank: 9Rank: 9

积分
1
发表于 2018-8-29 20:12:12 | 显示全部楼层 |阅读模式
转载:http://diablo.phx.pl/forum/viewtopic.php?t=622427 j5 ?% O) d- h
该教程仅限于暗黑1.13C4 V# e4 F; V. ^0 i" U5 G

  a1 x+ w3 c9 E: y( Q使用hex 16进制修改工具打开D2Common.dll- R8 F& v" I% ^/ _! a
ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C
$ V3 ^0 h' d& u
9 `/ ?" b' h! \2 l+ ~8 H使用OD软件打开D2Common.dll,
6 F0 r  _+ z& e- ]8 F4 I# [" y3 E- T1、ctrl+G,跳转到6FDD87EB,输入以下代码1 V! m4 c' F7 _. r& ~
  1. PUSH  6FDE4F60 ( C2 I7 y8 z4 R# `) `( R& _- {' ^/ y& k
  2.     PUSH EBP
    6 P! \' s6 N9 H) B9 }2 v$ [* H
  3.     MOV DWORD PTR SS:[ESP+20],ESI 0 Z# O( d. g5 t8 y* _6 G
  4.     CALL 6FD51EC0 % j4 u) i4 ~8 Z; R1 _+ {" E
  5.     ADD ESP,8 + X$ R6 l4 h5 q1 Y) u" B# h
  6.     TEST EAX,EAX
    , ^& }& c6 i% B9 w8 n0 s' ]
  7.     JNE 6FD6BAD0 ! @4 Z, v2 B; A) O8 {
  8.     MOV BYTE PTR DS:[EBX+8],4 5 U% M5 x8 p& B7 X8 U$ H
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5+ h$ e" e* Y$ f
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
, M2 G" r$ S0 E( `2 A, X) d7 ?
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll
; T- e2 Q) \3 a3 }" {1、跳转到6FD17B0F. c- |* P8 ^  G, P
  1. SUB ESP,1C . j! g) g" d5 _2 T4 E% T4 v0 S
  2.     PUSH EBP
    ) B* D) o; O. j! }  _1 L# x
  3.     MOV EBP,DWORD PTR SS:[ESP+24]
    , I5 Q, r* y  o3 I: L7 z9 N
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4] 8 e" _1 q; w  T
  5.     MOV ECX,DWORD PTR DS:[EAX+8]
    3 H7 g; O( U, g2 Q+ U4 h9 p
  6.     MOV EAX,DWORD PTR DS:[EAX+0C] 8 s) k/ g5 H0 J' v6 [
  7.     PUSH EBX + k, e; A- M, Z2 z# O" _8 t
  8.     PUSH ESI + Z5 m, v. N5 _; @2 u
  9.     PUSH EDI
    ( r' B$ H5 J) H
  10.     PUSH 0B                                                          9 \  c# g) m6 b# _* o7 l
  11.     PUSH 4                                                  & w+ m/ f  \4 \" k! m
  12.     PUSH EAX                                                        $ ?* z8 T& Z6 ?
  13.     CALL 6FC2A568            7 U) O) M) @) w3 z3 Y  u
  14.     MOV ESI,DWORD PTR SS:[ESP+34] & O- I1 N: B5 Q- |
  15.     PUSH ESI                                                                ; y% ^5 V1 w) l8 H- h+ m, ^- i
  16.     CALL 6FC2A4C0            . U7 K' m: U; g, P8 a1 p
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    ( {3 t4 j/ x8 A% H& k- J- C
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    + n* n" }) a0 k5 C9 S; |
  19.     PUSH 0A                                                          9 Z' p% z; R: m! B
  20.     PUSH 4                                                          + M# [4 [$ }0 O5 _' C3 n
  21.     PUSH EAX                                                               
    & Z  s/ R* X6 N  g+ z' b
  22.     CALL 6FC2A568            5 p* q# J, y9 g. ?2 ^' Z4 L
  23.     MOV EAX,DWORD PTR SS:[EBP+70]
    # H2 Z7 O3 J& s4 c
  24.     PUSH ESI                                                        
    & g8 ?- {8 u6 f$ B8 E
  25.     CALL 6FC2A4C0                    : t* r8 Q" V9 t
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    $ N1 b! r  h2 Q$ ]
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] 3 N7 a2 h( V2 @% w
  28.     PUSH 0                                                  
    " p1 Y+ _: L: W3 h7 q. D- S/ ]4 v" R: y
  29.     PUSH 28                                                  6 X1 z0 P3 u0 D) W! b2 E& J
  30.     PUSH EAX                                $ D/ a2 c- k/ _$ s7 ~. g0 S  j
  31.     CALL 6FC2A568                    
    & d  u' f* J3 k% W" e2 G& @$ q
  32.     PUSH ESI                                
    2 X- U) H- u: p( }
  33.     CALL 6FC2A478            
      m' @' |' `1 d
  34.     MOV EDI,EAX 7 A. c9 \1 u) i3 R0 o3 A
  35.     PUSH EDI                        
    ( Y0 h2 m, J) ?  Q0 T
  36.     CALL 6FC2A556   
      s6 L% V3 b/ r9 W" {  V: J2 Q) J
  37.     CMP EAX,6D $ ]& ^, Y, \2 L" M9 m
  38.     JNE 6FD17C79 % Q3 A: N' g9 w8 E# k1 f
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    + |& E( Q1 V; J0 _
  40.     CMP CL,2
    & P8 F6 S/ s  |
  41.     JNE 6FD17C79 - l( W7 v$ f0 W
  42.     LEA EDX,[ESP+24]
    9 `; q% w5 J- U0 q( J  {+ N* |
  43.     PUSH EDX                                        8 m! \3 D7 N6 ~# s! o& }- q
  44.     PUSH ESI                                
    # ?; u: k; O2 |1 q% L. }4 y
  45.     MOV DWORD PTR SS:[ESP+38],0
    6 A5 k9 _3 |9 g* O) ?
  46.     CALL 6FC2A544   
    0 {% \: w* @1 j. T& g( M( t
  47.     PUSH 64                  " J+ g: A0 \$ L7 H9 i
  48.     LEA EAX,[ESP+34]
    9 i' F& @. l7 K* I4 o
  49.     PUSH EAX                        , D/ ~7 d' }* q
  50.     PUSH 400                        ! f# k! R# z9 U3 S
  51.     PUSH 3                  . B. R, F) |1 m3 e& J
  52.     LEA ECX,[ESP+34]
    1 p( \  S6 D6 f4 q0 V
  53.     PUSH ECX                                % }& P- Y0 Y0 w2 @/ o
  54.     PUSH EDI                        3 w5 C; `5 d& [5 _, ?; ^2 a
  55.     CALL 6FC54130            - Z8 x' q  i' ^5 F) `4 p# i
  56.     MOV EDI,DWORD PTR SS:[ESP+30]
    ; N, C: g) e; k- ~: s: n
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    4 l0 ?2 k1 e% H' u) F. Z  P' m
  58.     MOV EAX,DWORD PTR SS:[ESP+24] 9 Z8 U# z! L9 G
  59.     MOV DWORD PTR SS:[ESP+14],EDX " ?) u( n) `+ M, a6 N# H
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    5 ?4 l, H# e' \; f
  61.     PUSH EDI                        
    6 ]' ~) I: w0 w9 l2 O, y" e
  62.     CALL 6FC2A808    ; ?# E' x5 G( x( p) ^
  63.     PUSH 27                  
    , x# i, {9 u9 z" R- f6 w# Q
  64.     CALL 6FC2A56E   
    & b' S. D6 A4 F
  65.     PUSH EDI                        : G2 Y2 j( e  |& K1 Z  W. e
  66.     MOV BL,AL        ( s% q; g, y2 g; _  z9 g3 J% Y& H
  67.     CALL 6FC2A556
    . r" L+ V& L  d, X8 D( I* _
  68.     PUSH EAX                        ! N) \( w2 R1 q3 I8 F  f  F8 {
  69.     MOV DWORD PTR SS:[ESP+1C],EAX
      l. K; g2 V( j) I
  70.     CALL 6FC2A56E + E2 U7 X" x$ B3 c
  71.     MOV ECX,DWORD PTR SS:[ESP+10] 1 m5 x) ]) Q4 J" G& d
  72.     MOV EDX,DWORD PTR SS:[ESP+14]
    ; [% ]) H8 O: B. v, V
  73.     PUSH 0         
    8 z1 H5 ~) U# ^0 U
  74.     PUSH 0C01 . N) W5 x7 r5 e' ]2 c% h8 l
  75.     PUSH 3E01
    ! b) h9 g" \) V9 A  u( j/ J
  76.     PUSH 3
    ) j" C! A, t1 D! @3 J/ @
  77.     LEA EAX,[ESP+2C]                9 K5 G  |' o' e9 s
  78.     MOV DWORD PTR SS:[ESP+2C],ECX   A8 k" }( ~4 A# i- E
  79.     PUSH EAX                1 a8 Z! L7 j7 B' t. [$ K
  80.     MOV ECX,EAX      1 s; M% J' P9 g- Z) S
  81.     PUSH ECX               
    . ^1 g5 m$ H. V) q! a1 c- E' `! X
  82.     PUSH EDI                        8 b& p" z# j8 L
  83.     MOV DWORD PTR SS:[ESP+3C],EDX 9 v( t/ Q8 R, \# I
  84.     CALL 6FC2AE98    . ?# _5 j( b1 N8 v7 q! {3 b
  85.     MOV EBX,DWORD PTR SS:[ESP+1C] ; r) h% N  R! o+ b. ?4 }/ N6 n( G
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    " Q& h) \4 D. L
  87.     MOV EAX,DWORD PTR SS:[ESP+30] 2 q2 |5 e+ J' C' o! I+ p. I; k; n
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    , B1 w8 \- P9 h5 t& o! t) ]4 m# ^4 P
  89.     MOV DWORD PTR SS:[ESP+14],EDI
    ! @4 m* h1 t% u$ C5 t0 @6 d1 z( j. W
  90.     CALL 6FC21280
    " t3 r. x# m; b! ]9 d1 T/ F2 @7 d
  91.     MOV EDI,EAX 2 f5 g7 H- Z4 s3 N- p1 z8 ?
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
    : ~# r1 a2 [) \9 F* x3 p
  93.     PUSH 0          # C/ g" ]$ W3 v6 |# x# K
  94.     PUSH 1         
    : o2 {" Y& I$ v& V2 {+ }
  95.     PUSH 1 0 [8 t' C! e' A
  96.     PUSH EDI        
    ; J: V6 T$ g4 G/ L6 }  N# e
  97.     PUSH EBP        # U+ Q. d5 H, k# V" L
  98.     PUSH EDX        0 S8 O% w! f/ }3 _6 r( b
  99.     MOV EAX,EBX      9 \  l2 e- k' j+ r  |
  100.     PUSH EAX        4 `) y" Z; g, y1 L
  101.     MOV EDX,3C      
    5 S/ x( b+ l8 K
  102.     MOV ECX,2        6 J( C5 a! d' D0 F4 n
  103.     CALL 6FD01D90   
    : _. q$ M/ n1 h6 A3 T3 Q
  104.     MOV ESI,EAX ( Q( j5 G" h0 i+ m% I
  105.     PUSH 1 ) ]1 Z* I4 b" f$ |, L* X" O
  106.     PUSH ESI ) a& o* y% ^" i+ z* S8 j0 r
  107.     CALL 6FC2A4A2 / n4 A5 J* {2 W) X4 X
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
      e3 j; h" h8 e& u0 A7 {* f/ r0 {+ {4 B
  109.     PUSH ECX                        
    + e# m# {4 s3 g" P( B$ a
  110.     PUSH 88                          ) ~+ N/ Q! [* ^  `) D
  111.     PUSH ESI                        . \3 \) C, a4 d/ f5 n
  112.     PUSH EBP        - K. J$ F$ X' [% S
  113.     CALL 6FCC22E0    : M. _1 k: S7 K7 a3 g
  114.     POP EDI ) n  V/ r! Z! e
  115.     POP ESI
    + G* O, z7 C. `3 N( ~
  116.     POP EBX
    4 }' E' g5 t$ u
  117.     MOV EAX,1
    4 Y7 _8 R% F0 Q# {7 M7 c
  118.     POP EBP
    1 t2 o* h: M- z3 y* y
  119.     ADD ESP,1C
    $ t4 ~# o2 V- v+ e( s  y8 J( ?
  120.     RETN 8 ! `" S' b, z1 k4 n9 J
  121.     PUSH ESI 5 _. h0 A* w7 M! u% P' |# ?5 A0 ^2 O9 Y
  122.     MOV WORD PTR DS:[ESI+6E],14
    2 i3 d. A2 {' K) Z( H
  123.     MOV DWORD PTR DS:[ESI+70],ESI 3 L$ T$ k/ ~$ _5 B* W) T
  124.     CALL 6FC2A4DE
    8 B) u7 J/ c: R3 N! b6 K
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4]
    , G3 b2 S4 u* s5 k
  126.     OR EAX,00000400 & d  f% T" l/ \! N" G: ]
  127.     POP EDI ( u% _- `. M* B! |6 L: Q. S, C5 ~. a
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX
    7 v4 h$ z) z0 j- Z4 n- I: O
  129.     POP ESI 1 Z3 L2 ?& Y  E+ s# |
  130.     POP EBX # i% Y# K0 z3 }1 \. ?
  131.     XOR EAX,EAX
    3 m5 W% ?/ u* h2 q
  132.     POP EBP
    1 F3 S2 q$ ~" k+ x+ i6 ]: f
  133.     ADD ESP,1C
    8 ~, ]3 ^% H; Y/ \, }! I5 _; ]
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。
% p% H; r) I- R$ V$ g7 D! n, i2 P地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。8 z- K/ y0 R3 U6 a( n' v

/ F6 x4 o" W9 j& a" @' T9 A修改的限制代码为:# S2 ?( s* Y5 Z) Z8 K, t* _
  1. 地址= 6FD17B75      
    ; H. b; q  e( ]" x. `
  2.     CMP EAX,6D         6D为第五幕城内
    * k8 R, z# P+ @& P3 J( H0 L
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    " D! _3 |! M, l% Y7 Q
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    : C+ ]; g# Z- I( i* h8 m
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱& d" V) {: S1 {9 ~( t. T
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。. T8 E; @* S1 @* t8 S, K9 o" ~
" `3 A; w% t- u$ D. L) A0 z/ t% \
修改箱子合成部分( n% |  s3 O$ ~0 _
1、d2game.dll,跳转至6FC92417* M+ M0 v6 S0 L4 _* G8 d
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8( @1 [: D. `) d
  1. CMP AL,4
    0 h( L4 q: E4 }* _( _
  2.     JE SHORT 6FD17AE4 ; f7 s* d/ J* Q& z
  3.     MOVZX ECX,AL
    + x1 Q/ d2 K  P- a: c
  4.     JMP 6FC9241E
复制代码
, ?$ b' u: c- |, J$ }
3、跳转至6FD17AE45 o3 L, t/ v& y6 l! b
  1. MOV EDX,DWORD PTR SS:[ESP+12C]
    5 C  s, L8 B) _% j
  2.     MOV ECX,DWORD PTR SS:[ESP+128]
    2 I4 w3 s8 _, g/ q3 ~) d1 y
  3.     CALL 6FD17A2B
    ! f1 h# z: ~& f
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B- c3 q/ m6 T* `7 T$ G" w  @
  1. PUSH EDX
    " ~3 ?% U9 X6 |. R7 h" i& v) `; J* Z
  2.     PUSH ECX
    2 K) ]- n: `& H3 [5 ]% C
  3.     CALL 6FD17B0F    ; ]3 K0 F4 \6 L7 A: ^
  4.     RETN
复制代码

3 i) p5 \, H( g3 ?! x' N( R& I1 f+ s+ r
DLL部分修改完毕。. H! q% k# C4 F4 p( K* `% C
在cubemain.txt 添加改红门开启的设定
/ i  q! b$ L# v% ~6 z条件设定自行定义,在output处填入Portal即可
1 C8 g, E" v0 l# X' O
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇
! v: ]- I% T6 s7 z  {. R- ~经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error
1 j" J! N* }+ U$ D- p+ Y3 ~9 x
0 k3 C* q/ ?, t4 _6 P然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-10 16:46 , Processed in 0.076809 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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