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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4127|回复: 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) ~2 v: U/ z1 ?: k/ e& W* |
该教程仅限于暗黑1.13C
" e1 u. m( j* b: w& y; W( u: _; _9 Q& h5 j
使用hex 16进制修改工具打开D2Common.dll9 V6 e& O, Y' T+ A- Q+ b
ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C
' e  s7 A4 e; C6 @9 a
8 x! w0 C' i9 d3 k1 b3 n& a使用OD软件打开D2Common.dll,+ K' c8 [1 E* U6 Y6 `
1、ctrl+G,跳转到6FDD87EB,输入以下代码
) `0 `& W: x  h9 j8 W4 R
  1. PUSH  6FDE4F60
    & T: f$ @" T$ ~! Z, z. K  W, ?
  2.     PUSH EBP
      `6 k4 B' ]: x3 V
  3.     MOV DWORD PTR SS:[ESP+20],ESI
    ; X. e+ a7 n$ g" H9 y5 e4 R- w: m
  4.     CALL 6FD51EC0
    1 g3 D# O( i+ ~" G- _
  5.     ADD ESP,8 ) H9 g; F4 j1 X7 V
  6.     TEST EAX,EAX ' J0 d* x& g: {
  7.     JNE 6FD6BAD0
    $ d. U1 y# G, R$ v& U5 ^- V$ w
  8.     MOV BYTE PTR DS:[EBX+8],4 5 K, n% M( a0 L7 R
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5, y0 i- l  t% U# k2 R
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A  A! r2 N  Z% l# l3 W* _- C
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll7 y2 a: m2 Q% c8 D# b, M4 w+ e- u
1、跳转到6FD17B0F
/ P* C! E0 o4 j! x
  1. SUB ESP,1C
    - S$ m' U2 w' r" g
  2.     PUSH EBP ; }$ K; E; A" t: F8 ~
  3.     MOV EBP,DWORD PTR SS:[ESP+24]   b( Z, G" W, y0 J' p7 c  h) S* s, G
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4] ' ?7 |$ ]2 z% ?: k$ ^7 a
  5.     MOV ECX,DWORD PTR DS:[EAX+8] 6 F+ w( i  H- h/ z5 I
  6.     MOV EAX,DWORD PTR DS:[EAX+0C]
    % [1 y' c( {- `  M3 t3 v2 ?9 Q
  7.     PUSH EBX # C. Y, Q/ v( g2 J9 o
  8.     PUSH ESI ; X. v- r9 z8 N7 B' L
  9.     PUSH EDI 4 @/ a- j3 P5 v4 W; ~* S5 ?" @
  10.     PUSH 0B                                                         
    * ^: _( }4 |6 H) j! i
  11.     PUSH 4                                                  
    3 \6 A# [' _  s& }  E+ b4 ?
  12.     PUSH EAX                                                        
    6 p1 Q% V! n  y/ \4 c
  13.     CALL 6FC2A568            ! C  H! A9 A% g7 G7 o& C- c/ W
  14.     MOV ESI,DWORD PTR SS:[ESP+34]
    & e; s: D1 p- K: o9 h
  15.     PUSH ESI                                                               
    3 D! h3 g1 ?6 s3 R5 j. U
  16.     CALL 6FC2A4C0            
    7 `, I. [$ N( M/ E5 w
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]   N1 t9 k- ]& Y( H. T/ }$ C
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    & [2 @. A. W1 O: {) L/ Q' p8 L( x" y! j
  19.     PUSH 0A                                                          , a( Y7 Z$ V, B9 [
  20.     PUSH 4                                                         
    4 j. K# x  s, R4 `5 c) L7 c$ `& G/ M
  21.     PUSH EAX                                                               
    ' P8 o7 x7 ~- l( p% @
  22.     CALL 6FC2A568            
    ' W5 n( s, Z* n$ k  S: _
  23.     MOV EAX,DWORD PTR SS:[EBP+70]
    3 Z- K6 f- M! t6 X
  24.     PUSH ESI                                                        
    " s1 D6 p9 L3 B
  25.     CALL 6FC2A4C0                    
    ) |- O9 }& y. E4 f" B
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    - c1 d( }5 }: U) e8 g
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    0 ~1 J6 ^/ q. S& r2 `8 \' J8 p
  28.     PUSH 0                                                  
    * I2 |' J7 f2 l& z
  29.     PUSH 28                                                  
    ) j- H3 u3 S: @; {5 _
  30.     PUSH EAX                                
    ( }: l. m9 o2 u& S' {0 f
  31.     CALL 6FC2A568                    
    $ J. ^& ^7 y. z6 M# T: _
  32.     PUSH ESI                                # w) P6 W6 X4 v/ R, _
  33.     CALL 6FC2A478            + S. x% {9 r% o; t5 X' ~' j9 D
  34.     MOV EDI,EAX
    6 T- q& C$ w5 ?( n
  35.     PUSH EDI                        0 x3 ]) r+ f4 f$ Z" u5 I- R/ q7 x6 r
  36.     CALL 6FC2A556   
    " k  p/ j- |: f9 E/ y
  37.     CMP EAX,6D
    : W7 B. U& E6 l& u
  38.     JNE 6FD17C79 % e. i: Q9 l& j' R* l
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    4 o" h! @9 a% g9 J$ F- d: x1 `
  40.     CMP CL,2 ( _7 T+ h4 Y& ]1 B2 A
  41.     JNE 6FD17C79
    ' P( P: i) K/ c/ t2 U8 B9 q* ]
  42.     LEA EDX,[ESP+24]
    $ I: s5 ~3 x9 D5 ?; }7 C6 Z
  43.     PUSH EDX                                       
    9 [- p3 j/ _" G& V; n: Z# B, ~
  44.     PUSH ESI                                
    : @* q( z* u( ~2 j' ^% h
  45.     MOV DWORD PTR SS:[ESP+38],0 7 s* K  l: u0 e1 z, g9 M2 k, A
  46.     CALL 6FC2A544    ' E/ n  ]1 {8 i& C7 \9 x1 v( g+ A
  47.     PUSH 64                  
    - {1 a6 s+ \1 _% R5 p0 F; {, n
  48.     LEA EAX,[ESP+34]
    ; g" n% p, V  ]& c
  49.     PUSH EAX                        
    / l( d4 t; J" F+ E0 K
  50.     PUSH 400                        
    + H. [% \' t4 m  R
  51.     PUSH 3                  
    7 m; O6 M7 u9 _  [$ m& M
  52.     LEA ECX,[ESP+34] ! \& }9 W! C2 j0 s& t! p% d) w
  53.     PUSH ECX                                6 Z3 Z  O) F2 B* m4 H
  54.     PUSH EDI                        
    ! n( y! o1 B+ W
  55.     CALL 6FC54130            
      s- @) Z  Q# Z2 @6 n
  56.     MOV EDI,DWORD PTR SS:[ESP+30]
    " @; J+ z* i+ {4 e
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    # O6 s" w  u7 f
  58.     MOV EAX,DWORD PTR SS:[ESP+24] 3 a9 `! ^' U# B( v/ [3 b. K5 s
  59.     MOV DWORD PTR SS:[ESP+14],EDX
      X' I+ r9 g% F2 F+ T
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    & c7 ^# d* Z% C! J$ {
  61.     PUSH EDI                        5 K3 ?0 l9 p; r$ N
  62.     CALL 6FC2A808    8 b4 Y5 I6 _. O& v& |
  63.     PUSH 27                  4 |; u7 N$ R& U- Q( q# W, l6 {- o
  64.     CALL 6FC2A56E    1 R$ R$ L" R7 S8 o% t+ }' @% v
  65.     PUSH EDI                        + W0 {) n& v; ]0 ]' u
  66.     MOV BL,AL        
    / K/ u1 N% _& W) H/ l+ y
  67.     CALL 6FC2A556
      Q( V) Q6 N+ d. p( e7 j' e
  68.     PUSH EAX                        3 W# ]8 H7 E$ Z' o& F; K  X3 j
  69.     MOV DWORD PTR SS:[ESP+1C],EAX ; ]- P% K  t2 v' o% ~* s9 @
  70.     CALL 6FC2A56E 1 {/ l; a9 A" R( L* ~( @4 a+ m0 J
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
    3 v9 m5 z# S" d; P! v
  72.     MOV EDX,DWORD PTR SS:[ESP+14] / v& W$ K. o* I  N% l
  73.     PUSH 0          5 T+ [) q7 {7 {1 L% {# N
  74.     PUSH 0C01
    + P* S7 _% C7 `% C  p
  75.     PUSH 3E01 ' f  u8 l! T& I8 y
  76.     PUSH 3 1 Q$ m5 k) y0 S5 b7 Q; Y1 L
  77.     LEA EAX,[ESP+2C]               
    . V- j+ s: P* N! M0 n" Q
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    ) a  B" ~2 D- G, t
  79.     PUSH EAX               
    4 k5 U* v, a. c3 s+ H# D
  80.     MOV ECX,EAX      
    " n# A, O$ }0 t0 N
  81.     PUSH ECX                8 n2 \  N* `7 a4 e
  82.     PUSH EDI                        # I* C; f) G. f4 K7 b! B
  83.     MOV DWORD PTR SS:[ESP+3C],EDX 4 G6 l) ~  w1 E$ f
  84.     CALL 6FC2AE98    3 Y3 y0 |5 x6 E# p" |2 j  D: v
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    ( I2 D) J+ E4 \0 P; `
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    ) J0 L% ~# _7 T( P& n; u* a+ _
  87.     MOV EAX,DWORD PTR SS:[ESP+30] % A; ~- g) a4 R* k* ?3 t( Z7 i
  88.     MOV DWORD PTR SS:[ESP+10],EBX 8 |2 g8 C2 h4 W  K7 Q
  89.     MOV DWORD PTR SS:[ESP+14],EDI
    : ^0 K0 Y3 F! k- a
  90.     CALL 6FC21280
    1 n9 T+ j$ V! i+ U3 s1 e1 R
  91.     MOV EDI,EAX 7 O  U3 r: P8 F& N' k, g6 u
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
    : I9 T% Q/ B' M+ c3 u! P' }0 a
  93.     PUSH 0         
    $ u) J9 Z1 |' k- ^* D( \8 t
  94.     PUSH 1          & c7 A  e! {! f* i$ M% L3 Z
  95.     PUSH 1
    1 r  V  D$ i( D( V5 s" v
  96.     PUSH EDI        
    " T4 U. q- M6 l& J8 P! F# y, ~
  97.     PUSH EBP        
    ( s: U% R& Y  X7 c1 Y( P
  98.     PUSH EDX        
    & A3 e" p# G( n8 {. b. }' v( o  B  R
  99.     MOV EAX,EBX      
    ) b3 [( X+ `' E/ b" {, Y( X
  100.     PUSH EAX        
    3 V( ^4 d8 F! o, o" @) h
  101.     MOV EDX,3C      
    4 v$ M6 G4 {" i3 U
  102.     MOV ECX,2        % z1 o! x8 Q* ]8 C2 X+ ]( D0 m
  103.     CALL 6FD01D90   
    + D+ `' R2 y$ s1 }+ U; t
  104.     MOV ESI,EAX . i8 U( c4 h- j% g5 J+ J. m2 J
  105.     PUSH 1 & c. ]" `5 ~- l0 ]& g# y
  106.     PUSH ESI 7 J5 ]# B6 N+ `3 Q, x
  107.     CALL 6FC2A4A2
    # t- l  Z1 E# U5 J* |& k- K
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
    3 n& y5 U* k5 D% V4 d" K
  109.     PUSH ECX                        7 ], Q2 _) p) a
  110.     PUSH 88                          
    / i; F2 N! r5 [/ r' G
  111.     PUSH ESI                        
    ! s( B3 d. ?6 f; \5 p
  112.     PUSH EBP        ; A) l) y: U, F, u' _8 C
  113.     CALL 6FCC22E0    0 S" c. I3 w$ L& \5 V
  114.     POP EDI ( j( L( ?6 ^0 C4 c9 w
  115.     POP ESI , W7 I& n' P& v0 A# K
  116.     POP EBX 4 x: o2 j# {) z0 ]: p+ l" x, L" o6 B
  117.     MOV EAX,1 & l0 S6 ^+ N+ ^5 ~$ m8 F8 M+ C
  118.     POP EBP
    : L% p! H- _4 S5 z) F8 T
  119.     ADD ESP,1C / z+ ^5 u1 o/ k9 G8 N# m5 U
  120.     RETN 8
    $ p8 \. q8 B2 s- `% l, e
  121.     PUSH ESI 3 c( ?+ ^. ?. u0 y, U2 f
  122.     MOV WORD PTR DS:[ESI+6E],14
    " k: l  ]8 H6 G8 ~1 m% \1 Y4 [8 ^
  123.     MOV DWORD PTR DS:[ESI+70],ESI
    " O# m* B  H6 V  A
  124.     CALL 6FC2A4DE 1 t" s" }' y& M  \
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4] ' x( j+ q# v8 E) D, t
  126.     OR EAX,00000400 ) I9 O) A; Y% ^- S* q. k: M
  127.     POP EDI
    7 u7 i1 ~3 n# h$ Y1 z7 X, y
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX
    0 w! W* r- i7 w( e& j  {' `% O  \
  129.     POP ESI ) R) X9 W3 V) P8 Q7 {
  130.     POP EBX ! H# v; o# k2 q
  131.     XOR EAX,EAX 8 c- ~  ]$ y) |3 t" {
  132.     POP EBP " V& B- @, C3 i% |1 B
  133.     ADD ESP,1C
    1 B; }& Q; ~! J- j1 `! k
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。
; N9 i/ y$ E) C) b地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。/ S- E# L. x2 v; m
$ r# A. s/ Z5 u1 a
修改的限制代码为:
! m2 Q" t. ]0 U+ f$ ?  R0 p6 j6 Y$ C
  1. 地址= 6FD17B75      ! G/ H7 x  ~2 n; h# `- J8 t
  2.     CMP EAX,6D         6D为第五幕城内
    " g7 }" x% H" T# }2 [
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E * `: g* ]/ a& W9 y
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    , @2 K; Z$ Y1 W- @* e2 \( j' {: g
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱
    6 h( p1 n+ h" F6 ?. E
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。
0 R2 H5 v8 }: f" y7 e" G% l
  `- L, l$ A9 U' v7 B, R  i修改箱子合成部分
