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

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

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

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

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

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

scgame
" {4 _- j4 Z+ C. N& K! V, ?3 W4 o8 m! f% l, [9 u1 E$ C0 b
你好,请在完成前一个小任务以后,抽时间完成一下这个金发美女的懒汉打包工具。) p' `/ L7 Z8 l9 I4 q
请先看一下下面这个帖子
# V9 r( \- V! U7 k) k' V( j【神秘岛4汉化项目】懒汉式打包新方法   r6 `7 p5 A8 E
https://www.chinaavg.com/read.php?tid=19892&keyword=%C0%C1%BA%BA. Y  J( _6 C9 U! Z
相关帖子
. ^: {* Z3 \# }/ V6 X金发美女正式版的解包和打包工具
# T' o6 i% J+ Uhttps://www.chinaavg.com/read.php?tid=21364 ; \+ U5 x$ A4 B0 a
细节大致如下
/ `/ p: e- o$ @* ~- ?# i& G( n7 l7 k.TOC 存放了SIZE和OFFSET,.DIR存放了文件名OFFSET和文件名。& E+ y7 c4 n1 P1 D: R
工具大致用法如下, ^' _% j( x- m  P6 {
pack.exe filelist.txt foldername* `: q+ a0 Y( G* w6 ?7 s' l; D5 u
filelist.txt里存放了修改后的文件列表,foldername是修改后的文件保存目录。1 {; Q+ B  h0 b$ q; A" S5 `( b
pack.exe把文件列表的文件逐个加入到.DAT的尾部,并修改.TOC,.DIR,使游戏找到我们修改后的文件。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

使用道具 举报

板凳
发表于 2010-4-20 01:17 | 只看该作者
.DIR和.TOC的格式不是很明白) ^. S9 H0 a* s7 s: `
是怎么对应SOBLOND.DAT的啊( n( e2 Z# D8 R4 H
能不能再详细得说一下这两个文件是怎么表示offset,和size的吗
/ w( W2 T+ \5 R/ [我现在在想的步骤是:
- o4 Z# j2 q& |5 Q; A" r1) 从DIR里读取文件名,获取他们的索引(1,2,3,4....)
  M1 k  x& M% B+ a2) 再通过索引和文件名和filelist.txt对比找到相应的.TOC和.DIR数据修改
4 S+ y: J+ ]* N5 d( t& _3) 写入.dat4 O8 @0 D; o& N
9 z' v& Y7 M7 e5 H+ z8 I) Z
嗯,不过还是请解释一下.DIR和.TOC
# w) |. f% I0 }2 t6 `' z& z( h我可以先写个读取文件名找索引的,然后和file.txt比较然后再来写入
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-4-20 07:58 | 只看该作者
open FDDE DIR 1, k5 r' ~. A( }  z. l/ B7 H. |
open FDDE TOC 2
8 l) A' p# C/ m" A5 ^1 n( Udo
. v9 I9 v2 ]7 Q, g    getdstring CHUNK 4 2
/ H  D! e$ `& Q- e    get DUNNO long 2
  D- Y# y+ i: C    get DUNNO long 2, v6 m  X- S  z0 E, O* l
    get FILES long 26 R. I2 O! z6 X7 o8 k
    get DUNNO long 2
7 U# p- ?2 I9 q: h/ z, }9 z* t/ O    get DUNNO long 23 B- A: w% q# z' r2 D& W# D! D% W- ?
    get DUNNO long 28 d+ B; j7 a; `" u; d( R
    get DUNNO long 25 y3 T1 g" T6 C  j" r* p4 m% R
while CHUNK != "REST"& n# w  j5 D1 A/ T6 l2 M2 b
savepos NAMEPTR 1
. Q) o" L/ K; e7 T" i# nfor i = 1 to FILES3 z! h- u& L8 a. }8 G- k/ \
    get DUNNO long 2
