冒险解谜游戏中文网 ChinaAVG
标题:
Shockwave Director dcr/dir/dxr/cst dumper
[打印本页]
作者:
shane007
时间:
2011-4-29 06:39
标题:
Shockwave Director dcr/dir/dxr/cst dumper
本帖最后由 shane007 于 2011-4-29 06:41 编辑
) }1 H* K- c/ L+ {2 E) f5 z; D5 _
g, h1 e6 E' O$ ]8 f$ X
勤快的老外又放出了这个好东西,配合quickbms使用。
- l, L" ? ?6 _3 U5 q2 z; K
好多小游戏都是用Shockwave Director做的,包括神秘视线。
* [2 `* e) T- G
如果能做出打包器的话,就又能解决好多游戏的汉化了。
# Shockwave Director dcr/dir/dxr/cst dumper
8 @2 C: J r: n6 G& Z
# script for QuickBMS http://aluigi.org/papers.htm#quickbms
+ Z5 c9 L3 A1 x8 A) K* Q
# r3 T. N8 Y/ Y, f% f7 `
quickbmsver 0.4.11
% l4 Z! p3 ~( k( V/ y/ ?
getdstring RIFX_SIGN 4
9 W# W$ E5 F4 e" s
if RIFX_SIGN == "RIFX"
4 u: v* M5 u2 \. R
endian big
. N) H' p2 s# m* C0 D
elif RIFX_SIGN == "XFIR"
' o' j- H) }. K( B, j
endian little
' g @* h+ c. Y
else
' Y. z" e: d- |0 X2 M
cleanexit
0 U. q2 T/ e! D. C: y
endif
9 L2 ~* \, |0 ]
get SIZE long
( Q6 t# U) g2 E/ c ~4 C9 I% d
get SIGN long
7 V# y& @4 J }! Z8 k* C0 C. p" e
if SIGN == 0x4647444d
5 `2 k* g& u6 F( c7 s( v
get NAME fullname
$ F4 V1 ^; v* F _- R! v$ t7 i$ N; w
get FOLDER current_folder
! Y9 q$ y+ F- n" Y
print "\nyou must use offzip with this file:\nhttp://aluigi.org/mytoolz.htm#offzip\n\n offzip -a \"%NAME%\" \"%FOLDER%\" 0"
3 B' u, b& `: E1 i$ R! B
cleanexit
/ t1 a# s/ j" r
endif
& O" W# t3 W3 X# u
1 |5 k1 e, }3 m$ \2 i' f2 |
set FIRST = 1
# a/ r0 _; S( j: e, C
for i = 0
) ? o! I, C0 F# `# f- u6 g
savepos CURR_OFFSET
- K8 ^% Z, z: s4 f+ s
getdstring SIGN 4
8 w# \; w+ y( a- c/ z L5 H
if RIFX_SIGN != "RIFX"
9 I2 [8 e: {# U+ x+ w
string SIGN r= SIGN
+ D* M8 \* N+ \4 S4 I# `
endif
- o& I B- M* h X, U% T
" V3 u' W( f) |
math SKIP_SIZE = 0x10
: U! q1 Y. Q& e
if SIGN == ""
: v& G' W9 v, ]! d& i' E3 ~+ u& x
cleanexit
$ e$ J4 _- e# x$ {7 S( j
elif SIGN == "RIFX"
5 U% t3 R8 |5 }" ~- {; b. j* f
elif SIGN == "imap"
. V3 A" q; O7 v0 ^
if FIRST != 0
8 A2 ?5 l) T* _* W
get DUMMY long
7 p( w/ `( }" Y- `/ _! N6 t1 `0 o
get DUMMY long
) {6 q6 N1 x! {% M3 o2 r% a
get OFFSET long
! j$ g9 U1 [0 l2 s. ~" Q6 G+ P
if OFFSET > CURR_OFFSET
5 F2 M0 |- c% S' j2 v4 P
goto OFFSET
/ K2 d! @# d( i
math SKIP_SIZE = 0
. u8 ~* [5 v# r r
endif
$ E! l. o( Y: i! U9 }
endif
$ w4 d. U+ L. ^, S" u5 _
elif SIGN == "mmap"
9 e& r$ R) d9 e6 w
if FIRST != 0
# r0 f+ T* |4 x* w9 `
math SKIP_SIZE = 0x1c
, d6 g) `4 z; [7 f
set FIRST = 0
1 S! p) o' G' k! \) _; H: a
endif
4 ~/ a5 q+ l2 P$ W7 r
# filters start here
! I! |- a; ~2 M& h7 n, J
elif SIGN == "VERS"
1 \' `! Z% j# V% i5 _' S
elif SIGN == "CASt"
" I0 b! q2 ]4 s/ r/ q. K
elif SIGN == "CAS*"
+ r4 N. |( |6 f/ w4 s# I8 D
elif SIGN == "Lctx"
8 N7 E# z v7 P* I% E9 H. O3 `% C
elif SIGN == "LctX"
# `2 F7 |) k. e! E( M
elif SIGN == "Lnam"
8 I1 v* f# C7 @' c/ I. f/ X
elif SIGN == "Lscr"
: F% a" Y6 P/ H. T' Q5 r# F0 b7 t
elif SIGN == "Cinf"
6 R# Q0 E' P: T5 @0 f
elif SIGN == "GRID"
; B* Q! h% S) X I
elif SIGN == "FCOL"
7 i( a( d+ W( |& h. M" C4 T
elif SIGN == "MCsL"
! ?8 y& N2 h. ]1 k
elif SIGN == "DRCF"
2 @2 N2 G: V; U4 w5 }- p
#elif SIGN == "BITD" # 16bit images
6 G) v$ J- a" ?3 {% b5 v1 [1 J
#elif SIGN == "ALFA" # alpha channel
* q6 V& x) l7 o$ |& U
#elif SIGN == "sndS" # 16bit audio
& v5 @7 I6 p5 ]- t) U7 M
elif SIGN == "sndH"
+ N5 J+ b Y6 C. r
elif SIGN == "Sord"
) E- y, U; x; `
elif SIGN == "free"
' _+ D- Q1 ^. l6 n/ C5 a; L
elif SIGN == "junk"
) z, L/ }/ Z) b( a' {
elif SIGN == "Thum"
# [0 I l; B; H3 B2 y1 d6 E
elif SIGN == "KEY*"
; p3 A! g9 D6 d
elif SIGN == "FXmp"
" J: J* t% F6 c) U3 F
elif SIGN == "Fmap"
" ^6 o C l. T9 S3 h# g
elif SIGN == "PUBL"
/ Q& X" g# k$ N, m. N" R; [3 d
elif SIGN == "SCRF"
, q; L4 @ _! P! y t y7 R) ~; D
elif SIGN == "VWFI"
9 l' e! [. j7 D8 ` f( S) l- p
elif SIGN == "VWSC"
0 e: [0 T: Q0 ~. O' d
elif SIGN == "VWLB"
1 U1 u5 N. U; @! {
elif SIGN == "VWTL"
# a8 C* Y) _3 z- S) m
elif SIGN == "XTRl"
, i3 c' Y7 U" z: W
elif SIGN == "ccl "
3 ~6 l* d. @. M3 g# |. x) d' |
elif SIGN == "SCVW"
O( m/ c- t$ V' i
elif SIGN == "Lval"
& |* G7 e( n v4 X
elif SIGN == "cupt"
, l9 `; x' R0 c1 |) Y% ~
elif SIGN == "CLUT"
& o' e4 G# z1 I$ t5 n/ O
# filters end here
0 b) w; F$ i; P$ f" C
else
- t1 t6 \ V8 R
# skip the above ones and dump the others
4 Y1 m, S/ W6 {, [
math SKIP_SIZE = -1
' e2 t5 `) P( B/ x9 r
endif
% A3 Q4 P1 @* M' c2 ^, h3 e
, H# {7 z+ Z, u q
if SKIP_SIZE < 0
" j* i& |, K& p
get SIZE long
7 o( M" T+ l$ q
get OFFSET long
1 v! E( u# {, T
if SIZE > 8
: u4 @( N' z y2 S( s v$ A4 F- Z8 h! [5 P: ]
math OFFSET += 8
* `7 L: s% P% S" m
math SIZE -= 8
# D2 u6 \1 ~; ^6 N6 }% [6 ]2 ?0 i2 p
set NAME string ""
. _, T3 y/ U+ `3 o
if SIGN == "XMED"
* ~( P! e! u! e U; V( g
elif SIGN == "ediM"
$ q u5 M' F9 H
else
8 p4 k, x9 Z6 D+ D: g7 w* o$ r
set NAME string SIGN
+ ~2 L) k/ V5 o7 z4 v
string NAME += /
7 i( j/ ^9 M5 @3 B/ K3 w
string NAME += i
) U- P9 H) S9 }4 s5 i
string NAME += ".dat"
- S3 C1 o2 e: j- O4 ]
endif
/ w+ \8 {) E% A8 K
log NAME OFFSET SIZE
+ [3 V" ^& p7 o1 _+ w
endif
4 ]# v2 ^/ o* z# ?7 b
get DUMMY long
& Y0 q) A) V% q( u4 j' u
get DUMMY long
2 v' q; d2 b1 U. x7 k6 N6 p1 u, [: _; L
else
3 u! T" i# r4 `/ G$ ~$ E
getdstring DUMMY SKIP_SIZE
6 i2 o5 m+ j" s, {( c% B" s
endif
. }6 o- l, s& O) K, Z
next i
) s; e4 X6 [) \1 K
复制代码
[attach]21042[/attach]
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2