3 K) _- _* ^6 O/ |3 _1、d2game.dll,跳转至6FC924170 x* g8 }& K/ Y2 f
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8' K, S1 o: ~4 ]' A
  1. CMP AL,4
    * S! e. x  [( J
  2.     JE SHORT 6FD17AE4 3 N$ X  M. O% x
  3.     MOVZX ECX,AL
    - Z* \" v8 T) s: c8 w( Q
  4.     JMP 6FC9241E
复制代码

1 k. I  c+ z& B* j! }9 M3、跳转至6FD17AE4
+ n) x* q& G7 a$ W2 x
  1. MOV EDX,DWORD PTR SS:[ESP+12C]
    # f3 Q' [. f7 G9 B- W9 q& \: ~
  2.     MOV ECX,DWORD PTR SS:[ESP+128] + ^6 I5 l% H" u  J# P0 n5 w
  3.     CALL 6FD17A2B
    3 n+ K! h' y: r, ?, V
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B; I/ c" x. p  p1 k; ?
  1. PUSH EDX ( C2 u, T( l6 x+ b2 B
  2.     PUSH ECX
    . d6 f  N! X: A4 k& \
  3.     CALL 6FD17B0F    ) H4 t; @* c& Y' L: L/ _  M3 \
  4.     RETN
复制代码

0 x& Z+ C% R) |
8 R3 y  S' |: C# D3 i) U, n- dDLL部分修改完毕。
! T' v# T0 `  `3 ~+ X在cubemain.txt 添加改红门开启的设定0 D4 A  B. b9 x, e, m% j
条件设定自行定义,在output处填入Portal即可# q$ I& g8 k6 [5 Y7 C
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇! x) _# I$ r; d7 {
经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error; x; A) ~& j+ h' w
% Z/ K5 a. B' j/ o3 ^
然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-1 04:49 , Processed in 0.095413 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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