本帖最后由 shane007 于 2011-4-29 06:41 编辑
7 \: A4 G7 ?- @, e& S# R6 j) F
% q- ^. O% I9 `7 `2 M# h勤快的老外又放出了这个好东西,配合quickbms使用。9 Y/ ?# u5 U% g4 n" t2 I
好多小游戏都是用Shockwave Director做的,包括神秘视线。
& K0 G% i) Z: y3 E! `如果能做出打包器的话,就又能解决好多游戏的汉化了。- # Shockwave Director dcr/dir/dxr/cst dumper- ~* Z: b0 d, Q1 m. M
- # script for QuickBMS http://aluigi.org/papers.htm#quickbms
+ q' e: o$ M* Q+ I! O3 K/ T0 k - ' Q1 C) M: Y2 z, D, q4 d6 I
- quickbmsver 0.4.11
% M2 K! M/ \- k - getdstring RIFX_SIGN 4
3 O' j" a" [% N* R9 H - if RIFX_SIGN == "RIFX"5 H' y% Q- y$ N" O
- endian big
4 c( N$ c' f4 M" b, y2 ^ d - elif RIFX_SIGN == "XFIR"/ e* Y& a9 t( H4 a+ i
- endian little% j. n9 O) g6 n
- else
$ L q- R m$ Y% X# }& Z2 p1 Y - cleanexit
" B" y( l: ^7 V( c4 r6 O3 D - endif
1 k. M, m* j' C8 h7 R( u. t3 t2 T9 I: E - get SIZE long
( r2 g4 J9 }" g1 v1 y% _ - get SIGN long% N+ F$ T- _8 [- x- o7 k& g
- if SIGN == 0x4647444d
/ m8 P9 R2 _" Z0 |: ~ - get NAME fullname
! o; W( k% j+ C: P& A6 Z8 Z8 V - get FOLDER current_folder
! v6 R# R" v) k' P T" u/ H - print "\nyou must use offzip with this file:\nhttp://aluigi.org/mytoolz.htm#offzip\n\n offzip -a \"%NAME%\" \"%FOLDER%\" 0"
% O/ x1 V4 c( X* T' F - cleanexit
# B& E" d6 r% Q& M$ L( w* b - endif
2 B; {) ?( B& X: c- b - * M j L" y8 s4 [
- set FIRST = 10 W& v; D: \% k; h p$ v3 }) J2 w
- for i = 07 a9 i1 N/ a6 Y
- savepos CURR_OFFSET
# O% g; |7 v, w% A) N' i - getdstring SIGN 48 b5 i! z1 D' g0 _
- if RIFX_SIGN != "RIFX"
7 \: d( c* w) i - string SIGN r= SIGN; t" g' b/ R1 a- [" V8 U7 z* h; A" s, E
- endif6 N- D! A! s" C
- 6 S8 H, s0 q6 j) e3 B* ?
- math SKIP_SIZE = 0x10; @: I# K2 V2 A$ }
- if SIGN == ""
0 G! |# H% u# `) ^0 _ - cleanexit
7 G* W9 ~. r6 g - elif SIGN == "RIFX"
], @$ I1 ]- j/ e - elif SIGN == "imap"
4 F5 q# p/ F+ @& a - if FIRST != 0+ g6 q( s! C0 d, p6 q" z; U$ w
- get DUMMY long. u2 Y5 M% Q g3 p. @! {( I
- get DUMMY long* _# h# q4 ?5 a, I d" m* ~( O
- get OFFSET long
1 [1 z2 f; {" L& \6 [! t - if OFFSET > CURR_OFFSET
8 C H7 N' N0 F/ ], d* a - goto OFFSET
7 n; g! r3 T' ]1 l6 w - math SKIP_SIZE = 0
! s% d5 e( \3 T! x" o+ n" z - endif
. G+ f+ D' ?" M0 U7 J. l/ b - endif
1 Z$ ~8 p# ^8 n+ W - elif SIGN == "mmap"2 C% J( z- l) t
- if FIRST != 0 G0 C k! M0 f, {
- math SKIP_SIZE = 0x1c3 H% }' i- V! P8 m) D f" i
- set FIRST = 0
e/ H3 X" b1 t; B4 z3 o7 D# K - endif
% C( A( i" \; V& N# u2 g - # filters start here$ l& k( H: k" Q' t+ P8 [
- elif SIGN == "VERS". v. u( s/ i& R$ r9 U
- elif SIGN == "CASt"& y S' n( ]( \6 j; t
- elif SIGN == "CAS*"; v1 t2 }3 Q9 p( D6 G+ E/ u8 d
- elif SIGN == "Lctx"! L& C: o. @4 N: M* Y1 s
- elif SIGN == "LctX"
5 u. I }# [9 T% k - elif SIGN == "Lnam"
( y5 J, ^9 }9 g1 n: v - elif SIGN == "Lscr"
6 V9 F3 h( ?7 h( r9 m" K. B - elif SIGN == "Cinf"
) |' e. W K/ M% {* i3 t - elif SIGN == "GRID"
0 Q/ K+ z" N" g3 C o7 o0 g - elif SIGN == "FCOL"5 P: i; C/ d. X' E6 _
- elif SIGN == "MCsL"
i* S3 ?, W- {1 |3 L; Q' \ - elif SIGN == "DRCF". ]* |( u7 \! j# _% s0 a
- #elif SIGN == "BITD" # 16bit images
8 o' Z& ]( F) A- H) H0 g. D$ H - #elif SIGN == "ALFA" # alpha channel
( o/ T5 V3 H, f6 z1 `9 y1 { - #elif SIGN == "sndS" # 16bit audio' _1 m9 z- H) O R- |# S8 b
- elif SIGN == "sndH"- [8 v2 h6 |% r- H
- elif SIGN == "Sord"; ]7 Z5 Z g+ Q9 d5 v. K4 v* D
- elif SIGN == "free"
( a% y t2 @, D, S7 X/ [5 r - elif SIGN == "junk"3 K/ n) V2 S3 Y& L) @( z; b
- elif SIGN == "Thum"4 q( Z( r- B1 w; N7 D0 J
- elif SIGN == "KEY*"
2 d, s# V% K* y - elif SIGN == "FXmp"
1 T! N5 ~ B, V' W; o( E! X - elif SIGN == "Fmap"1 }4 W9 x3 p6 V# U' a
- elif SIGN == "PUBL"+ |& {. P) z1 X4 \# W' w
- elif SIGN == "SCRF"9 {, D |8 P1 _: {/ v
- elif SIGN == "VWFI"
& b& k( |- q: J# N1 t) z - elif SIGN == "VWSC"
1 v7 B' a; K2 {5 D' s$ T" D& [ N - elif SIGN == "VWLB"
5 k2 v/ C& T% y - elif SIGN == "VWTL"
# v& N6 H( E, A: S - elif SIGN == "XTRl"5 V, ~! K4 [3 k- W% q
- elif SIGN == "ccl "
5 R0 s9 w; a A1 H4 ~3 I0 y6 @1 W - elif SIGN == "SCVW"
7 W' h7 ~! K# }, L4 \! H - elif SIGN == "Lval") K& ?+ @( A+ {: B9 B8 A
- elif SIGN == "cupt"
: a* t" l6 b0 E) O: T - elif SIGN == "CLUT"& Y1 B; Q$ ^/ ~ X0 P
- # filters end here5 ~& p6 e. q. b
- else& \6 V. u7 h4 e* J. ]8 O
- # skip the above ones and dump the others* X( E$ x+ f8 T! ^6 `+ ~
- math SKIP_SIZE = -1% Y" d# a) Z* \ C' n) X
- endif9 g/ `8 q+ v9 Q! s- D
- $ m! |& l, |% Y" O9 t1 ~7 \
- if SKIP_SIZE < 07 c" S) B9 ^( Y2 Z7 J% l
- get SIZE long
6 t! I) Z1 z3 B$ M! ]; G/ v2 I) Y - get OFFSET long
# @* ?. ^2 z% ] g) e% ~% l - if SIZE > 8
. u- Z9 Q1 u$ g# h' S - math OFFSET += 8/ X) a" b1 c2 x+ n/ w9 o
- math SIZE -= 8
# U+ F2 j5 l6 Y - set NAME string ""
# r0 x5 g3 k. j/ o9 M+ N: v+ e% R - if SIGN == "XMED"
b7 B" ?; p. z8 O- o - elif SIGN == "ediM") P% A- l; N# k' {; u$ e
- else
% X- [5 l$ h( r- I - set NAME string SIGN
( Y- I8 n2 N# M8 q6 i( I/ ` - string NAME += /- m3 Y( L; B- Q) X2 k$ U
- string NAME += i5 z" C0 j4 \1 a8 k L: O
- string NAME += ".dat"
" J4 i8 }$ y% c$ m \ - endif
( F, h) a, Q a, @ - log NAME OFFSET SIZE1 Y1 _% h9 F! J/ e" S
- endif8 U, g! O `% a j1 M7 _8 I; R
- get DUMMY long
% n0 f a: _# y- s& L9 G - get DUMMY long
: c7 f$ L! Z' S4 P - else
4 w: T! W& k# }; V" { O, ? - getdstring DUMMY SKIP_SIZE' b0 t- [% O* m2 i1 J
- endif
# n$ H7 z! X- O - next i
* g$ N) O0 q& f/ B6 E0 f) b
复制代码 |