冒险解谜游戏中文网 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 编辑
: [( ]8 j- a5 W1 v; `9 n6 `' n5 V7 y6 ^, v
勤快的老外又放出了这个好东西,配合quickbms使用。8 L9 Y" I  _$ W' |0 W1 L9 K
好多小游戏都是用Shockwave Director做的,包括神秘视线。
: |; a* M7 u. R: k$ G如果能做出打包器的话,就又能解决好多游戏的汉化了。
  1. # Shockwave Director dcr/dir/dxr/cst dumper
    $ ]/ g- q# j; ~
  2. # script for QuickBMS http://aluigi.org/papers.htm#quickbms/ v# Q  s6 R  e

  3. % F" v8 B% @+ G; n( i5 \0 T) f9 r% F
  4. quickbmsver 0.4.11
    ) N  [/ i+ [$ o. s) _" A* A
  5. getdstring RIFX_SIGN 4+ g- t2 L4 Q! Y4 `5 M. \/ V
  6. if RIFX_SIGN == "RIFX"
    ! ]* K* ^$ a6 V* _2 ^
  7.     endian big
    " h' j/ B8 R& _' O
  8. elif RIFX_SIGN == "XFIR"
    / E% m- B0 i7 I: x1 V
  9.     endian little
    7 Z5 R* X& Q1 q5 I
  10. else8 m" Q7 P0 h6 P& w& T, _4 n
  11.     cleanexit
    $ d% N$ X9 q4 j. }
  12. endif! g1 G$ [% @$ B. Q! k" P
  13. get SIZE long
    4 X" R6 W7 y, H* j9 D. v' e. L
  14. get SIGN long4 z0 H. \9 D$ t9 r3 p  Y
  15. if SIGN == 0x4647444d- q4 Z0 m; x) h9 u
  16.     get NAME fullname
    * h) _  n. g6 z  m$ a
  17.     get FOLDER current_folder
    " Q: L, ^  k8 m' s: O, w# A
  18.     print "\nyou must use offzip with this file:\nhttp://aluigi.org/mytoolz.htm#offzip\n\n  offzip -a \"%NAME%\" \"%FOLDER%\" 0"# j1 t( o( o3 N+ N
  19.     cleanexit
    7 F6 R2 I- o3 C4 h- m
  20. endif. Y; S4 q$ j' h" L' }* ~+ c# ]6 c

  21. * {7 f1 x: V4 F0 f8 e3 d: s& L
  22. set FIRST = 1
    & f: @6 u& p) N2 a! K
  23. for i = 08 `7 a! g: ]3 H
  24.     savepos CURR_OFFSET; E- ?3 R, {1 K% e! ^
  25.     getdstring SIGN 4, v' O. i5 ?  c8 K- X3 o+ k
  26.     if RIFX_SIGN != "RIFX"% B, F' q0 }4 l" ?: A  I4 f4 M/ X2 j
  27.         string SIGN r= SIGN: g: }8 m$ D  F
  28.     endif( Z0 D  n+ H4 m
  29. - ~  L: b$ ^6 d0 j
  30.     math SKIP_SIZE = 0x10
    # P3 X$ [# T; |  ]
  31.     if SIGN == ""
    0 F, j$ j7 @) \$ @4 {) J( X& ?. b4 `3 E
  32.         cleanexit
      }) f$ U7 x5 Q
  33.     elif SIGN == "RIFX"1 f7 U( s: ]; y& k% n) F8 s6 a
  34.     elif SIGN == "imap"6 e. g5 R6 W3 {& r$ a3 E
  35.         if FIRST != 02 z; t9 u+ R% C% R9 k, N1 J8 L+ `+ o
  36.             get DUMMY long" N# G& A2 S+ u% O
  37.             get DUMMY long! l0 a- w' d3 H9 A3 V0 G
  38.             get OFFSET long
    ; |: o3 H4 G  u3 q( Q: G: K
  39.             if OFFSET > CURR_OFFSET
    3 K: W& D! m1 `: l: Z: N$ @4 }( Q2 b
  40.                 goto OFFSET
    # K' L. R) j5 N/ |: s
  41.                 math SKIP_SIZE = 0
    8 e$ |" L  ^( [' }! ?. O8 g0 g0 E* h1 q
  42.             endif* _- A/ z/ S7 c- c* g( D) N% p8 H" m
  43.         endif! D4 o3 I: c4 f4 w8 y
  44.     elif SIGN == "mmap". r# [& I1 m# r
  45.         if FIRST != 0
    4 b9 v1 D9 n! i( n; V: j
  46.             math SKIP_SIZE = 0x1c7 o7 t( A! X8 H+ h8 L0 y
  47.             set FIRST = 0- g* T% X( |$ Z& r, P/ \
  48.         endif! [0 T- o" u2 b
  49.     # filters start here4 R/ h% M" \8 r5 F
  50.     elif SIGN == "VERS"; T( z0 \7 X* _4 u- S
  51.     elif SIGN == "CASt"( E+ i  f2 _! u/ r2 G
  52.     elif SIGN == "CAS*"
    + w6 Q0 F* G) H" q, _* y$ B, x3 \
  53.     elif SIGN == "Lctx"' \: @0 {8 y# v8 w* b$ l
  54.     elif SIGN == "LctX"
    & Y) f2 I- H$ @  I
  55.     elif SIGN == "Lnam"- o) G, {2 o: ]5 V# G) R! d/ _$ Z# g
  56.     elif SIGN == "Lscr"! s; O8 [* @5 K3 @* a
  57.     elif SIGN == "Cinf"
    5 a4 H0 U1 B# z7 \1 [
  58.     elif SIGN == "GRID"1 L/ r3 q: J/ }0 d* D
  59.     elif SIGN == "FCOL"
    - M% O4 P# T; J( V" c
  60.     elif SIGN == "MCsL"
    6 m, w1 }5 ?0 n' P; v- _9 L4 j
  61.     elif SIGN == "DRCF"8 s8 y( Q; V- c% m5 O
  62.     #elif SIGN == "BITD"    # 16bit images
    / k: {' E: R6 j# N7 ~! K
  63.     #elif SIGN == "ALFA"    # alpha channel
    ' T8 [7 Z6 t/ D% ^) b5 q
  64.     #elif SIGN == "sndS"    # 16bit audio/ Q& H; T( C3 b9 W/ n7 Z
  65.     elif SIGN == "sndH"
    2 m& N+ C) K! B1 V& U3 b
  66.     elif SIGN == "Sord"' u. k; U  Y3 j  B
  67.     elif SIGN == "free"; D- L& @$ m6 J8 a5 E6 y% c) Q
  68.     elif SIGN == "junk"7 D/ P; F5 ?$ o6 T; b9 K! w
  69.     elif SIGN == "Thum"
    3 t( t+ L$ S5 f  K; n6 A
  70.     elif SIGN == "KEY*"  Q, R7 ~; u, v3 E
  71.     elif SIGN == "FXmp"1 i' I' O' q; k$ |) U
  72.     elif SIGN == "Fmap"
    ' X. A! Q. O( G- T
  73.     elif SIGN == "PUBL"
    6 {2 ?# ]6 s8 X
  74.     elif SIGN == "SCRF"9 n- ?: u. K+ n7 R: m" z
  75.     elif SIGN == "VWFI"* D+ O& z$ u, F
  76.     elif SIGN == "VWSC"
    0 B( o$ w* W7 j0 Z2 ]# s  X: f2 U
  77.     elif SIGN == "VWLB"# x3 J" L1 [2 }: J* O
  78.     elif SIGN == "VWTL"7 Z5 t" m; o4 Y. ~  p
  79.     elif SIGN == "XTRl"
    6 g! E# d5 T( e" ]3 w
  80.     elif SIGN == "ccl "
      Z% E$ _+ y5 S* u2 B  i
  81.     elif SIGN == "SCVW"6 z2 k2 \- E( x4 `
  82.     elif SIGN == "Lval"% }( z8 p/ O8 r% x7 e3 ]
  83.     elif SIGN == "cupt"
    . D! K- O, Q7 R* ^! \& q
  84.     elif SIGN == "CLUT"
    9 w/ k: \& }  w
  85.     # filters end here0 S& a2 n$ [1 x8 Q$ u5 ~. x; [1 r4 j
  86.     else
    7 r; ?- |9 S1 j9 G
  87.         # skip the above ones and dump the others& W( ~. o3 W1 B3 [( J
  88.         math SKIP_SIZE = -13 X. m: f: C' ?; x0 ^3 v
  89.     endif) x: I) u0 `/ x

  90. / G# y/ s: f. h* y/ ^( i
  91.     if SKIP_SIZE < 0* y5 K) V% H8 G5 ]4 S
  92.         get SIZE long
    , B; K. B; \& R( M
  93.         get OFFSET long
    + |( D& E, Q6 A' Z/ w
  94.         if SIZE > 8/ u& J! v4 _" `# V1 Q- Z7 h
  95.             math OFFSET += 8
    # q6 ~$ i- l) @4 U5 Q( A/ P
  96.             math SIZE   -= 88 u- ~& n5 V7 x% T3 Y
  97.             set NAME string ""
    ; G! W' \# R( U) N! [
  98.             if SIGN == "XMED"( l/ a" R8 Z: m3 h8 a1 q* W
  99.             elif SIGN == "ediM"
    + D- c. U, o& T
  100.             else
    0 d  {+ g8 Y  H- c1 w
  101.                 set NAME string SIGN  k* j" U- `7 p* M& p4 Q& }8 m7 D
  102.                 string NAME += /  V8 P" {/ H5 ]% I8 S
  103.                 string NAME += i' N2 R; _7 R; s4 [6 E% V' g
  104.                 string NAME += ".dat"
    . L  ^- Y4 Z( I2 U' F8 Z
  105.             endif
    2 H; C3 i$ _) ~9 w( F, N) P
  106.             log NAME OFFSET SIZE% i2 p- |3 f  b! u) j- y
  107.         endif
    . h! ^) m: P, i- `% j; Q/ d
  108.         get DUMMY long
    : I* a) |% N7 W6 K  E7 W- W& x
  109.         get DUMMY long% Z. F, E3 ]0 R8 t* u( Y
  110.     else
    $ x! y& j  Q; z" D6 S! S- [
  111.         getdstring DUMMY SKIP_SIZE# d) n& C0 Y  ~6 R4 E8 u
  112.     endif1 U  L, i5 k9 I) w% ~" v  e
  113. next i( r3 e6 [8 M, x6 o/ A
复制代码
[attach]21042[/attach]




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2