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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 4104|回复: 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
% r- |" N4 j* A! l3 m% j- U该教程仅限于暗黑1.13C
9 ?" p) {$ Y2 ]$ v3 W6 T5 M
; D3 [' y" ]# a2 o使用hex 16进制修改工具打开D2Common.dll$ C, G6 u1 Y8 Y
ctrl+G 跳转至94F60,在00 00区域写入Portal,或者直接修改16进制为:50 6F 72 74 61 6C9 ^3 s7 j, h3 b

7 m3 J+ x/ C- ?' S3 G" T使用OD软件打开D2Common.dll,
" i8 ]9 N8 @& p8 H) x1、ctrl+G,跳转到6FDD87EB,输入以下代码2 K; k4 z7 v1 j. Y
  1. PUSH  6FDE4F60
    & C% s4 u6 ]4 @( e+ j5 ^" u
  2.     PUSH EBP
    5 |2 A+ l& |$ e6 b: t
  3.     MOV DWORD PTR SS:[ESP+20],ESI
    7 Q  S6 n4 _; I" P( l
  4.     CALL 6FD51EC0
    + y2 M2 t, M* }2 U& P' H
  5.     ADD ESP,8 ) L4 {  C. C/ `$ f' m! U5 ^
  6.     TEST EAX,EAX
    / z% @8 }# P$ c
  7.     JNE 6FD6BAD0 ( {8 }" x6 M( ^4 n9 a
  8.     MOV BYTE PTR DS:[EBX+8],4 . s2 D% X$ ]6 n: i3 g2 i* O% T
  9.     JMP 6FD6BB96
复制代码
2、跳转到6FD6BAC5
0 G7 K: c  s/ _& B
  1. JNE SHORT 6FD6BA5A
复制代码
3、跳转到6FD6BA5A
: w$ }& q6 I8 }- e3 }( w( A4 a* a
  1. JMP 6FDD87EB
复制代码
使用OD软件打开D2Game.dll
; Z9 W  G0 c* J/ a/ h1、跳转到6FD17B0F
' \7 c7 ?+ }( V9 B/ B
  1. SUB ESP,1C   u4 \) c" u2 m2 y# g4 `
  2.     PUSH EBP
    ( ?1 H# \& s. r) z/ u7 {6 Y8 f
  3.     MOV EBP,DWORD PTR SS:[ESP+24]
    / ?# \+ Q3 I3 b5 D$ h' o
  4.     MOV EAX,DWORD PTR SS:[EBP+10F4]
    0 q5 X5 D6 }/ W3 d, U
  5.     MOV ECX,DWORD PTR DS:[EAX+8] # I5 @* ^! _+ k. T
  6.     MOV EAX,DWORD PTR DS:[EAX+0C]   |" t9 \8 H$ z
  7.     PUSH EBX 1 U4 m* |5 W. K! a
  8.     PUSH ESI
    2 A1 u% g8 j# C% a8 ?, q: d" \
  9.     PUSH EDI
    . G' Y+ K1 B' W; m+ v) m
  10.     PUSH 0B                                                         
    ; ^/ k6 I+ x1 l' I  m
  11.     PUSH 4                                                  $ t. B' s5 w6 K" ^
  12.     PUSH EAX                                                        + g7 `$ @4 g1 n6 \: e& M
  13.     CALL 6FC2A568            , p5 U; a7 G1 c' |4 O' g
  14.     MOV ESI,DWORD PTR SS:[ESP+34] : _1 O  ~9 ?) W" n% q2 k
  15.     PUSH ESI                                                                ) c& n$ B  t: d5 z3 X! W' Z/ ^
  16.     CALL 6FC2A4C0            
    9 W* F% b8 ^# y/ d6 }
  17.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    ' N* H8 W' |" j1 w' s$ d6 D
  18.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10]
    / T$ {2 s! p- Z0 b: w' Q5 U
  19.     PUSH 0A                                                         
    4 K* b) t9 @0 G1 E0 R
  20.     PUSH 4                                                         
      l3 D5 S- C2 o3 k
  21.     PUSH EAX                                                               
    & r- u8 T; S5 }2 o
  22.     CALL 6FC2A568            ( z/ n( o9 h7 I5 E/ Q7 n3 R% c
  23.     MOV EAX,DWORD PTR SS:[EBP+70] , r: D3 a; F, `% S
  24.     PUSH ESI                                                        
    7 Q8 k0 q+ U  d8 H8 M
  25.     CALL 6FC2A4C0                    2 I' z% c' L7 u  Y) w
  26.     MOVZX ECX,BYTE PTR SS:[EBP+6D]
    : X0 O* b' E" F! }
  27.     MOV EAX,DWORD PTR DS:[ECX*4+EAX+10] % ~, e; X$ P# [( \7 Y" L
  28.     PUSH 0                                                  
    ; X) c" ?1 G* f( j, g9 V- m& t, ^4 V
  29.     PUSH 28                                                  
    % ]  O: N1 D2 J5 I
  30.     PUSH EAX                                1 O* i. G. K. N
  31.     CALL 6FC2A568                    $ O  v/ T% x! k- }' j9 I
  32.     PUSH ESI                                ! K7 d* N! d8 L
  33.     CALL 6FC2A478            * M$ h: M  d1 R2 y+ `& ~
  34.     MOV EDI,EAX ' ~  ~$ x( y; @; C4 d- M+ u$ ^
  35.     PUSH EDI                        # R/ M5 s9 v2 x# A! V' p
  36.     CALL 6FC2A556    ' q1 Q0 y. B3 L2 }
  37.     CMP EAX,6D
    8 P5 Z0 V, D% ~7 b: E
  38.     JNE 6FD17C79 & C$ Y0 ^* f! L$ ]8 c
  39.     MOV CL,BYTE PTR SS:[EBP+6D]
    5 ^! _3 ?' e/ G3 T
  40.     CMP CL,2 , y8 H9 J/ L0 E) ]
  41.     JNE 6FD17C79 : s: j3 _" d7 T
  42.     LEA EDX,[ESP+24]
    ( @  B+ k# l5 X* }$ d5 I
  43.     PUSH EDX                                        - \3 A9 h' ~: V. j
  44.     PUSH ESI                                3 l" u* ^0 j. g$ A5 J7 \
  45.     MOV DWORD PTR SS:[ESP+38],0
    * S; K( ^* q6 u
  46.     CALL 6FC2A544    : A; p1 g  J! X" G8 k+ P8 K
  47.     PUSH 64                  . y: D0 L7 |. B5 L  r& k
  48.     LEA EAX,[ESP+34]
    . u5 T0 o6 C' G/ r
  49.     PUSH EAX                        
    ; i7 Z5 s! h& s4 \1 O) ?
  50.     PUSH 400                        
    * R" x8 ~6 R( s* ^8 L2 @1 l  k
  51.     PUSH 3                  3 T  F5 ?; A& s5 p3 e! p9 [3 a" X4 x; `- Q
  52.     LEA ECX,[ESP+34]
    : k4 _) [8 S- j$ b4 L" S$ f
  53.     PUSH ECX                                
      g3 t) @+ ^$ W
  54.     PUSH EDI                        
    0 A, G+ n! K# u! A- Z5 Q1 C
  55.     CALL 6FC54130            
    4 X8 Z5 H3 O( n& [
  56.     MOV EDI,DWORD PTR SS:[ESP+30] ; F% v* x. [- t. x/ |
  57.     MOV EDX,DWORD PTR SS:[ESP+28]
    # Z5 a* ]8 l: |: k. h
  58.     MOV EAX,DWORD PTR SS:[ESP+24]
    7 o0 ?) r- c/ I( G. o0 m/ s/ D# m
  59.     MOV DWORD PTR SS:[ESP+14],EDX
    ; Y/ t0 M/ h# i! e, w
  60.     MOV DWORD PTR SS:[ESP+10],EAX
    % l( S; Y5 N, L  b6 q; D! j8 M9 @. e
  61.     PUSH EDI                        0 V8 G* N. D: r' n5 \' i) P# S
  62.     CALL 6FC2A808   
    * G9 W$ u' l$ w
  63.     PUSH 27                  / v. Q" j: q4 R4 I9 I8 E; t
  64.     CALL 6FC2A56E    2 U1 L/ e( f  ?# B8 h3 j, X* n8 N
  65.     PUSH EDI                        
    " k" l8 P9 v% ]1 H7 y, W9 G
  66.     MOV BL,AL        
    , x( g  j- I3 K* \' |- i! I1 P  u
  67.     CALL 6FC2A556 1 K4 b/ Z$ ?% D
  68.     PUSH EAX                        
    . k: Q9 B7 X. m6 H! R; L
  69.     MOV DWORD PTR SS:[ESP+1C],EAX - [( d! z5 X8 P6 c  ]
  70.     CALL 6FC2A56E
    4 e7 c5 `) g+ I( V: D) p
  71.     MOV ECX,DWORD PTR SS:[ESP+10] 4 l5 o' }( g* ^+ q& {. h
  72.     MOV EDX,DWORD PTR SS:[ESP+14]
    / X& C+ Z" E. Y: K) s0 x/ c
  73.     PUSH 0          0 I0 U. J4 k) Q0 q8 Q
  74.     PUSH 0C01
    2 j) J+ {9 x. K9 M
  75.     PUSH 3E01 7 u' x2 l4 V# V/ N1 k/ f* E: P
  76.     PUSH 3 / x  [; M& M' ^) t" |! D5 b
  77.     LEA EAX,[ESP+2C]               
    & j  i; P5 j& g! h# n
  78.     MOV DWORD PTR SS:[ESP+2C],ECX + [' L& W8 R- }( F' q: _
  79.     PUSH EAX               
    / o6 \, v: O* `. {8 e8 S- a; q. T
  80.     MOV ECX,EAX      : ~) r2 N& g; P
  81.     PUSH ECX                * B. F- m0 F5 O" C( ?. [
  82.     PUSH EDI                        7 n4 J: c# d$ d' V" B* Z
  83.     MOV DWORD PTR SS:[ESP+3C],EDX 0 K! K) _' s3 e8 F& D! d! y
  84.     CALL 6FC2AE98    % Q- d  G- o4 ~9 J: f8 V
  85.     MOV EBX,DWORD PTR SS:[ESP+1C]
    # T* m7 r8 e& T/ D
  86.     MOV EDI,DWORD PTR SS:[ESP+20] / v' u' E2 w: S3 Q
  87.     MOV EAX,DWORD PTR SS:[ESP+30] & k$ a( d3 `' H& w5 q: T
  88.     MOV DWORD PTR SS:[ESP+10],EBX
    ; l6 V4 ~. t8 a* q* m; N# z
  89.     MOV DWORD PTR SS:[ESP+14],EDI
    5 }: c4 G% K( s
  90.     CALL 6FC21280
    : C" ?+ `+ m7 y! H4 b$ R
  91.     MOV EDI,EAX + K4 _- ]2 k0 ?8 d. z
  92.     MOV EDX,DWORD PTR SS:[ESP+14] 1 b* N5 `$ E4 q* E& F6 R9 _$ \
  93.     PUSH 0          8 v5 m# J7 T! w* P; g
  94.     PUSH 1          $ P6 ^; `, y% v: L! s
  95.     PUSH 1 4 e( N8 O+ H3 u, E
  96.     PUSH EDI        4 C$ V0 I" l- ~, s) |5 y
  97.     PUSH EBP        8 ^; q: l6 Y! X+ }" ^6 l5 F6 m
  98.     PUSH EDX        
    / k; W0 u! h+ s0 G' k6 L
  99.     MOV EAX,EBX      
    2 f' o, m' h1 v  t
  100.     PUSH EAX        . Z6 {+ L5 o! h! W' n
  101.     MOV EDX,3C      
    9 v. |; ]3 @# b6 }' |+ }
  102.     MOV ECX,2        8 X7 q2 P1 X7 y6 l2 z5 q1 u1 z
  103.     CALL 6FD01D90   
    2 `; U: H: I4 V- p7 y( B
  104.     MOV ESI,EAX
    1 u- {& j) Q2 S2 t4 R% {, X
  105.     PUSH 1
    : X& ]% @% l* s
  106.     PUSH ESI   k) T- O! `/ n: I- _9 K
  107.     CALL 6FC2A4A2
    3 A3 k; a1 e2 d/ g0 N7 u7 ?
  108.     MOV ECX,DWORD PTR SS:[ESP+18]
    * s" l1 R8 {' D# l5 p, C
  109.     PUSH ECX                        
    . r# {0 g8 K3 K2 A
  110.     PUSH 88                          
    # M. D% R0 g" G9 r
  111.     PUSH ESI                        7 ^3 Q) n' w/ H  _$ `* A
  112.     PUSH EBP        / X3 j3 {0 K' n, d) z5 Y+ C
  113.     CALL 6FCC22E0    7 \# z6 O8 j; L
  114.     POP EDI   k. A& v+ P" m; i/ G9 ?
  115.     POP ESI % M8 }& U% U. g  e3 H
  116.     POP EBX , `! f7 R0 K2 |/ _: h/ `) m0 Q9 m
  117.     MOV EAX,1 2 d7 m8 Y2 i! k- [2 D! d' ^" }0 p
  118.     POP EBP # f. T) l; |5 x; z$ a) s: K9 k
  119.     ADD ESP,1C ; ^7 D$ D1 @  u" O6 y
  120.     RETN 8
    2 M( @2 h% W. S( I! |, ^
  121.     PUSH ESI   O& D/ T) M3 X& B* s
  122.     MOV WORD PTR DS:[ESI+6E],14
    $ {9 ?- S2 a" O+ r( x9 K0 z& |
  123.     MOV DWORD PTR DS:[ESI+70],ESI
    * ~, a. b" }( Z
  124.     CALL 6FC2A4DE
    & K7 Z9 {+ w8 H& {5 K+ g
  125.     MOV EAX,DWORD PTR DS:[ESI+0C4] 5 H; p  a) ~! v" ~
  126.     OR EAX,00000400
    & G  H* u/ i4 {1 ^  f2 x& n* c
  127.     POP EDI ' p  ^2 j$ B% k; u4 L6 T
  128.     MOV DWORD PTR DS:[ESI+0C4],EAX : Q" ~7 c6 h* M1 I9 _4 n9 F" l
  129.     POP ESI ; x; X( v3 p4 G4 B
  130.     POP EBX 7 y3 ]$ z" f$ x& ?/ n3 s# @/ k
  131.     XOR EAX,EAX
    0 W* o5 I% _* l# D) g
  132.     POP EBP 0 }" Y, X. [7 n4 {! L; v7 i/ }
  133.     ADD ESP,1C
    % D9 X6 F. ?: P; t" |' w7 Y
  134.     RETN 8
复制代码
上述代码为开启6boss红门,即为出火炬的地图,开启的限制也一样,需要在第五幕,难度地狱。- M. E- Z) ^- ^* {, V# l# t
地址6FD17C5E |。68 88000000 PUSH 88,  88转换10进制为136,这个136是levelid,对应地图就是出火炬的地图,想指定去其他地图的修改该处。
- h  S9 d! W7 m1 t4 d( L& t" f
* o2 ]6 u; f( A) S修改的限制代码为:: y* e( ?9 y* w- G, g7 V1 d3 T! ?
  1. 地址= 6FD17B75      
    6 |+ v# v; ?, ^, `' |. f
  2.     CMP EAX,6D         6D为第五幕城内
    4 U7 e: J1 e5 L4 I. x+ @) t' {
  3.     JNE 6FD17C79       //跳转至无法合成的提示信息
复制代码
  1.   地址= 6FD17B7E
    + q3 j: X( L  v. R5 f' b/ g% j
  2.     MOV CL,BYTE PTR SS:[EBP+6D]    ; 6D为第五幕城内
    , m# v2 T/ ?2 Y0 D5 J
  3.     CMP CL,2                                        ; 2为难度, 0=普通 1=噩梦  2=地狱$ Q0 j8 s, R, x9 y+ P+ S
  4.     JNE 6FD17C79     //跳转至无法合成的提示信息
复制代码
以上为红门设定部分,根据自己需求进行修改。  I! Q5 n$ b/ C) v: r
7 ~5 G4 }8 n8 Y5 E/ a
修改箱子合成部分5 `- R+ _2 e2 s# G# j/ p- w
1、d2game.dll,跳转至6FC92417
' k( ]: u- U1 }9 ]$ s* n
  1. JMP 6FD17AB8
复制代码
2、跳转至6FD17AB82 \7 |5 \* ?/ F2 G( E! k4 ~7 j
  1. CMP AL,4
    6 d+ \7 ^& r: U# k' m
  2.     JE SHORT 6FD17AE4
    9 k5 c! a! \6 |, r
  3.     MOVZX ECX,AL 4 G: _0 c  A+ ?% R( h2 q3 [
  4.     JMP 6FC9241E
复制代码

( E; V7 M: |6 T5 y+ ~9 k+ J3、跳转至6FD17AE4
3 L4 x" c. ]& K3 X
  1. MOV EDX,DWORD PTR SS:[ESP+12C] ! ~& W1 f5 V, v/ {( x+ F
  2.     MOV ECX,DWORD PTR SS:[ESP+128] . {  J0 A) T# o
  3.     CALL 6FD17A2B 3 }- G6 }. W, T, \( A
  4.     JMP 6FC92439
复制代码
4、跳转至6FD17A2B, @: M) w( n% E' {6 Q
  1. PUSH EDX
    . L* a" b2 ]0 r0 y; x/ B: _
  2.     PUSH ECX " A6 P1 \! [8 G  O7 E
  3.     CALL 6FD17B0F   
    2 V$ K- S6 k8 P: @. i  p
  4.     RETN
复制代码
, R8 l! [1 y& h' A4 I  N
* ^1 p8 G7 G& u" K2 Q9 L
DLL部分修改完毕。$ i, A* \8 Y6 e; W% u
在cubemain.txt 添加改红门开启的设定3 f' P: J& C% e/ @2 _/ X
条件设定自行定义,在output处填入Portal即可8 l8 y  _, n: V8 G
神话战网出品,必出精品!
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2020-11-17 09:24:30 | 显示全部楼层
MOV CL,BYTE PTR SS:[EBP+6D]中,EBP+6D不为城镇
; }/ p6 H( G7 A3 d% s经测试EBP = Game ,EBP + 6D为BYTE  difficultyLevel
回复

使用道具 举报

1

回帖

0

元宝

0

圣者绑元

新手上路

Rank: 1

积分
0
发表于 2021-11-14 17:19:58 | 显示全部楼层
费了很大的劲,才修改完毕,结果进游戏就error
; U" A; k0 w4 A8 ~( T1 F& o- s: r3 }; j
然后这个修改是不是仅仅只是可以开6boss红门   我想制作官邸直达红门 比如5个官邸直达的道具  这个修改是不是做不到?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 18:46 , Processed in 0.064903 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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