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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4055|回复: 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
& y; Q. Q) _8 [. Z) _( |3 y该教程仅限于暗黑1.13C' C6 i5 }/ y5 w$ C9 K7 [( I

/ ?: o0 |# g% V1 g7 F& ]* k. X, _使用hex 16进制修改工具打开D2Common.dll
5 t* }/ s; U6 D1 h$ }8 g) ictrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C
3 Y+ x) M! j" m( A2 s6 ?" F
2 ^* P* I$ I8 [+ H" d% I% N& G使用OD软件打开D2Common.dll,
& L, Y# D% V% S4 ^1、ctrl+G,跳转到6FDD87EB,输入以下代码
7 u/ e2 k/ ^8 N( c1 `" |$ g
  1. PUSH  6FDE4F60
    + n) C9 i+ c! w; g: `$ t5 r. y1 F
  2.     PUSH EBP
    ; T5 k" p3 Q& ?$ M8 M) Y. n' Q
  3.     MOV DWORD PTR SS:[ESP+20],ESI
    ' ~- z; C, w5 l# V1 F0 C7 V
  4.     CALL 6FD51EC0   O' W0 z3 e2 s# i% j4 r0 p' W
  5.     ADD ESP,8 6 |+ j* }: \  N; V3 s2 w* L
  6.     TEST EAX,EAX
    % K0 W" Y3 d/ \, T7 B) V0 P
  7.     JNE 6FD6BAD0 9 X) J2 n" ^* h) D, L
  8.     MOV BYTE PTR DS:[EBX+8],4
    : R1 e  ?+ S1 [$ N  C
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5
/ U5 p8 R! m- q& h* D8 Y9 V) W: Y* d) s
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A; [# ]9 p# I5 B- O
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll5 ]2 J, H7 b; ?. J+ C& d
1、跳转到6FD17B0F
" L! h+ U" q7 B- K
  1. SUB ESP,1C
    0 s$ p' `+ V. V$ g: w5 k- B
  2.     PUSH EBP
      i# a- x/ n( x* g( C3 d
  3.     MOV EBP,DWORD PTR SS:[ESP+24] % j* y2 V; M# ?% N; K
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4] ! r5 a# t! w' i; S$ K  r  t% M
  5.     MOV ECX,DWORD PTR DS:[EAX+8] 8 Z! C" b$ g( H. X% H5 Z, h; v
  6.     MOV EAX,DWORD PTR DS:[EAX+0C]
    8 k' \' x4 k: q6 d# r
  7.     PUSH EBX * {2 Y0 ~3 G# P% E! ~
  8.     PUSH ESI 0 d; \& X9 o) {& C" s
  9.     PUSH EDI ' j4 |  K! B6 [
  10.     PUSH 0B                                                          , S8 d, \7 j# i
  11.     PUSH 4                                                  
    & W$ b; m8 |- l6 k
  12.     PUSH EAX                                                        
    6 _4 t4 }$ B$ x; O
  13.     CALL 6FC2A568            
    ! F' K8 u. X0 Q, W0 V4 T6 F
  14.     MOV ESI,DWORD PTR SS:[ESP+34] 1 r: t4 T5 m3 _
  15.     PUSH ESI                                                                * ]; L; ^% I! g4 V5 I( O
  16.     CALL 6FC2A4C0            ) F* R- j! \: R/ |6 Z0 X4 G
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    8 E4 _$ k& k1 r, h! F# O
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] 9 [$ Y+ Y* y  [" W; ^3 Z+ S
  19.     PUSH 0A                                                         
    7 ~) Q' c" u2 v* H) D( \
  20.     PUSH 4                                                         
    8 ^5 t0 L# Z& D0 b+ f+ i! _. A* \
  21.     PUSH EAX                                                               
    ( @5 h3 c. Q6 p$ J7 h' s5 i6 V
  22.     CALL 6FC2A568            
    4 o) U3 }+ ^* [( g4 _% {0 a
  23.     MOV EAX,DWORD PTR SS:[EBP+70] - \. }; h8 w" b% H: d6 W
  24.     PUSH ESI                                                        , G1 r+ a5 G. j+ Z: H* ?" A
  25.     CALL 6FC2A4C0                    & s4 w6 s, s4 S
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    ) H5 x$ v! u: ^1 F
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    6 u, D# A) c* S& W  p/ s# @
  28.     PUSH 0                                                  
    9 k' D! D, w. r( g+ e# I" Y
  29.     PUSH 28                                                  / L. k; g; ?3 n
  30.     PUSH EAX                                
    ( V) a* F( T2 C# B( F: n
  31.     CALL 6FC2A568                    
    0 T6 s& B& l! p1 w3 p
  32.     PUSH ESI                                
    5 e+ s7 m, [6 {7 D, s* N
  33.     CALL 6FC2A478            
    ; L! V5 l- @1 E/ j* p
  34.     MOV EDI,EAX - s! P! y3 Z+ g0 y# Q( [7 ?* s
  35.     PUSH EDI                        ' S& k2 g  P' K- c6 a
  36.     CALL 6FC2A556    $ z( g: W7 z& M. D  A
  37.     CMP EAX,6D
    9 k5 O/ q0 U8 s  z. f( y8 X: J8 u
  38.     JNE 6FD17C79 8 V% C5 w: w! P: V
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    0 C/ f+ d; \* }
  40.     CMP CL,2 ) A* Z5 [. J& M" y5 k* W
  41.     JNE 6FD17C79 6 k5 D) B3 Y3 n
  42.     LEA EDX,[ESP+24]
    , K, w4 p4 M9 n% O5 p" y6 n' s6 q
  43.     PUSH EDX                                       
    ( {$ T5 Y& t  `+ m# m
  44.     PUSH ESI                                $ z7 q3 [& c% _) U
  45.     MOV DWORD PTR SS:[ESP+38],0 + ~* E8 A+ k4 r
  46.     CALL 6FC2A544    0 w$ M" m. T& l- ?" q. Y
  47.     PUSH 64                  1 ]! _' J# y# y: E! R
  48.     LEA EAX,[ESP+34] 1 G* V3 o% r. \. ^6 g7 p5 y$ L3 s: l
  49.     PUSH EAX                        + v/ w6 e/ T  _' b
  50.     PUSH 400                        
      G$ L5 W2 T& t' t( Z. m1 L
  51.     PUSH 3                  ! M$ b- A: {2 E2 H% `
  52.     LEA ECX,[ESP+34]
    / L4 `+ `- ?5 P: \4 a+ w
  53.     PUSH ECX                                + y% U6 ~' e6 v3 J( |
  54.     PUSH EDI                        
    % z4 d* B4 R3 z" W# [6 u9 E% ~
  55.     CALL 6FC54130            4 V& H7 N( d) {, n/ \) A
  56.     MOV EDI,DWORD PTR SS:[ESP+30]
    & x% @: s# _8 Z- n
  57.     MOV EDX,DWORD PTR SS:[ESP+28] ' D' m5 X5 w/ A( o' {: O( @7 T
  58.     MOV EAX,DWORD PTR SS:[ESP+24] : G. m) j' v- o: i+ P7 q& q+ q. o
  59.     MOV DWORD PTR SS:[ESP+14],EDX 5 _3 l- s' x& z: H- P% y8 z4 |4 G
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    + R7 x2 m: v9 n1 ~
  61.     PUSH EDI                        : H$ _( x0 g" ]/ R  ]
  62.     CALL 6FC2A808   
    ! I% p: f  L# `: G% S
  63.     PUSH 27                  
    4 r3 J9 v4 A) |0 B  O
  64.     CALL 6FC2A56E    $ G  M- q) d0 q' W
  65.     PUSH EDI                        6 ~& O6 V; [8 c6 D( c& e( v4 T
  66.     MOV BL,AL        
    ; y  V% M4 S/ _" W% [2 n1 u$ m
  67.     CALL 6FC2A556
    , A9 \5 ?0 ]) W
  68.     PUSH EAX                        
    3 h8 q- d1 L9 h4 o' |
  69.     MOV DWORD PTR SS:[ESP+1C],EAX 2 g: @% Z$ l5 {% Q
  70.     CALL 6FC2A56E
    ( n6 _% d8 f0 C
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
    : I/ q! r# J2 O4 T/ G: y
  72.     MOV EDX,DWORD PTR SS:[ESP+14] ( E" f- a0 r, ?0 s* q
  73.     PUSH 0          + c( K& h, J$ o7 G2 ]5 u# P
  74.     PUSH 0C01
    3 Q- u0 U2 d. N. U/ }! F9 H
  75.     PUSH 3E01
    7 V5 v" m+ L2 v5 X
  76.     PUSH 3 1 N9 {" p1 E1 ?6 U
  77.     LEA EAX,[ESP+2C]                - E3 s; A8 A" k. r
  78.     MOV DWORD PTR SS:[ESP+2C],ECX
    % M, i8 r. X: n
  79.     PUSH EAX                - b) s8 q9 a% l2 q# U8 n: N
  80.     MOV ECX,EAX      
    8 S  w9 `7 @: r3 V) @+ @) w7 P
  81.     PUSH ECX                % T0 Q: M1 ?3 x% ]( V  m8 J
  82.     PUSH EDI                        
    5 X1 V8 c" e. Q9 s) g/ D* Y
  83.     MOV DWORD PTR SS:[ESP+3C],EDX   |, ~# ?( v& m0 v! |) d
  84.     CALL 6FC2AE98   
    4 S+ p/ j$ b7 Z/ p; j5 b' j
  85.     MOV EBX,DWORD PTR SS:[ESP+1C] ' J6 {* l3 q$ ^$ N& {! U: h/ ]8 i
  86.     MOV EDI,DWORD PTR SS:[ESP+20]
    . B# S8 I! V) ?# |
  87.     MOV EAX,DWORD PTR SS:[ESP+30] & R6 X6 U( C6 O: G+ N4 T$ `$ |
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    . m3 |( z5 R2 F9 E  ]' V
  89.     MOV DWORD PTR SS:[ESP+14],EDI ) v+ ?' J2 U! P  U4 a/ ?/ k
  90.     CALL 6FC21280
    4 a$ w" Q: t: v5 Q; Z
  91.     MOV EDI,EAX ) c2 u; c7 f, R
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
    $ I- h. f, Q9 l% L$ ?  u
  93.     PUSH 0          ) N7 i1 Z, S  w& q9 \7 v
  94.     PUSH 1         
    ; o# d1 T3 r# H1 x, {
  95.     PUSH 1 7 t( H. ~6 j7 `
  96.     PUSH EDI        ' O+ G2 u8 v) t% f
  97.     PUSH EBP        , r+ U; k2 y3 J3 S" Q+ n
  98.     PUSH EDX        
    1 @! l$ C. R- i1 r" @( L! v- q
  99.     MOV EAX,EBX      3 R9 m$ }) ?% k$ B6 L0 L: B% U& i
  100.     PUSH EAX        9 l1 N* Y# {3 i7 k( z
  101.     MOV EDX,3C      
    , D4 T4 {9 I4 c& _! L5 R% k; g
  102.     MOV ECX,2        9 o9 J4 q5 G7 _1 a  {+ l
  103.     CALL 6FD01D90    8 D, y; u2 |2 y0 f7 k7 ?
  104.     MOV ESI,EAX
    5 U' ~$ D! E. {" {% E9 |  j
  105.     PUSH 1 ! {8 A: W5 R- T/ `0 B
  106.     PUSH ESI ! s  |( k3 I( c( n
  107.     CALL 6FC2A4A2
    & u5 k/ q" z0 A( q/ t
  108.     MOV ECX,DWORD PTR SS:[ESP+18] 1 R3 U- `; ]8 @" k2 R
  109.     PUSH ECX                        
    ; }& k. X' G9 J) K
  110.     PUSH 88                          " P1 i/ z) g2 N& T8 u
  111.     PUSH ESI                        : }) i/ t. F# r8 G1 f* j7 x- X/ J
  112.     PUSH EBP        ! o% G/ |8 e: i; E+ L" F
  113.     CALL 6FCC22E0    " d+ i, R4 C& f+ f
  114.     POP EDI
    % u8 _: P# ]$ `( c* U; @- g
  115.     POP ESI 2 `' n6 L0 G& D/ s9 u
  116.     POP EBX
    % v8 {2 @6 C/ D; r( A6 T4 a5 s+ x
  117.     MOV EAX,1
    3 K. ^7 ]% v) B: h
  118.     POP EBP " {& b- F8 t9 U- _4 e: a8 B) I" B
  119.     ADD ESP,1C " {5 C5 f" a. ?+ c' T! j
  120.     RETN 8 " T* j& q1 R( A# V7 Z# Q
  121.     PUSH ESI : y  u* i0 U. L
  122.     MOV WORD PTR DS:[ESI+6E],14 0 c6 v" c! G9 |# f3 Q
  123.     MOV DWORD PTR DS:[ESI+70],ESI ) w2 W2 c3 y6 q- h. u- `8 U
  124.     CALL 6FC2A4DE
    / A  X. d$ \% w6 [& f* z
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4] , M/ C/ H; u) [4 V; q6 I
  126.     OR EAX,00000400
    5 G; |' S. }! ?. z
  127.     POP EDI
    1 W9 ~0 C1 I- S2 h' Q
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX - \5 W' [* V# y1 O
  129.     POP ESI 8 @2 f0 q  o7 K; u+ s7 I& D
  130.     POP EBX
    8 m+ Q1 ~$ D# [
  131.     XOR EAX,EAX
    6 \1 u" i# S  A  U. V- z( M8 T
  132.     POP EBP 5 M- g- ]" x( h/ g# o- w7 r
  133.     ADD ESP,1C 3 I* U5 y  m9 k$ E
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。. U9 h% x+ i9 X/ E5 K
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。
# ]. z- q2 s' w/ f
3 M5 Y! L6 q, @9 I; B修改的限制代码为:
  L* |4 E% W. j& A2 }
  1. 地址= 6FD17B75      
    2 q9 e& D) H! h
  2.     CMP EAX,6D         6D为第五幕城内! s5 ^9 v$ a  v  j& l# z9 f
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E 3 G$ o. j/ u' r3 S
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    0 p" Q2 x) Z4 F. P3 ]' {) ^$ O
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱
    7 g- ]: j) R5 z2 b0 I# J
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。; S6 z9 W1 I$ O
+ Y% X3 {7 O" p+ m! `0 k
修改箱子合成部分
! h8 |( Z: O% T4 J1、d2game.dll,跳转至6FC92417
$ G1 ~) \( ~; ?; q$ e( T
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8( e* E5 |% H6 a
  1. CMP AL,4 ( q7 \% N: J) w: L! f  y
  2.     JE SHORT 6FD17AE4
    ( O# a4 H" M4 `, l: a, B+ J# E, y, [
  3.     MOVZX ECX,AL ! [$ X1 D# z# i3 m8 y
  4.     JMP 6FC9241E
复制代码
' n; V5 C# r/ W/ M. N# I
3、跳转至6FD17AE4
  ^8 k" K1 A7 E4 i; g
  1. MOV EDX,DWORD PTR SS:[ESP+12C] 2 `# a( ?& H8 Q
  2.     MOV ECX,DWORD PTR SS:[ESP+128] ; C4 z7 w# E: R6 n9 T6 ?* c8 Z# h
  3.     CALL 6FD17A2B * x: c. E' V7 Z5 Z$ ~
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B; z- Z( e- N! ?' o4 |7 D$ a* B1 D  x
  1. PUSH EDX 4 V; S1 z5 n! F0 u1 f
  2.     PUSH ECX 0 E9 [% k/ H) ]
  3.     CALL 6FD17B0F   
    ' X& o: H# Q; @* ]5 a7 W
  4.     RETN
复制代码
; y- N5 k- S! z- s
- W) I/ q, s. [6 z  f" s0 y" @
DLL部分修改完毕。
# G& k1 [: A+ C( h, C+ d4 {在cubemain.txt 添加改红门开启的设定& J- w8 o- _! R
条件设定自行定义,在output处填入Portal即可
& ?/ o9 R3 _4 k! r+ ~  r6 T6 A
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇, S1 \. m) z3 g5 z  \/ v" Y( M$ F) ]3 e
经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error1 b5 f/ X! h. r- W, s2 [& o  F0 L
& `! i, D. w" ^5 \8 z
然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-10 23:20 , Processed in 0.064165 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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