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

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

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

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

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

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

scgame& V6 N$ ~1 P9 p* C9 ~) B

# n! p7 M. i0 A7 m; K你好,请在完成前一个小任务以后,抽时间完成一下这个金发美女的懒汉打包工具。! B# F# P' E! J2 G4 _$ }1 t
请先看一下下面这个帖子
+ n  b2 `' ^6 P0 H' h- W【神秘岛4汉化项目】懒汉式打包新方法
. B3 a7 l) O; R* U  {1 l5 O* M% fhttps://www.chinaavg.com/read.php?tid=19892&keyword=%C0%C1%BA%BA
* m6 n6 Y; L) G6 ^5 E5 A相关帖子
* K& E3 |8 m$ t金发美女正式版的解包和打包工具
" O: U" }! o& D; B$ q5 [https://www.chinaavg.com/read.php?tid=21364 : ?3 X9 J3 J; U2 v! @. t7 \  C3 Z
细节大致如下
0 B! H$ m  G  ]0 V.TOC 存放了SIZE和OFFSET,.DIR存放了文件名OFFSET和文件名。) D' `- ]: {# i
工具大致用法如下8 X) P5 s$ c, f; D1 ?+ I: i
pack.exe filelist.txt foldername
( b& _* V# P% f5 a; L* nfilelist.txt里存放了修改后的文件列表,foldername是修改后的文件保存目录。/ ]) }& ?+ W+ j7 v' Q  J/ Z) o
pack.exe把文件列表的文件逐个加入到.DAT的尾部,并修改.TOC,.DIR,使游戏找到我们修改后的文件。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

使用道具 举报

板凳
发表于 2010-4-20 01:17 | 只看该作者
.DIR和.TOC的格式不是很明白. p6 s1 ?+ L5 z+ E1 d
是怎么对应SOBLOND.DAT的啊
: A5 _9 G9 e6 S/ z6 n* ^: R能不能再详细得说一下这两个文件是怎么表示offset,和size的吗
; q& M. }2 r3 g: h! M我现在在想的步骤是:
- S, \  C7 q6 L+ g- y1) 从DIR里读取文件名,获取他们的索引(1,2,3,4....)! d" K+ c. M7 m  m
2) 再通过索引和文件名和filelist.txt对比找到相应的.TOC和.DIR数据修改
- A" e4 D* X4 {3 e3) 写入.dat" O% U" n3 J( p* @9 }, \1 H/ j  i
* o+ c  J! M) h- M) h
嗯,不过还是请解释一下.DIR和.TOC, @% J' n9 o: h4 C( O3 B. I3 Q
我可以先写个读取文件名找索引的,然后和file.txt比较然后再来写入
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-4-20 07:58 | 只看该作者
open FDDE DIR 1
2 o7 A* ]/ R3 `9 h' G' mopen FDDE TOC 2
+ g8 I. ?" Y. v6 x$ ado
( ^6 n" H$ w5 g* o- y9 J' o. l0 q% f5 m    getdstring CHUNK 4 2& T- s$ J) c6 @' Y! A
    get DUNNO long 2
. d/ o, j, m6 d0 c    get DUNNO long 2
# P% ~6 n# ~4 S. C) D( e* S, e    get FILES long 2. ^* W7 v4 c% M; R
    get DUNNO long 26 t* i7 f. P; ^9 S/ j6 \! ?
    get DUNNO long 2$ Z) b2 u5 ~+ N) S
    get DUNNO long 2
* V) C0 F7 S) u" f5 T$ N3 [    get DUNNO long 2
6 w9 l! I3 y' z4 V  @( Rwhile CHUNK != "REST"2 _& }4 z  n1 E( [
savepos NAMEPTR 12 j/ T& K! ~+ G3 u- }2 K9 `
for i = 1 to FILES6 E! N* _% I. ~; Z5 V, q6 i1 w
    get DUNNO long 2( W* }7 L7 p% k5 `6 i
    get SIZE long 2
5 K' |: @& E0 B& {$ D* n    math SIZE >>= 2, _/ p6 r( G( v& ^
    get OFFSET long 2
6 X2 N4 K2 z# y' _- @* C    goto NAMEPTR 1
+ K" f& x7 r: h' R' m* H1 X    get NAMEOFF long 1
5 c# {9 U  P4 Q, O# M& {4 D    savepos NAMEPTR 1
9 ?& Y- O5 v# U) U" @. e    goto NAMEOFF 1/ y/ P$ r, z4 \; b' Q+ x& w% w5 ]
    get NAME string 1
4 F* x6 M1 c& {7 u    log NAME OFFSET SIZE0 x# ]- o5 [% ?3 H1 [
next i
2 n# M- B8 U% m4 R
8 ]1 h/ R! b$ u
3 c- E0 j/ [; ?9 z' D这是解包器
: u8 l7 P- z% @6 U) O: N( `& v4 h8 ~& g5 ^% z
for 里面读取toc的部分,long就是4个字节
, R8 m( l5 U. A) q6 ~  get DUNNO long 23 r0 L3 w& q; z
    get SIZE long 2
0 g3 I8 z) X4 O$ @, Y8 H- o4 g    math SIZE >>= 2
7 n- u- W$ z, V/ g    get OFFSET long 2+ \: Y/ x2 r* `( t9 ^" |3 V

7 g8 q/ J7 Q6 T; y- w5 Sfor 里面读取dir的部分,long就是4个字节" M; \1 m) H! c+ v: Y
    goto NAMEPTR 1
0 k# z) M; s% b& X7 S  r8 N    get NAMEOFF long 1
# u" Y0 [" \8 {8 T  }    savepos NAMEPTR 1
* T8 Y. _6 E2 F+ ?    goto NAMEOFF 15 y9 v0 l, f( p/ k# t& u
    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 | 只看该作者
我来详细解释一下,
# P+ g" E7 \. {" r2 k5 m! ~9 R/ topen FDDE DIR 1 # o( j; J# Y! @9 I+ p( c" Y& D
open FDDE TOC 2 1 g2 r: Y' b+ S0 r  ?) q  ~
相当于打开2个文件,后面的1,2相当于句柄2 S3 J; r) O' x) R4 P  m
  O% J, Y. s, b. P
do
$ @" y7 |( i+ |* ^    getdstring CHUNK 4 28 V8 u$ f$ J) }, X$ G
    get DUNNO long 2
& D+ |" P3 y1 ?/ u  m    get DUNNO long 2  
  k1 `' e* K, ~# J  k7 Q7 v/ h: H5 G    get FILES long 2 & {2 s2 S" j+ R- Y0 u
    get DUNNO long 2
: U* C2 T7 B; C    get DUNNO long 2 1 p! J- \0 x4 W; y0 f* w! x
    get DUNNO long 2 1 {2 Z$ X9 D+ g
    get DUNNO long 2
- K/ Y/ y8 Z1 K! b; a* Ywhile CHUNK != "REST"8 s# t  Z! Z, `' @

7 q. s3 Y! c* R/ N这段主要是打开TOC ,读取文件数FILES 。* Q$ T; a2 V# s
你算算FILES 就能分析出是BE还是LE的。
' N9 P/ l) M9 {. N( Q# w( }5 j" _" D  E* y
后面2段是' x: [/ f- R3 k
读取toc里面的每个文件的SIZE ,offset
6 g$ v" P- O" e6 m( A  s0 L读取dir里面的每个文件的NAMEOFF ,NAME
  m' F7 @: c) k& g6 U最后根据每个文件的SIZE ,offset,NAME到dat里面把每个文件切出来。0 l" q) Y# r* d
7 U; }( k0 K7 T* v2 h$ N4 k* 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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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