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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

暗黑mod发布网
搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4618|回复: 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
( k) T2 v/ Q" B2 p' N1 n& b0 Y该教程仅限于暗黑1.13C
# ^" ?2 c; V) h, ?+ `' m2 {! b1 i) I0 g, w; I( g! |5 B/ i) J
使用hex 16进制修改工具打开D2Common.dll
2 ~* l, T, h$ mctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C
0 W7 g, e+ Z  t" B* t) q" b( U# P) m9 ^8 V  q% D% d, a
使用OD软件打开D2Common.dll,4 ?$ g' L5 I  v3 o; l+ I
1、ctrl+G,跳转到6FDD87EB,输入以下代码8 [) t6 d0 w0 h" L
  1. PUSH  6FDE4F60
      P5 T- E0 i3 h4 Z, w* H# w
  2.     PUSH EBP
    2 R: H, b( T  Q/ d3 g8 r
  3.     MOV DWORD PTR SS:[ESP+20],ESI 3 i) k2 m* q7 b% r
  4.     CALL 6FD51EC0
    + ~9 t1 l( b, y# V% g! Y! C6 J
  5.     ADD ESP,8 * f7 Y8 D+ \( N) y& G% l& R/ ~
  6.     TEST EAX,EAX ' I) t1 U" ^3 \, ]. p
  7.     JNE 6FD6BAD0
    # G% I# r0 Z) K) ~" {
  8.     MOV BYTE PTR DS:[EBX+8],4
    8 l9 q) |5 {" X8 ]" u
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5
0 \7 S9 e  w* D) U9 U
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A, A. I! U. i# l1 N" V0 ~/ s
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll" O! z, @' W2 }/ E1 y2 M; s
1、跳转到6FD17B0F
# a. g) [$ M# m6 d4 ], A# G1 F
  1. SUB ESP,1C ) \  m$ j- Y' ^' e
  2.     PUSH EBP 9 T( P4 e9 M3 }! ^
  3.     MOV EBP,DWORD PTR SS:[ESP+24]
    9 H% M- b$ h3 t' `
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4] 8 A( Q# ^8 F' x; V8 F
  5.     MOV ECX,DWORD PTR DS:[EAX+8] ' W4 y# O5 R) m+ ]
  6.     MOV EAX,DWORD PTR DS:[EAX+0C] & ]3 ~/ O, c% N' v1 q2 ^
  7.     PUSH EBX $ y! q$ L: a) q2 Y; q1 F
  8.     PUSH ESI
    5 K! w6 |/ ^8 |( e
  9.     PUSH EDI + n/ v6 M- C4 j* j( G% s/ i' f
  10.     PUSH 0B                                                         
    ( G3 j' U5 h; k+ n& C8 \
  11.     PUSH 4                                                  
    7 `) c0 s; Y" H; b2 O% H
  12.     PUSH EAX                                                        
    ; H/ X: v; B( C) l
  13.     CALL 6FC2A568            
    9 O6 x6 }: D5 Y. o& y8 H4 w
  14.     MOV ESI,DWORD PTR SS:[ESP+34] : V5 |- E) A, U; w# W: U  X- @
  15.     PUSH ESI                                                               
    0 j% j$ N" J) K/ k
  16.     CALL 6FC2A4C0            ; d2 s1 ?8 d7 C6 T0 D
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D] 0 r: @5 f% ?7 O$ Q
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    + W5 U, M# ?" r! R
  19.     PUSH 0A                                                         
    ( d" k# M6 y5 y
  20.     PUSH 4                                                         
    9 _2 G1 `. Q7 B/ L4 D( j9 r
  21.     PUSH EAX                                                               
    2 C) Y  X1 n! A% n8 C8 S& ]. Q2 p
  22.     CALL 6FC2A568            ) Z1 `" t- j! w# X1 Y
  23.     MOV EAX,DWORD PTR SS:[EBP+70] - c" b% V( i$ M4 W5 {0 S/ _3 X) n! w
  24.     PUSH ESI                                                        1 V: x1 K  M/ T; \0 o9 h
  25.     CALL 6FC2A4C0                    
    , ^7 O+ {$ G5 X6 L9 f& z1 c! |: F# L, ?
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
      K" A) G/ M( v% S. o$ ]& E% r
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    " s4 o( n& z" M3 _9 q7 f
  28.     PUSH 0                                                  
    8 H( z, A8 b0 y: X0 k" [! o
  29.     PUSH 28                                                  
    % x  }6 M% f" V; f( K3 F
  30.     PUSH EAX                                
    1 G. }- l1 ^6 G# I
  31.     CALL 6FC2A568                    
    : F/ a7 s6 _% O
  32.     PUSH ESI                                
    ' \4 H2 A" b( j" P* v' C+ L) n
  33.     CALL 6FC2A478            ! }. |$ ~$ i# L0 V$ m  u  F
  34.     MOV EDI,EAX
    $ R2 u+ J* \5 ]3 n7 K$ e
  35.     PUSH EDI                        
    3 V9 N0 p1 `) ~' t
  36.     CALL 6FC2A556   
    $ X* Z3 y. P7 u. ~& a2 w  L9 H3 u
  37.     CMP EAX,6D ! a) ]  M8 I9 ]6 J2 k: [
  38.     JNE 6FD17C79
    1 M$ v; v' ?0 k0 a) e, D
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    0 n' F  O0 `  H
  40.     CMP CL,2 2 a2 w8 K) L3 s1 \, S- }& c
  41.     JNE 6FD17C79 2 x7 E; h8 ~& U) s8 R
  42.     LEA EDX,[ESP+24]
    1 [8 V* D' v  R% e$ x
  43.     PUSH EDX                                        3 t/ z9 U; M: N( i$ z( i
  44.     PUSH ESI                                2 v" I! t* ?. U
  45.     MOV DWORD PTR SS:[ESP+38],0 2 y4 s2 x* E4 f
  46.     CALL 6FC2A544    % G  K$ M) s+ X4 D; p* j" a4 t
  47.     PUSH 64                  
    ( }( C; d+ v0 r3 G
  48.     LEA EAX,[ESP+34] " e. Z; r* u# a8 y3 q8 {+ H4 P
  49.     PUSH EAX                        # Q# t7 T7 x9 T* i1 M
  50.     PUSH 400                        3 l; |+ \! L& @1 _
  51.     PUSH 3                  
    % Z  s  r; _8 P/ T
  52.     LEA ECX,[ESP+34]
    : v+ w8 ?" \% S; g3 X
  53.     PUSH ECX                                
    . A2 v, m- w& Y1 u" b; H: V
  54.     PUSH EDI                        2 m& o. U, o4 ^) \: h+ i. o
  55.     CALL 6FC54130            
    / x! b- c9 s" E
  56.     MOV EDI,DWORD PTR SS:[ESP+30]
    5 F: o+ t  j& o# ~2 C+ H
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    % L# e* {7 ^; E4 c8 d
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    $ Z9 O4 j' j3 }* @* o) H
  59.     MOV DWORD PTR SS:[ESP+14],EDX " C  C+ Z2 T9 W: K# ?% B( e1 v0 p9 I! C
  60.     MOV DWORD PTR SS:[ESP+10],EAX 6 S6 p* Q$ }( \6 a
  61.     PUSH EDI                        2 p# H" [. s/ y
  62.     CALL 6FC2A808    8 W' U3 j7 L  m  U: `) ]3 S( N9 N
  63.     PUSH 27                  & B) L; J9 K  f3 K# M( I
  64.     CALL 6FC2A56E   
    ; g# ~1 K3 q3 S8 m; W) X2 T$ z( h
  65.     PUSH EDI                        6 H% k7 L4 L8 {2 A' `
  66.     MOV BL,AL        ' M+ }, `, F0 D% _( b% T7 k
  67.     CALL 6FC2A556
    ) \* w+ X0 o# y. m) p2 s
  68.     PUSH EAX                        
    $ i. t! o& V% N, h& _. `- I# T& N
  69.     MOV DWORD PTR SS:[ESP+1C],EAX
    * ?- H3 h0 K1 g0 r
  70.     CALL 6FC2A56E
    % ^7 M/ b% u7 S+ M. P, P6 g' k
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
    # A7 b# E  w8 T& L( D& \& u5 j
  72.     MOV EDX,DWORD PTR SS:[ESP+14]
    ; ^' E6 d+ o& K& H5 i" z8 Q( K
  73.     PUSH 0         
    * r" P; @. j! p7 b( v5 [
  74.     PUSH 0C01 : V# w: c/ J+ u! o/ T$ @
  75.     PUSH 3E01 0 {6 J9 x3 k) ~# m1 A0 g
  76.     PUSH 3
    4 T" J: N3 m  f& Y0 G  T8 C
  77.     LEA EAX,[ESP+2C]               
    * y+ k! h4 Z) T
  78.     MOV DWORD PTR SS:[ESP+2C],ECX , i: U8 t/ F0 ]' H& Z8 |
  79.     PUSH EAX               
    1 m, i5 f0 o8 i/ r8 v3 e1 i
  80.     MOV ECX,EAX      8 k/ r2 m% [* Q
  81.     PUSH ECX                , `5 [/ y- q# k5 P4 O
  82.     PUSH EDI                        5 f5 i) P& y$ y
  83.     MOV DWORD PTR SS:[ESP+3C],EDX
    1 A. W5 D& j2 K5 B5 @3 g
  84.     CALL 6FC2AE98   
    - }4 F9 |" G: f0 Y
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    / r' z) ?2 P2 h
  86.     MOV EDI,DWORD PTR SS:[ESP+20] % R& Z& \, h! Y9 F; F$ ]* _; R+ k9 a
  87.     MOV EAX,DWORD PTR SS:[ESP+30]
    + `' D* f- K! r$ \9 {0 ]3 [7 a
  88.     MOV DWORD PTR SS:[ESP+10],EBX ; _( k* t; ^$ b3 v4 W5 L: x+ S" h
  89.     MOV DWORD PTR SS:[ESP+14],EDI . q& H0 P; e3 [% j! U4 m7 H
  90.     CALL 6FC21280
    0 o, u! D& m8 E/ C; |* a! G
  91.     MOV EDI,EAX
    ( w$ S; |* G; [* k% ~
  92.     MOV EDX,DWORD PTR SS:[ESP+14] 8 L$ K3 D5 y+ h* ], o# R3 r
  93.     PUSH 0         
    4 B: _, X) [' }( k; C6 h3 ~
  94.     PUSH 1          ) |1 l' q$ y& ^* B( l! [& a4 U4 u
  95.     PUSH 1 % v0 I+ a( U7 M% r: S# q' n
  96.     PUSH EDI        
    . E$ {: Y* f" B7 e: ^8 T
  97.     PUSH EBP        8 J, ^* u4 [1 i3 G
  98.     PUSH EDX        
    4 a* j- Y7 `* Z! J3 {
  99.     MOV EAX,EBX      6 L7 r. E" l  y, s  g: ?
  100.     PUSH EAX        4 G2 c7 P! O7 R' w+ O
  101.     MOV EDX,3C      - Z; n: r# J+ _$ S' U
  102.     MOV ECX,2        
    8 A4 }; X9 v! o* I7 B1 S
  103.     CALL 6FD01D90   
    6 D$ h7 A* }- B# P% _( j
  104.     MOV ESI,EAX - z6 ~% F3 c$ E7 I+ O( v- H" J
  105.     PUSH 1 & k0 C) A# B. x; c
  106.     PUSH ESI
    9 O) @. }* d) Q3 I# N/ \! ]
  107.     CALL 6FC2A4A2 + x' p( g4 [+ b3 u3 X
  108.     MOV ECX,DWORD PTR SS:[ESP+18] ! H/ R7 p; h. q9 c) D0 J" g8 k; [! V
  109.     PUSH ECX                        
    ( a8 n. G$ p. c
  110.     PUSH 88                          , _7 n* S- W/ T) S
  111.     PUSH ESI                        
    7 @8 k, p2 C( @8 r2 r. ]
  112.     PUSH EBP        
    : H5 ~. M" d/ a9 Y4 s' ]! I
  113.     CALL 6FCC22E0    1 V0 I  k5 x* q( [6 p( }" P' I2 M, q
  114.     POP EDI
    7 P- k# V( I' j5 u* \
  115.     POP ESI 9 T( ^% y' @$ Y
  116.     POP EBX
    & E8 h. k+ r  q  P! N" c& c
  117.     MOV EAX,1
    : M. W# g7 D6 f4 a
  118.     POP EBP : V) g7 w( L0 y
  119.     ADD ESP,1C 2 R! H' `7 ^; U( n
  120.     RETN 8
    1 Q1 A2 ~5 ~9 v6 v1 z5 P
  121.     PUSH ESI 7 r5 |( R; E+ u! g0 j
  122.     MOV WORD PTR DS:[ESI+6E],14
    ! d9 k' R! I9 S5 B; M$ o, o
  123.     MOV DWORD PTR DS:[ESI+70],ESI 2 Z0 k/ N- }  g& x
  124.     CALL 6FC2A4DE : q5 Z# x! Z( Q. W5 v
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4] 7 x+ m1 e) b+ h' _# S2 v
  126.     OR EAX,00000400
    . ?$ c4 T/ J; b& _) U0 m( V5 d& W
  127.     POP EDI
    . K! _2 V9 u6 c+ S5 e
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX - o$ o7 |, P5 V5 e+ b4 q1 }. c# r
  129.     POP ESI
    - B1 z2 y5 t+ U. a+ m+ C* z: q! T
  130.     POP EBX 2 A2 a' J5 R5 l, D) B2 S% ?
  131.     XOR EAX,EAX
    ( l! N+ [! g# `( h4 g/ [# z' q
  132.     POP EBP
    * _( s! b6 w/ W# l6 ?
  133.     ADD ESP,1C 7 p- G8 p" x& G; u+ M9 E: c
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。9 _/ t4 K- }2 Y; Y
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。8 K( s, q. ]; W8 y' |% m9 ^
0 y* [, T( p& b+ `
修改的限制代码为:
2 a. D6 r' y0 H/ j8 Z. i3 t: y
  1. 地址= 6FD17B75      
    ; R( m/ w# k8 O1 b: O7 ~' M
  2.     CMP EAX,6D         6D为第五幕城内
    ) K! W: N( B$ r+ M: H; D0 ?* K( y& r
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E 9 n6 P" E" p( j6 ^
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    2 _- l. z- Q& T& t7 m
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱
    ' V$ V4 d  y# Q" S
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。
) d( `6 D) {7 A9 w7 q/ T& v. [  d# b3 Y' @" m& W$ j7 q
修改箱子合成部分
3 B5 d* V6 G2 [: W" \1、d2game.dll,跳转至6FC92417$ q4 H& [  e! R7 z0 C
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
. ]0 M+ _1 v9 K& W
  1. CMP AL,4 ; ^7 L2 i' u4 b. p1 I! X  D! J% n
  2.     JE SHORT 6FD17AE4 ' q  N9 R/ Q% u' j6 i  B4 c( _
  3.     MOVZX ECX,AL
    + {' a) |! ]' R' x9 m
  4.     JMP 6FC9241E
复制代码
+ B9 q4 E0 {7 i4 [5 p
3、跳转至6FD17AE4
( \- x. G) {& V1 k+ R8 ~
  1. MOV EDX,DWORD PTR SS:[ESP+12C] " @% D' C& h$ }
  2.     MOV ECX,DWORD PTR SS:[ESP+128] - f" F5 N) q! J; z; F0 i' ^; S: j
  3.     CALL 6FD17A2B % S: C- F9 k6 S% Y' F! Y. T& J" m, c
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B3 `/ G9 u% c+ [( i; L
  1. PUSH EDX 6 y5 w& a6 W8 b
  2.     PUSH ECX
    . L: V, A1 q5 [! O) y  o$ \2 U
  3.     CALL 6FD17B0F    7 Q0 ~+ C3 d+ K+ P5 V& G
  4.     RETN
复制代码

2 F* p! }% O$ @$ Q4 G5 q) X% g! N% @
$ g# T# J  W: O2 U7 a5 |9 oDLL部分修改完毕。
5 T% x" T# J. c# x' Z$ ^% G在cubemain.txt 添加改红门开启的设定
, B) L- k: R( p# m( V" Z; W条件设定自行定义,在output处填入Portal即可
* l, w. _3 K! Y/ \7 J  o- r$ u
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇
% o) o/ k+ n, z; x经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error
6 j# K1 |5 `6 A
# T0 k5 U# _% o& B, b# k然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-19 20:12 , Processed in 0.495824 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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