7 s+ d& p" M9 h' J* {6 F% @# h    get SIZE long 25 [! _. e6 w( y
    math SIZE >>= 20 A0 I  M2 _0 _4 p
    get OFFSET long 28 w: R' |1 F% x
    goto NAMEPTR 1) J0 @8 d) ?7 I. r
    get NAMEOFF long 1/ j2 T) J7 z: Z$ N( N
    savepos NAMEPTR 1
6 q6 Q; b( ~8 q" X5 W& \# Z    goto NAMEOFF 1; P6 B3 E* R$ r5 a
    get NAME string 1- w1 s2 i# v+ p8 S7 `0 C
    log NAME OFFSET SIZE. }' z: o9 ?7 Q- U  S
next i
! g* s! G2 }6 T. I& r: G5 B( k1 Y! T
* S6 Q0 A" @4 }( y
这是解包器
: x' w- O+ R, @" d/ @1 b7 y/ h6 ^* d
for 里面读取toc的部分,long就是4个字节
2 r: d8 m8 M( b# E  get DUNNO long 2
$ H5 S6 X' M3 h6 M/ A! e    get SIZE long 2, U8 F) c" @( h4 [/ P2 f( X
    math SIZE >>= 22 x* x% L( E$ H4 ]! {
    get OFFSET long 2
/ ]& [; d$ b* S( H- h) }3 h' i6 p$ x3 ~3 o- O: x
for 里面读取dir的部分,long就是4个字节1 m4 [3 `$ v& e' l9 J
    goto NAMEPTR 1
2 d/ v/ B. e  K( c4 l    get NAMEOFF long 1( R+ X* E  I% k: w" j2 V' k
    savepos NAMEPTR 1
% a# U& z1 z9 `1 h# @- I    goto NAMEOFF 1
2 l2 g7 h% e5 z& s# [4 c1 F    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 | 只看该作者
我来详细解释一下,' Q# D( p: t9 a( b3 E' j
open FDDE DIR 1
% o9 u3 t/ {  D/ eopen FDDE TOC 2 $ j9 m, m% l" g& H+ W" u2 j
相当于打开2个文件,后面的1,2相当于句柄
' J/ W; ]7 s, x. i/ W3 Y' ^; ?& V% ?! G2 U/ f% i3 r6 L
do
9 c, F* K! s% m+ Q$ ?, {    getdstring CHUNK 4 2
# z0 [/ t  e4 i3 N+ k    get DUNNO long 2
( ]! w  E) p& H% {% }' o! ?/ N    get DUNNO long 2  * D4 ^7 H9 z8 C' O
    get FILES long 2
/ k; ^1 ]( s; H2 q: L) c9 h  n9 A    get DUNNO long 2
' S5 ^. B3 Z0 d9 K2 I# G    get DUNNO long 2 2 E9 d' @4 A" z% T" j
    get DUNNO long 2
" ^, N5 `2 \5 U: S; H. S- e4 K& U+ P    get DUNNO long 2
% t8 V# z- Q1 ewhile CHUNK != "REST". x+ V% ]. Z* r# a. E: M

: S* p( y( j0 o# ?5 R) p: I这段主要是打开TOC ,读取文件数FILES 。
9 i2 T( Z; Q3 r, T4 P4 x9 n: c你算算FILES 就能分析出是BE还是LE的。8 M: @0 C9 J$ i( d5 s$ C+ k( }
0 V& C# o+ b! f( C6 ?
后面2段是
, F/ A# W& }0 n3 f) m读取toc里面的每个文件的SIZE ,offset
% l+ D! h* v0 v7 t+ T# \读取dir里面的每个文件的NAMEOFF ,NAME, P2 n0 O4 I* K
最后根据每个文件的SIZE ,offset,NAME到dat里面把每个文件切出来。
, i$ _9 @8 S6 N. m& V2 o5 p. I. ?' q, E1 K, ?4 o) n+ q5 L: O
该明白了吧?
回复 支持 反对

使用道具 举报

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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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