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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

img_loading
智能检测中
暗黑mod发布网
帖子
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 5017|回复: 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
3 u3 M- `: O9 t! A" N该教程仅限于暗黑1.13C
6 c5 R7 q! `; m3 |  U8 ]* Q% D; q' N$ e
使用hex 16进制修改工具打开D2Common.dll
5 h. }$ {( P- H2 C" l( gctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C
$ v* h; R+ T4 v9 U- ~9 T, s+ V# R' C5 r- ]! |0 D' c! N; y7 E
使用OD软件打开D2Common.dll,
, M2 l+ F  L- z6 m/ a! X5 l! K! k1、ctrl+G,跳转到6FDD87EB,输入以下代码
3 c: e; w9 L2 n' |% ^
  1. PUSH  6FDE4F60
    3 O, C6 l  T# B. h6 W
  2.     PUSH EBP 9 x$ c% J. g: O  N
  3.     MOV DWORD PTR SS:[ESP+20],ESI 7 Y! V  ?8 T; G
  4.     CALL 6FD51EC0
    4 j  u: w) ~9 H5 _1 I. A' \. F
  5.     ADD ESP,8 " C" T& H6 f) u$ v, T
  6.     TEST EAX,EAX
    $ V; l5 E2 w' `% J) H
  7.     JNE 6FD6BAD0
    ! q" E' u7 H, M  }& {
  8.     MOV BYTE PTR DS:[EBX+8],4
    9 V& j3 r6 ^3 ^" W9 T
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC54 S. s! U: ~- b" Z3 o1 q
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A% i4 C3 Z4 V6 p, v1 S7 h
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll8 a* q+ L* {6 H: ]
1、跳转到6FD17B0F8 W1 o# j6 b% S5 b
  1. SUB ESP,1C ' C1 V9 g+ d0 y  u) T
  2.     PUSH EBP
    5 k1 O6 a% o  }* J8 R) m! R
  3.     MOV EBP,DWORD PTR SS:[ESP+24] 6 B5 U5 ^0 _3 _' s. p- z
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
    . L, N8 W8 j  T8 `; A
  5.     MOV ECX,DWORD PTR DS:[EAX+8]
    : P8 H) a& Y/ U  Q1 |* Y+ ^7 R0 Q
  6.     MOV EAX,DWORD PTR DS:[EAX+0C] , K: N9 T+ N8 f3 z3 t/ l$ N6 N2 k
  7.     PUSH EBX + n' u* j% U* f( R
  8.     PUSH ESI # s; p6 G% G1 }2 r3 E. {+ r
  9.     PUSH EDI ! C% g5 g. G4 u$ H$ o5 k: K; c; c
  10.     PUSH 0B                                                         
    6 ]) u+ |7 s7 j& m( C% l1 @% [$ g
  11.     PUSH 4                                                  
    6 r, R8 {" W0 _
  12.     PUSH EAX                                                        0 r% o. r: n/ T5 O) J3 _, O) T
  13.     CALL 6FC2A568            ) x" M& }- B# E0 [7 g4 Y
  14.     MOV ESI,DWORD PTR SS:[ESP+34] 7 e; M( w1 n2 n7 F. {  i
  15.     PUSH ESI                                                                2 F( a, v% A  u/ s8 d
  16.     CALL 6FC2A4C0            1 V: A3 o  A) z" N/ `. w4 B# t0 ~1 {
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    / {, Z7 W( d4 d- [% R; i
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    - q  R  g7 r, ^
  19.     PUSH 0A                                                          ) R7 q$ z; H6 `, L3 K
  20.     PUSH 4                                                          2 L5 Y5 K0 A# h
  21.     PUSH EAX                                                                & ^1 d* s, z; O( X% M+ C+ B' d. f5 P
  22.     CALL 6FC2A568            " n8 Q$ r1 y+ i* {. J7 c
  23.     MOV EAX,DWORD PTR SS:[EBP+70]
    . S1 ]/ N8 k! |& S( E6 Q8 [
  24.     PUSH ESI                                                        1 ]. f8 e$ O* O- ^, c$ H
  25.     CALL 6FC2A4C0                    3 y9 g" N/ X6 {/ e
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D] * M# h0 `& T* \* Z3 t' V; t
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] 6 l1 z$ F, e0 N3 |
  28.     PUSH 0                                                  
    5 z* [1 M) J9 ]5 [4 P3 _  Y$ w
  29.     PUSH 28                                                  4 C& c3 Q* f# O& u+ \6 |
  30.     PUSH EAX                                
    3 h3 x9 ?2 P. ]/ ?
  31.     CALL 6FC2A568                    1 U9 r" x9 w- V) i( {6 J
  32.     PUSH ESI                                4 ~; w8 _9 U6 P2 P
  33.     CALL 6FC2A478            
    ( _" [" C. \* A( N
  34.     MOV EDI,EAX - _, S& l- K4 }9 T% T
  35.     PUSH EDI                        
    5 j" i$ L, `- j9 Z6 l4 F
  36.     CALL 6FC2A556    0 \/ f1 v' b% h6 F: |6 R: l
  37.     CMP EAX,6D
    ! N/ _+ ?  i; v  j6 z3 G5 n7 T7 A" X
  38.     JNE 6FD17C79
    * d6 @+ g& Z7 q# i) H
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    + @( v% W& J! p  }  R& W
  40.     CMP CL,2
    9 E8 q0 l& J" |; m8 Q+ K7 [: H  R% F
  41.     JNE 6FD17C79
    4 s4 v* {2 U* `  ^/ h" u
  42.     LEA EDX,[ESP+24]
    4 m; V0 z- o+ L
  43.     PUSH EDX                                        7 M! I# t% O$ J5 ]* e1 W* I
  44.     PUSH ESI                                
    0 K7 ?4 L3 j- s1 T- V! z2 p+ x
  45.     MOV DWORD PTR SS:[ESP+38],0 1 S/ d1 \( T% E$ u5 o
  46.     CALL 6FC2A544   
    5 Z6 v. H" N2 C. r
  47.     PUSH 64                    d+ C) L* ]0 [. a% Y
  48.     LEA EAX,[ESP+34] + d1 V4 k* ~( y: [
  49.     PUSH EAX                        # U% @8 N$ q* X2 P5 L& E0 o
  50.     PUSH 400                        $ a6 C% Y8 j$ O' g
  51.     PUSH 3                  
    8 B$ ]( [1 T- [& q: I; v, X" X
  52.     LEA ECX,[ESP+34] 1 ]: L8 I0 K" F- I, H
  53.     PUSH ECX                                . q4 Z' n8 x$ R% q* E% N, M7 y' ]
  54.     PUSH EDI                        
    & {" \2 F4 j7 i3 Q4 b* f- C
  55.     CALL 6FC54130            6 u* g8 P0 s9 J: Z
  56.     MOV EDI,DWORD PTR SS:[ESP+30]
    " z- n5 K3 e8 u
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    1 o5 A- D) R, t- Y. v; K
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    * j4 R6 @  t; }/ K5 F
  59.     MOV DWORD PTR SS:[ESP+14],EDX   H! i/ {6 v5 r+ h* \4 W
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    7 b0 I$ G9 m2 I3 e7 V; N% l
  61.     PUSH EDI                        ; q4 E8 o  a0 C/ A
  62.     CALL 6FC2A808   
    - L) b3 q( b" F' V7 v9 _1 A- n; @, N
  63.     PUSH 27                  
    / S* w- \8 U' K4 z
  64.     CALL 6FC2A56E   
    4 P/ @' b, r& r, M9 l
  65.     PUSH EDI                        / `! `" e! m8 r. b% `% q  [
  66.     MOV BL,AL        
    7 a2 e* e- ^8 f* `& R/ Q1 t
  67.     CALL 6FC2A556
    ( z, n$ q" t5 N( d- p( Z& Q
  68.     PUSH EAX                        5 D! y2 d3 r6 P" e5 |( m
  69.     MOV DWORD PTR SS:[ESP+1C],EAX ) L: z& F. Z9 s- `
  70.     CALL 6FC2A56E " C. [6 Y$ g+ R; |
  71.     MOV ECX,DWORD PTR SS:[ESP+10]
    9 i* W( V+ m9 F6 I& f/ t
  72.     MOV EDX,DWORD PTR SS:[ESP+14]   N& {) {/ D$ w& j( F
  73.     PUSH 0         
    ' B( C7 R  Y7 x) t+ A1 M) x2 }
  74.     PUSH 0C01 % C7 B, }' B; w7 P3 q9 x- ]
  75.     PUSH 3E01 7 E* r' j9 H; N! H
  76.     PUSH 3
      U( v" E8 m  a" P, {. T
  77.     LEA EAX,[ESP+2C]               
    6 u) @' P- }- e. i+ P! N- M. k+ {
  78.     MOV DWORD PTR SS:[ESP+2C],ECX % I8 l1 x! M7 f7 |
  79.     PUSH EAX                . Z: |5 ^! W0 N* B0 h! @( |
  80.     MOV ECX,EAX      
    ) t* D" |+ a7 y' \& ^
  81.     PUSH ECX               
    1 C2 z1 }, @: u  u  z1 F
  82.     PUSH EDI                        
    8 S' N% z6 ], x! }: R3 R6 a
  83.     MOV DWORD PTR SS:[ESP+3C],EDX
      J. \/ ~/ b/ h$ ?# A; v8 n! X" M* k
  84.     CALL 6FC2AE98   
    7 f9 L5 |% o5 r
  85.     MOV EBX,DWORD PTR SS:[ESP+1C] % ^; k2 x: F  l
  86.     MOV EDI,DWORD PTR SS:[ESP+20] * D4 k9 L% U+ |* J6 e6 w% N; E
  87.     MOV EAX,DWORD PTR SS:[ESP+30] 6 H/ }* {/ u3 J% F4 Q- U3 W9 H0 Y" b; m
  88.     MOV DWORD PTR SS:[ESP+10],EBX , M4 b$ W4 |5 q
  89.     MOV DWORD PTR SS:[ESP+14],EDI 7 K+ M8 P( M$ t0 a1 ^( B
  90.     CALL 6FC21280
    8 u6 o5 G, i1 @9 Y. O, H1 ~0 Q
  91.     MOV EDI,EAX
    % N5 z: L+ A7 x! Q* O" z
  92.     MOV EDX,DWORD PTR SS:[ESP+14]
    8 [; ]4 Y" m% t$ @4 ?% h
  93.     PUSH 0         
    & [1 {1 D+ J. v) ^, V
  94.     PUSH 1         
    0 z3 _" u4 @) g4 w$ N* G
  95.     PUSH 1 8 J8 q) Z4 k  f6 t) p0 Y
  96.     PUSH EDI        ) {+ }  v: r/ ~9 ~* I- I8 }
  97.     PUSH EBP        ) M2 ~* o: i3 C6 H+ T
  98.     PUSH EDX        6 i! o# S8 X: l
  99.     MOV EAX,EBX      
    . k* E" q% G: t0 \' ^! Q3 X2 ?
  100.     PUSH EAX        % V0 C8 h, K4 {  i1 n
  101.     MOV EDX,3C      9 z( @6 G9 B# I1 a9 P
  102.     MOV ECX,2        6 g- M1 _3 J/ [9 p5 F& |3 ~
  103.     CALL 6FD01D90   
    ) j, y  U0 @# w" u0 D$ u& Z
  104.     MOV ESI,EAX
    0 J' l. z2 N2 z' L
  105.     PUSH 1 7 X0 M5 Y2 B% Z% v
  106.     PUSH ESI " P: A! J6 u- N: l
  107.     CALL 6FC2A4A2
    & E$ _" T" y7 K; k
  108.     MOV ECX,DWORD PTR SS:[ESP+18] - O% B1 L& ]! O: j5 z
  109.     PUSH ECX                        9 [& {) h" [7 W
  110.     PUSH 88                          # w! T5 q0 C  a" }; k' `
  111.     PUSH ESI                        
    . C' R* S9 c& r5 ~! r3 x! Q: ^
  112.     PUSH EBP        / |" n* x5 n; Q9 C% Z
  113.     CALL 6FCC22E0    / [: L& @  G& r# ?
  114.     POP EDI
    " r5 h4 N5 Y: P& n, ~" |' P
  115.     POP ESI 9 b7 W8 b; q' `* s0 ]  @- e
  116.     POP EBX
    / R: i  _! B& ?# \# y1 N9 E( U3 R
  117.     MOV EAX,1
    8 w7 u. Z$ i; N3 i
  118.     POP EBP / \- _1 _. ^0 p/ @% ?* j* z
  119.     ADD ESP,1C ! a7 u6 t5 c6 g5 |* ~
  120.     RETN 8 ! m7 Z7 o9 i" D: L; s& Z
  121.     PUSH ESI
    . E! g4 _# ]; V- ]' K3 c
  122.     MOV WORD PTR DS:[ESI+6E],14 ) v9 A: b- N2 R& N% l
  123.     MOV DWORD PTR DS:[ESI+70],ESI - c" T3 Z3 n5 {
  124.     CALL 6FC2A4DE
    % \  c/ s! O5 ^( s: e7 A
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4]
    ! Z# h7 F- ~0 w- ^
  126.     OR EAX,00000400
    * Q  G7 w$ {" i. ~
  127.     POP EDI
    / u: s" G' ?$ m9 G
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX - S/ E# P6 o$ E1 Y
  129.     POP ESI , M- z5 E- \% O) Z8 q3 F. |
  130.     POP EBX 4 Z0 K6 Z9 W& u+ x! r2 E
  131.     XOR EAX,EAX : }- q: c( R  n  U5 ?
  132.     POP EBP . {; Y2 S/ z) c1 p
  133.     ADD ESP,1C ! Z" F9 ]: J  O4 L
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。
! d% p( o5 n  e/ Q  f地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。" w) ^9 m* a4 T9 G$ I8 q- a

# ?" d6 ?5 c/ e8 S. f6 `, I修改的限制代码为:; ~) w( {$ Q! k1 _
  1. 地址= 6FD17B75      9 q; A: S1 e* c. N4 ?( z
  2.     CMP EAX,6D         6D为第五幕城内
    / k4 D8 A) F+ P0 B
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    4 k4 m4 ~2 @* ~* j+ b0 S, m
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内0 @* o6 a9 }8 S, n* O* I) k
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱
    ; N( C0 S: g* W9 t3 O
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。
1 W; N$ f9 e/ r8 |: z
4 S* p' E$ N% Z4 U2 v, j, z修改箱子合成部分5 h. D1 \5 Y7 s2 D  T0 u$ `
1、d2game.dll,跳转至6FC92417
$ I! o6 ^/ T9 \0 v7 r
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB8
, |; @* U, ?7 V; d2 r
  1. CMP AL,4
    ! [4 [( I& H& K, i
  2.     JE SHORT 6FD17AE4
      o8 C; f1 \. F3 Y3 s% X3 m
  3.     MOVZX ECX,AL
    ! J/ d" i8 l/ A8 a& \' s
  4.     JMP 6FC9241E
复制代码

1 @+ R$ k6 i2 o/ I3 y3、跳转至6FD17AE4
/ ~, P7 v6 P2 j& k  m8 d7 N
  1. MOV EDX,DWORD PTR SS:[ESP+12C]
    1 e/ _8 ^; |* L* _6 G- ?# }3 F
  2.     MOV ECX,DWORD PTR SS:[ESP+128]
    ; L) y) C) }$ d: g9 |) p
  3.     CALL 6FD17A2B " z: W7 {% o/ d
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B$ ^7 `" i- g1 `$ ]; b; O
  1. PUSH EDX / ?6 F/ t7 b4 T5 Y
  2.     PUSH ECX $ M6 G  A, D$ q- J" E; x
  3.     CALL 6FD17B0F   
    ( f* ]6 F4 ^+ M! Z
  4.     RETN
复制代码

, q  O, @" |3 M4 J* [) R, _2 }( I" w+ T. {! L$ G
DLL部分修改完毕。
5 B2 k& T$ g1 h9 A2 R' Z8 ]" e在cubemain.txt 添加改红门开启的设定
; t3 ]+ U$ b  b6 Z2 x; ^1 }条件设定自行定义,在output处填入Portal即可0 A3 t7 I0 m+ x0 f2 E
神话战网出品,必出精品!
回复

举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇
7 y  J. B6 o  e5 Z( f8 S经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error0 F2 A4 w" R; F* k( ]6 o5 X# [

3 D# o2 g6 P) J* p# z然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

举报

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

本版积分规则

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

GMT+8, 2025-7-11 11:00 , Processed in 0.070194 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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