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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

暗黑mod发布网
搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4303|回复: 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" X; v5 l6 e$ A
该教程仅限于暗黑1.13C+ U$ n/ ~6 F) ?0 t' A5 N

: @2 f% G9 G: t' m4 @使用hex 16进制修改工具打开D2Common.dll
0 c% o8 f8 t/ f/ Q: F: zctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C  D5 k7 m& `: }1 G" E& d0 M' g
$ k8 i6 n" c- L! e2 z
使用OD软件打开D2Common.dll,, ?% [( V$ z+ p1 \+ q- o
1、ctrl+G,跳转到6FDD87EB,输入以下代码
( S, x# q7 `: o# p
  1. PUSH  6FDE4F60 ! t6 f! x3 w6 t$ p+ R. {
  2.     PUSH EBP
    5 h) @, B- E: {8 E" C
  3.     MOV DWORD PTR SS:[ESP+20],ESI " n( p, p; M# _7 o9 t- _# i
  4.     CALL 6FD51EC0
    1 m3 r6 B$ m4 `2 L( e% S7 o
  5.     ADD ESP,8 & u1 Q9 [9 i! G& o# H) z
  6.     TEST EAX,EAX 4 ^: p8 }' }) B8 X8 j
  7.     JNE 6FD6BAD0
    4 z# D5 c: K: P4 L& I5 u. o3 D  k" E
  8.     MOV BYTE PTR DS:[EBX+8],4
    , R) a+ L7 k4 p( I' w, a2 F
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5
# O% ^- L4 G* m2 c( p
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A& H/ U. G, g7 @5 y
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll
: n+ Y6 Z: v( m( r+ ^/ d5 K* p1、跳转到6FD17B0F0 V: C( l3 c8 C
  1. SUB ESP,1C
    8 y, @5 B+ f0 A3 B* m
  2.     PUSH EBP % Y" [# G+ [0 P1 ?5 x5 j/ U2 s! u
  3.     MOV EBP,DWORD PTR SS:[ESP+24]
    6 |  t8 ]6 P, E$ Q- b7 Z
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4] # t: A9 Y! W# ?8 j$ D0 T
  5.     MOV ECX,DWORD PTR DS:[EAX+8]
    * O  S% r9 F- j! ?+ \$ ~
  6.     MOV EAX,DWORD PTR DS:[EAX+0C]
    / e& f- v2 V! B$ p0 [
  7.     PUSH EBX $ t3 }  B# C* G# }9 }; a
  8.     PUSH ESI + s+ T% \% A  |" E- H+ w# q
  9.     PUSH EDI
    2 q7 j. E0 g" e5 c6 o
  10.     PUSH 0B                                                         
    ' q5 Z# E1 g; E! B7 J# D
  11.     PUSH 4                                                  ( R1 {1 ^+ K  T: x+ l2 l
  12.     PUSH EAX                                                        4 v. p9 Q/ T0 ]) z9 o
  13.     CALL 6FC2A568            
    $ F* j' ]0 Y3 l; B4 T
  14.     MOV ESI,DWORD PTR SS:[ESP+34] " j  S& y8 t' F# O! K' H
  15.     PUSH ESI                                                                * u8 _( E+ P) q5 a. Y
  16.     CALL 6FC2A4C0            * @( O* @- J1 e/ D: a/ B+ b
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    ; @  o" \: w) \$ H7 |
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] 4 T# v* L# g) T& ~/ B) q
  19.     PUSH 0A                                                          3 J  O' j! e& j$ C2 @# ]
  20.     PUSH 4                                                          - c- B  i/ R  y) }  k8 \
  21.     PUSH EAX                                                                3 g: V" {( F* @; ~" P
  22.     CALL 6FC2A568            
    # b& R$ e& G/ p; Z; x. z) ^
  23.     MOV EAX,DWORD PTR SS:[EBP+70] - o1 B$ W  j, \" c( Z5 _
  24.     PUSH ESI                                                        , z  D! r4 z( R: f) A
  25.     CALL 6FC2A4C0                      |) E4 l$ D; T3 u3 O( }
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D] # [* Q7 f, O0 P# p% ^
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    / s5 g/ x, {7 z/ y
  28.     PUSH 0                                                  + b* Y* r& ]3 `
  29.     PUSH 28                                                  
    * R; v& S1 t# m; f4 g, _  k
  30.     PUSH EAX                                
    ; g$ _. M* Z4 v+ L# V9 }5 }
  31.     CALL 6FC2A568                    
    ( A3 e; g. Y) m. ?% ~
  32.     PUSH ESI                                6 N5 e9 P- p8 G% V& C
  33.     CALL 6FC2A478            3 D/ F# q" X" _0 u0 U7 L
  34.     MOV EDI,EAX
    4 ?. C$ u+ K$ f4 |$ P, E( n
  35.     PUSH EDI                        ( p5 o# Q  K% ]& M# Y' R% v! F
  36.     CALL 6FC2A556   
    2 z1 n" y4 F8 Y
  37.     CMP EAX,6D
    1 Z, m1 t0 Y* E1 n  x1 U/ m
  38.     JNE 6FD17C79
    % }6 U7 t7 N3 H- N1 q4 q2 P  p
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    8 @) G+ }: w$ F* ]; @
  40.     CMP CL,2 ( E$ v( J" o. t6 F  \4 R
  41.     JNE 6FD17C79
    2 r- {3 H4 W  g2 R5 f: i( X
  42.     LEA EDX,[ESP+24] ! N% n) _# @1 O
  43.     PUSH EDX                                        " l) S, @2 Y5 r) u8 _
  44.     PUSH ESI                                
    8 ]1 Q8 _1 E3 u" u0 y5 Z, @4 D& f, W
  45.     MOV DWORD PTR SS:[ESP+38],0
    $ R& N2 v+ b2 f
  46.     CALL 6FC2A544   
    * a; O' {7 S0 M, B5 x6 a4 j- G2 e
  47.     PUSH 64                  
    ) l6 k* V' d/ D
  48.     LEA EAX,[ESP+34] 2 R. Z2 V- S- J
  49.     PUSH EAX                        % }# f! U0 |2 p* t0 d$ P. @; f
  50.     PUSH 400                        
    # d( W: i6 E  h. w8 a( Q0 l
  51.     PUSH 3                  . x6 q' m( {5 p
  52.     LEA ECX,[ESP+34]
    , E1 I* S" Q8 W  x) Z3 i
  53.     PUSH ECX                                
    - f" ]. k# h4 N) Y; ?/ E2 n2 D" U
  54.     PUSH EDI                        - l2 C) u5 d0 q; _4 f
  55.     CALL 6FC54130            1 m$ y; T) f- Q& p+ W0 Y
  56.     MOV EDI,DWORD PTR SS:[ESP+30] ! X$ X* a# C- q7 i1 u9 k
  57.     MOV EDX,DWORD PTR SS:[ESP+28] ( i, H+ ^- o$ S! I( {0 a
  58.     MOV EAX,DWORD PTR SS:[ESP+24] : X: J6 e4 l* j0 `& j- j: r- B
  59.     MOV DWORD PTR SS:[ESP+14],EDX # T# }$ R- S: [* {& G# u, L
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    4 d+ K( {  G, {# A4 Z1 k. |, E
  61.     PUSH EDI                        % m! w4 `, E9 Q- `6 p
  62.     CALL 6FC2A808    * q0 E+ V4 {* y# U
  63.     PUSH 27                  " @- R% f# z+ a( K, l  ^6 e2 [
  64.     CALL 6FC2A56E    . [+ `9 I1 m, R1 r" y& N- G
  65.     PUSH EDI                        5 m  z( m" n: i3 _' h& [: H
  66.     MOV BL,AL          g- V6 q4 b; F' O" j
  67.     CALL 6FC2A556
    8 ^$ M( c+ n7 P1 I/ K- B
  68.     PUSH EAX                        4 n" q* j( @7 G7 ~8 `% `5 x# ^
  69.     MOV DWORD PTR SS:[ESP+1C],EAX ! ]. H( b) Y5 M7 [1 D$ Z) L
  70.     CALL 6FC2A56E
    # e: G& n( d- x) X/ @
  71.     MOV ECX,DWORD PTR SS:[ESP+10] + ]  B6 N+ ~7 A( d0 j; g% b2 R
  72.     MOV EDX,DWORD PTR SS:[ESP+14] 3 r8 @2 R# g) M6 e: J9 {
  73.     PUSH 0          6 Q/ W1 S' H" g0 _
  74.     PUSH 0C01 0 G! U8 H( w+ P' G! Q% v
  75.     PUSH 3E01
    8 c7 {' Y$ F1 T$ y
  76.     PUSH 3
    $ P+ ^/ v$ D4 K" K- X- V% y* N# A
  77.     LEA EAX,[ESP+2C]               
    + F* i2 h! V3 y- N0 G
  78.     MOV DWORD PTR SS:[ESP+2C],ECX . [* H. D; p4 Y& K, e6 B' |- e
  79.     PUSH EAX                9 G5 X  e: X! x! S# Y. r
  80.     MOV ECX,EAX      4 ~' `* V6 J2 c' F
  81.     PUSH ECX               
    6 Q3 @0 j6 [, W! Z
  82.     PUSH EDI                        
    : y4 z' A  A% {8 K& ?+ w% s8 ]
  83.     MOV DWORD PTR SS:[ESP+3C],EDX
    5 E: z; V, q! L8 x: v* N  s
  84.     CALL 6FC2AE98   
    / n0 t2 q+ T8 v$ a7 I
  85.     MOV EBX,DWORD PTR SS:[ESP+1C] 1 S, ?% q9 Z9 S" v* O) \
  86.     MOV EDI,DWORD PTR SS:[ESP+20] % ?5 u- ?3 {- N7 y- O; u) `& }
  87.     MOV EAX,DWORD PTR SS:[ESP+30] ) u, M6 W4 g/ i: P( u. K
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    4 a, t8 |. p4 u1 Y; ~+ F4 V' I. _, p
  89.     MOV DWORD PTR SS:[ESP+14],EDI
    ' |* ~: L# H. v  C: g  g' k! O) W
  90.     CALL 6FC21280
    . t0 q; Z& r$ p( `& q; D" l
  91.     MOV EDI,EAX / }! }$ f% ]! o1 D% _1 G3 t
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
    / R3 B4 m' p! Y* p: t
  93.     PUSH 0         
    3 n& e$ [0 e8 {9 t
  94.     PUSH 1         
    & f) |7 Y6 H5 n
  95.     PUSH 1
    + S6 q- O0 J# s  D4 ~$ u
  96.     PUSH EDI        
    & B9 M) {1 I$ R5 M
  97.     PUSH EBP        
    % V8 ~  h2 _! a. n3 H
  98.     PUSH EDX        
    . X7 U* a" E( r
  99.     MOV EAX,EBX      / R3 G2 b# A3 F2 V
  100.     PUSH EAX        
    ) d+ r/ J2 i3 h$ G
  101.     MOV EDX,3C        J9 F* V& s/ Y7 K$ D  j: g
  102.     MOV ECX,2        
    " X& G9 i4 A' o* S
  103.     CALL 6FD01D90   
    ) T6 h! c) `3 p2 F! B
  104.     MOV ESI,EAX
    / R+ l5 j: v/ `0 J; t$ D1 A8 G. o
  105.     PUSH 1
    # }5 |5 M) r" Z; s
  106.     PUSH ESI . n# O* r9 Y- x; p; N& P
  107.     CALL 6FC2A4A2 9 h* K/ k8 G0 T2 i
  108.     MOV ECX,DWORD PTR SS:[ESP+18] ( [, W" i, B/ _! N: x( O
  109.     PUSH ECX                        
    4 Y2 M+ C; A' L+ Z8 g
  110.     PUSH 88                          ! Z" F0 H1 v3 K: [. n  B
  111.     PUSH ESI                        
    & N( P3 X5 J! i! W/ Q
  112.     PUSH EBP        
    . S: j) N3 d  j
  113.     CALL 6FCC22E0   
    1 ]% r/ p1 ^) j1 A( E0 Y. j
  114.     POP EDI
    ) E: ?" S4 G( n) x
  115.     POP ESI . F8 u0 s" `' _" m; T
  116.     POP EBX 8 i) d1 b% a' ]1 t
  117.     MOV EAX,1
    . u6 h! A5 T! N5 u$ ^( s$ v' Q. P
  118.     POP EBP 4 I; B% }2 n- X3 y
  119.     ADD ESP,1C
    ( e6 R* v1 E: i. c( \$ d. ?6 X
  120.     RETN 8
    & T7 Z- i! @7 m
  121.     PUSH ESI % Z8 g% i9 |' P
  122.     MOV WORD PTR DS:[ESI+6E],14
    / v2 S3 q  C$ Z  |
  123.     MOV DWORD PTR DS:[ESI+70],ESI - N# @5 J; K% }5 k! J( o
  124.     CALL 6FC2A4DE
    9 E- d2 \$ l1 ], ^* P8 T
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4]
    * x2 Y$ O+ ]0 \  {( m3 Z
  126.     OR EAX,00000400
    8 ^1 v  |/ s( L& I
  127.     POP EDI
    2 b: I7 o1 Q# c1 K4 X5 H& D% `
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX 3 a% B8 \0 p! X0 U" _
  129.     POP ESI
    ( Q" B% o& ^' X7 N
  130.     POP EBX
    ( K. b$ \8 ~& t) w, r7 v& T
  131.     XOR EAX,EAX / N# x- s0 ?% v! s, G) z0 I
  132.     POP EBP 7 T9 T9 h* N: c8 @
  133.     ADD ESP,1C
    . {5 f' R# u8 J
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。  G0 ?9 M! ?9 R0 Z! u) n' E  V
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。$ R+ v$ S/ S( u! R; {% F

: \# Z9 k  |2 `/ b修改的限制代码为:1 ~* O, Z6 L  F$ F  d4 r
  1. 地址= 6FD17B75      
    ! g5 Y, g# o9 Z; t6 }8 t
  2.     CMP EAX,6D         6D为第五幕城内
    / A1 C- O. f  J
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    # W9 G# j! X3 Z$ g- y" v4 o% g
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内0 E2 B% s% F; u! M, B7 ^4 K
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱: o1 j$ Y4 b. I* D' X: r) S
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。& k, D+ q, Z  {- H5 i, a6 \9 b4 g
5 V3 _5 N3 f  a1 e: V" `# o7 d
修改箱子合成部分/ B& V/ ]: k" C' }
1、d2game.dll,跳转至6FC92417
9 ~, {# Y/ u' z% c. o
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
, v- ]5 T) ^; r
  1. CMP AL,4
      D/ a! B% J4 p; k! _3 R4 Y' Z
  2.     JE SHORT 6FD17AE4
    ; \/ y$ @) z3 K9 s( T9 }
  3.     MOVZX ECX,AL
    ) r, e. f0 _6 k- t/ D1 A' d
  4.     JMP 6FC9241E
复制代码

4 z% L1 X& y/ s3 Y; c3、跳转至6FD17AE4
/ Y/ g; J" z! e/ I
  1. MOV EDX,DWORD PTR SS:[ESP+12C] ' u3 p! O+ g8 {8 w
  2.     MOV ECX,DWORD PTR SS:[ESP+128] 4 O. `) q5 R5 _  C  N4 v8 p" h
  3.     CALL 6FD17A2B
    . H" j% h8 u- l- q
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B% D% h: [- ?4 i; |% E' m% f8 D. q
  1. PUSH EDX
    ' \. m. `1 E7 b  c
  2.     PUSH ECX
    % C; i, J1 J6 I
  3.     CALL 6FD17B0F   
    + b  D5 a) t- ^( Y. D2 v& {
  4.     RETN
复制代码
) y) d0 D5 o; J8 S$ p  C1 v
3 m, H) D$ I9 u; M% }
DLL部分修改完毕。
' r5 [/ }5 U+ m# |, x在cubemain.txt 添加改红门开启的设定
; _  l6 z6 M. [( ?4 Y2 [* f条件设定自行定义,在output处填入Portal即可
" i! J! ?; {- s4 W
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇3 r8 M+ Q% Z2 A' Y( }
经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error  M; C9 u' K* D

  E. N& q3 l2 C! d- b+ Z* ?然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-3-9 22:27 , Processed in 0.057134 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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