设为首页收藏本站官方微博

汉化任务 金发美女的懒汉打包工具(scgame请进)

[复制链接]
查看: 2994|回复: 8
打印 上一主题 下一主题

[汉化任务] 金发美女的懒汉打包工具(scgame请进)

跳转到指定楼层
楼主
发表于 2010-4-13 23:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

金发美女的懒汉打包工具(scgame请进)

scgame
1 ~" S6 I+ e( Q) L5 @8 G2 Z8 q; [6 o- P/ L( T
你好,请在完成前一个小任务以后,抽时间完成一下这个金发美女的懒汉打包工具。( u# V1 W: x% Q4 i! u
请先看一下下面这个帖子( `; @4 |8 x; [6 F. h
【神秘岛4汉化项目】懒汉式打包新方法 0 W! K& X! N! a* b& G
https://www.chinaavg.com/read.php?tid=19892&keyword=%C0%C1%BA%BA( v' @5 u" D' ?' W$ {6 q
相关帖子
8 b$ @$ `4 P) c+ S. [' N/ V) B+ s金发美女正式版的解包和打包工具
# `+ T+ Y! @8 u6 uhttps://www.chinaavg.com/read.php?tid=21364 3 `# L* ?: i) }, y  i  [& X# i
细节大致如下" y  E" Y4 X3 R- v
.TOC 存放了SIZE和OFFSET,.DIR存放了文件名OFFSET和文件名。
. j0 ?4 ^3 ]( |, V0 s3 h) _工具大致用法如下
& A  H5 s' E, J* z" f+ V% xpack.exe filelist.txt foldername
- H. ^$ S: v/ k& Cfilelist.txt里存放了修改后的文件列表,foldername是修改后的文件保存目录。# E& R! k9 F- G. O7 M' z% @
pack.exe把文件列表的文件逐个加入到.DAT的尾部,并修改.TOC,.DIR,使游戏找到我们修改后的文件。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-4-13 23:56 | 只看该作者
先去下个看看
回复 支持 反对

使用道具 举报

板凳
发表于 2010-4-20 01:17 | 只看该作者
.DIR和.TOC的格式不是很明白% J/ j. u) l, R( r% r$ V
是怎么对应SOBLOND.DAT的啊2 T2 H: Y4 l/ x- N/ I
能不能再详细得说一下这两个文件是怎么表示offset,和size的吗
6 l; Z4 K- c2 @& M2 a: E8 t我现在在想的步骤是:# |: P+ g: c/ v, W" Q1 f
1) 从DIR里读取文件名,获取他们的索引(1,2,3,4....)
; w/ `; }: }( H7 @8 a2) 再通过索引和文件名和filelist.txt对比找到相应的.TOC和.DIR数据修改1 s$ o) u1 d* |7 I) Q' v# H, ?
3) 写入.dat
# x6 I0 y3 L$ o& v6 t0 Q4 F4 c# M( A8 U
嗯,不过还是请解释一下.DIR和.TOC) R7 w7 G" c5 a
我可以先写个读取文件名找索引的,然后和file.txt比较然后再来写入
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-4-20 07:58 | 只看该作者
open FDDE DIR 16 B+ V6 w. l6 O( t+ w$ X- O
open FDDE TOC 2. V5 J1 m" P, w) b
do 1 o& u$ s  s. t/ y8 H6 f
    getdstring CHUNK 4 22 \3 p5 W6 [; B9 v* Z# _, G
    get DUNNO long 2
. f% a. i! F: p    get DUNNO long 2
1 s1 ?5 r% c# h7 m    get FILES long 2( m& L0 T; i/ ]1 \+ f  u; s
    get DUNNO long 2$ R+ m: r( L1 l; g: P& m; M! n- Z
    get DUNNO long 2" j/ a& D5 M' h. c
    get DUNNO long 2
3 s- I, o5 j+ F; F    get DUNNO long 2
  L" d+ ^9 w8 o3 W; zwhile CHUNK != "REST", p* i1 K0 _, o8 r
savepos NAMEPTR 17 h4 [+ G) Z( b: {+ w! k* |
for i = 1 to FILES- B4 @2 G& [3 c( g& i
    get DUNNO long 2
! P( L) H8 X$ v    get SIZE long 2
" `% |; t* u: i: Q6 n: Y2 k    math SIZE >>= 21 m9 f* W% L  ~( R8 K
    get OFFSET long 2
  j. A# E  u  p& m6 Z    goto NAMEPTR 13 _( N+ {1 X; m& S! L
    get NAMEOFF long 1& o- ^) Z7 \$ Z6 P: [; u
    savepos NAMEPTR 1% _) m7 i- ~5 a
    goto NAMEOFF 16 K% e6 N9 E4 n) H% |8 k, y
    get NAME string 1& q$ x8 {; U0 i. @2 |+ v( h
    log NAME OFFSET SIZE9 u- l: N  [/ k( m: z" \' I
next i
" C6 \. [2 R, ?7 H# T
* K! F) ^$ t3 n5 G4 s' R% r
  m: L! a" z: O( G' F这是解包器
) ]( j8 I* ], R* p' F! w2 q+ ], K" q5 ]+ `8 k
for 里面读取toc的部分,long就是4个字节
  K, v: y. T! j: |9 \' q* S  get DUNNO long 2, x2 P5 I& e7 m' _/ l% G
    get SIZE long 2! F: ?  A/ R$ g3 I8 V% g2 w
    math SIZE >>= 2/ R" j1 G" M, ^/ l+ @7 Z& A$ H; O
    get OFFSET long 2
. j2 U" N! ]. O9 f; {$ H! K/ M- d" f& ]
for 里面读取dir的部分,long就是4个字节
# `  I/ D; a" e- v( D    goto NAMEPTR 1* |# a3 y( e; u; S
    get NAMEOFF long 1. i4 W* T( W, s* A. P
    savepos NAMEPTR 11 W6 f/ h6 I- {+ l1 t& J* s
    goto NAMEOFF 1, x5 N. y  y0 O* V4 H8 x
    get NAME string 1
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2010-4-20 07:59 | 只看该作者
不明白的地方请继续提问。
回复 支持 反对

使用道具 举报

6#
发表于 2010-4-20 10:47 | 只看该作者
这4个字节是Big Endian 还是Small Endian的啊
回复 支持 反对

使用道具 举报

7#
发表于 2010-4-20 10:51 | 只看该作者
哦,上面一段是写包?
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2010-4-20 11:19 | 只看该作者
我来详细解释一下,2 E" Z' g/ M/ _) u& d6 m
open FDDE DIR 1 1 U, U$ i1 c: n; |# r
open FDDE TOC 2
9 i" n- }, M# Z- x1 o相当于打开2个文件,后面的1,2相当于句柄8 [$ i( z% O2 g: K: I8 Z, l
6 w! P7 n7 S2 ]5 p9 U) r: l
do+ E8 V5 J* T9 [1 {
    getdstring CHUNK 4 22 G, V* z3 `  f3 \$ y: |9 f; C
    get DUNNO long 2
& h3 n7 L# E: ]. z" j8 `- c% ]/ N    get DUNNO long 2  / O& Z' m: n6 {" D. e; K- V
    get FILES long 2 7 }* W8 G8 q, C0 f( j
    get DUNNO long 2   z% @& g7 r/ H0 M7 I
    get DUNNO long 2 2 s" U, D) U/ z
    get DUNNO long 2
3 j7 V1 Q, r& |* w4 }    get DUNNO long 2 + u" Z. R* |/ g0 Z$ s" J
while CHUNK != "REST"( G& `7 j+ U5 r7 K% l1 y

4 b0 o9 V! t* c6 T( Q- ~+ P6 S这段主要是打开TOC ,读取文件数FILES 。
7 R$ S/ g, C% q$ a5 y你算算FILES 就能分析出是BE还是LE的。
3 Z, J% W8 V! L/ k5 p
: L# @* H0 s7 k$ z0 |$ ~- S后面2段是2 s. B9 b  X8 l% S& i
读取toc里面的每个文件的SIZE ,offset# o/ ]% F% M' V. \  T) _9 @
读取dir里面的每个文件的NAMEOFF ,NAME
# i5 A% b1 `1 U/ O# s: C$ N最后根据每个文件的SIZE ,offset,NAME到dat里面把每个文件切出来。! M# K2 C$ p9 `  B5 m: m3 g- L* H
5 E  z, u' F4 G5 @6 Q  Y( o' ~% k
该明白了吧?
回复 支持 反对

使用道具 举报

9#
发表于 2011-5-29 19:20 | 只看该作者
mark
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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