冒险解谜游戏中文网 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 编辑
$ D( M0 V' l- k: s
; M/ A+ ^$ W# d, t1 }- p8 P勤快的老外又放出了这个好东西,配合quickbms使用。- y6 ~0 p: o, n  T
好多小游戏都是用Shockwave Director做的,包括神秘视线。  k0 G0 [, F" y( [9 F* w; B* n. k
如果能做出打包器的话,就又能解决好多游戏的汉化了。
  1. # Shockwave Director dcr/dir/dxr/cst dumper4 o; ~) {$ y, `
  2. # script for QuickBMS http://aluigi.org/papers.htm#quickbms
    3 A; t& e, K' \  p' E% S4 D
  3. - Q1 f5 H$ h( R5 @) z! K
  4. quickbmsver 0.4.11/ a, B( g( U5 x+ x7 `
  5. getdstring RIFX_SIGN 4
    8 C* N9 z0 N* V2 ]/ D2 Y+ M- f
  6. if RIFX_SIGN == "RIFX"
    $ j1 X, O" ?& x; S  ?  K3 V  U! v
  7.     endian big. Q; i- Y7 U, D
  8. elif RIFX_SIGN == "XFIR"
    5 a0 J, `% k2 h
  9.     endian little# g+ G4 M% @$ L- I  L4 p+ ]
  10. else8 k) p/ p. a* p5 U7 [3 i
  11.     cleanexit9 _, D& S% ~, |+ K
  12. endif
    / A0 k- S5 e" o
  13. get SIZE long( y8 |# \6 K* G, k  }
  14. get SIGN long
    7 _& t* H6 g% I, `! a
  15. if SIGN == 0x4647444d0 d- {1 x; `" N% C, I# h
  16.     get NAME fullname- O3 z* `& s+ V' A! Q: l
  17.     get FOLDER current_folder( l* E: c$ d2 _: K- E9 @) I
  18.     print "\nyou must use offzip with this file:\nhttp://aluigi.org/mytoolz.htm#offzip\n\n  offzip -a \"%NAME%\" \"%FOLDER%\" 0"3 h+ p% N- z- \/ ^7 {3 w  A7 N
  19.     cleanexit
    $ ?! e, n. Z. D0 G+ F
  20. endif
    + o1 ?9 f' ~8 B* v3 |# O9 s' s' H2 B
  21. 7 t7 ]$ w1 k: y6 k& C
  22. set FIRST = 1
    * k6 }& Q9 y% x  |5 F, O
  23. for i = 09 Y3 K8 W. I  q6 N) _, B' N
  24.     savepos CURR_OFFSET# m. ]- `; g- f- a/ r+ K6 W
  25.     getdstring SIGN 43 H8 d0 v2 y) N
  26.     if RIFX_SIGN != "RIFX", F" d5 Z+ p3 b$ t! w$ A0 p
  27.         string SIGN r= SIGN% A% `( G: Y6 |) [% i* N
  28.     endif
    % m; c" X% C& c
  29. / H/ x& z' e8 L$ ^& l6 _
  30.     math SKIP_SIZE = 0x10
    9 i% Z& _: ^6 l" O8 h+ d0 b( B
  31.     if SIGN == ""
    ; K" }; A2 L, q& Z7 N" D5 j
  32.         cleanexit
    6 k! A# |  ~; e( }- _
  33.     elif SIGN == "RIFX"# q  |6 q6 [) z8 N
  34.     elif SIGN == "imap"
    ' @8 _: P& [5 D( S+ G( @
  35.         if FIRST != 0. z6 c  ^/ K; t
  36.             get DUMMY long
    7 J! `1 K+ q" N. [
  37.             get DUMMY long' C9 S/ @, W& Q- h* G3 _
  38.             get OFFSET long( E$ m0 J$ F9 M
  39.             if OFFSET > CURR_OFFSET/ q8 e% C- D* n1 n
  40.                 goto OFFSET
    ( m, v" Q& |% _4 Q0 w1 a( V
  41.                 math SKIP_SIZE = 0( S0 r/ O$ d& K. H/ R. e3 k
  42.             endif
    9 ?& \& g5 w7 `" w/ ~- `
  43.         endif
    % o: k4 T4 C! e
  44.     elif SIGN == "mmap"- T; n+ F7 [+ u& ~  _% J/ ?7 _
  45.         if FIRST != 0
    . G5 f1 m4 D- p: o4 w# V6 x
  46.             math SKIP_SIZE = 0x1c" S0 Q! V' {, x6 ]  I
  47.             set FIRST = 0" `3 H4 \1 s' d8 q  ?; l4 h
  48.         endif
    6 u8 {. g5 E; R% q
  49.     # filters start here9 B5 J8 G: e- H7 A. d
  50.     elif SIGN == "VERS"
    4 ]$ o& b1 j6 c, Q
  51.     elif SIGN == "CASt"
    + C  d# C* r1 b* B( B
  52.     elif SIGN == "CAS*"
    ' o3 B" f- x! v6 G& m
  53.     elif SIGN == "Lctx"
    ! i6 F/ ~( a% c' _3 ]
  54.     elif SIGN == "LctX"
    * |4 g+ n7 i' t) V. @$ z
  55.     elif SIGN == "Lnam"5 q; ~/ m2 R  i/ Q0 A  L5 X
  56.     elif SIGN == "Lscr"
    ; W* U7 y7 s" J/ F0 ^# h
  57.     elif SIGN == "Cinf"" X3 E6 Z8 i9 S- T0 @" f
  58.     elif SIGN == "GRID"
    + _  Y; I5 ~' D0 f5 u3 R
  59.     elif SIGN == "FCOL"- m2 Y: S) N3 F1 i
  60.     elif SIGN == "MCsL"
    5 _+ e, u$ }$ ~( Q6 c. T
  61.     elif SIGN == "DRCF"
    & `+ O& F: s- U+ [- U4 y
  62.     #elif SIGN == "BITD"    # 16bit images
    8 f$ s9 |( }0 D2 g
  63.     #elif SIGN == "ALFA"    # alpha channel
    , @! D  Z6 d0 @
  64.     #elif SIGN == "sndS"    # 16bit audio7 ^* n7 q  s* e- m6 G. P
  65.     elif SIGN == "sndH"
    $ |* c& T1 k6 _
  66.     elif SIGN == "Sord"
    " ?! _0 P# _- R+ O% l
  67.     elif SIGN == "free"
    ' M0 P& }# I5 R0 v, H4 t
  68.     elif SIGN == "junk"
    ; c# h2 g7 `$ T2 [" z$ h, A
  69.     elif SIGN == "Thum"/ F; |, U- u  ~4 y
  70.     elif SIGN == "KEY*"- N$ s: q) p! B
  71.     elif SIGN == "FXmp"1 k; V1 A' K9 L2 _4 p& I
  72.     elif SIGN == "Fmap"
    + I# Y2 D8 t: g. V
  73.     elif SIGN == "PUBL"' z$ V9 e3 v  R6 S$ e( i
  74.     elif SIGN == "SCRF"
    * z( A9 J+ j+ e
  75.     elif SIGN == "VWFI"
    1 A2 @) a6 U; z* Q  V$ i
  76.     elif SIGN == "VWSC"
    / ~, I9 N& Z, z+ l
  77.     elif SIGN == "VWLB"
    2 |5 G) ^) O' b1 d
  78.     elif SIGN == "VWTL"
    6 H# i, f" Y& M% I& K) x$ i
  79.     elif SIGN == "XTRl"7 L$ p" Q1 V: T" Q2 Z
  80.     elif SIGN == "ccl "
    $ U8 J) C1 {0 k% E7 P/ k/ d
  81.     elif SIGN == "SCVW"
    ! C/ Z1 x0 i8 ?
  82.     elif SIGN == "Lval"
    5 ~  K- |; i3 _; z# k
  83.     elif SIGN == "cupt"
    ( W5 m/ P1 h1 Y7 E7 C  y& ~
  84.     elif SIGN == "CLUT"8 ^$ q: F3 t1 e! Q8 v8 q7 O; u2 I
  85.     # filters end here( R2 ~' T3 z4 u1 F0 J8 l
  86.     else
    8 j( H- e9 B+ w  H" U* P
  87.         # skip the above ones and dump the others
    : n4 ]5 m/ ^0 H8 X! K
  88.         math SKIP_SIZE = -1
    * N7 H* ^) a2 m, x
  89.     endif) Z  a2 T7 B  k! A
  90. 5 L( Q5 u5 ^1 A7 a
  91.     if SKIP_SIZE < 0
    5 P6 k" S; c& u  Y- y6 ]" z
  92.         get SIZE long8 }4 J$ X1 ?6 `: s- }
  93.         get OFFSET long8 z. m* O& Y. \( @- ^" z4 G! _
  94.         if SIZE > 8
    * b5 k/ V4 w6 C. m  v% Q- J
  95.             math OFFSET += 84 G& x1 K! K5 D7 Y/ \! f% ]0 N
  96.             math SIZE   -= 8
    ' A2 V. s; I7 N* X- D
  97.             set NAME string ""
    3 V" K$ k' e# v/ Y
  98.             if SIGN == "XMED"
    8 \7 S2 {! u. k6 m+ W
  99.             elif SIGN == "ediM"
    " F! K1 i/ }1 ^7 j1 P
  100.             else
    7 W* e) f0 M& M# `9 O% d4 Z
  101.                 set NAME string SIGN
    ( l0 m" J  u# W' Z: G; k9 K9 Y
  102.                 string NAME += /
    9 w4 s  O/ n5 P+ b  ]0 s
  103.                 string NAME += i# y1 k$ a9 H5 v) X
  104.                 string NAME += ".dat"* K- [4 h2 S" F2 G: |9 _( G
  105.             endif
    ) H7 s3 v, T, K) k
  106.             log NAME OFFSET SIZE+ o" O- L6 O8 o
  107.         endif
    ' {& X, f3 G# r4 g$ i6 ~; B
  108.         get DUMMY long
    $ D* \- m8 |3 i' }' l" U
  109.         get DUMMY long& }! P4 [! A0 ~' l- D
  110.     else
    - S% q% Y, T! n* r3 @* s8 k
  111.         getdstring DUMMY SKIP_SIZE
    / }" ?" w: p7 o3 p/ b
  112.     endif
    ( i3 w  `6 S6 V1 l5 C3 U
  113. next i
      R: `# t# c4 n2 z; @
复制代码
[attach]21042[/attach]




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