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

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

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

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

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

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

scgame
9 ?% f. d" i# }2 w9 F: n9 W! j/ L( Y0 e' e2 c; t, W
你好,请在完成前一个小任务以后,抽时间完成一下这个金发美女的懒汉打包工具。
6 B! }! ?  k4 a+ W5 \" P3 b9 u, b- L请先看一下下面这个帖子& T6 E' ?* W. a2 n
【神秘岛4汉化项目】懒汉式打包新方法
/ |) a0 j1 A# K$ Dhttps://www.chinaavg.com/read.php?tid=19892&keyword=%C0%C1%BA%BA/ g& C4 @) |; u# m. w4 ^4 \
相关帖子
6 N* o4 r. N5 u/ P+ A/ l  _金发美女正式版的解包和打包工具
4 z+ N" K- f1 chttps://www.chinaavg.com/read.php?tid=21364 , ]( T3 C3 e/ p. M% t8 ?% C
细节大致如下( W# _0 i, E4 L" [! c
.TOC 存放了SIZE和OFFSET,.DIR存放了文件名OFFSET和文件名。
6 U& H, g' j* i8 u% d+ L工具大致用法如下$ e" V) o4 B* z4 J% d; W; f
pack.exe filelist.txt foldername5 f; m$ I( |* |% C! [
filelist.txt里存放了修改后的文件列表,foldername是修改后的文件保存目录。6 H& X8 Q* a- k) a
pack.exe把文件列表的文件逐个加入到.DAT的尾部,并修改.TOC,.DIR,使游戏找到我们修改后的文件。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

使用道具 举报

板凳
发表于 2010-4-20 01:17 | 只看该作者
.DIR和.TOC的格式不是很明白
7 Q0 [: e+ @3 }% K是怎么对应SOBLOND.DAT的啊
; C# P4 U1 Z/ H" V8 L( g能不能再详细得说一下这两个文件是怎么表示offset,和size的吗
9 p1 O4 A9 t5 b3 z$ S2 W我现在在想的步骤是:7 K$ E5 T) w# M2 h) ]
1) 从DIR里读取文件名,获取他们的索引(1,2,3,4....)6 }2 `: M  s# {7 U1 I5 S; _
2) 再通过索引和文件名和filelist.txt对比找到相应的.TOC和.DIR数据修改- f: w( x" q5 G, a
3) 写入.dat
# U  B2 p) E' x' ]
( H% A0 @6 Z  ~0 I嗯,不过还是请解释一下.DIR和.TOC
. j* e, l1 O, U! Z! {我可以先写个读取文件名找索引的,然后和file.txt比较然后再来写入
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-4-20 07:58 | 只看该作者
open FDDE DIR 1$ M1 n6 @9 n, z7 X
open FDDE TOC 22 h& n8 t& P! R* k6 R
do   H5 X4 c" ]: D5 h8 y& `0 E
    getdstring CHUNK 4 27 P. a. A/ c( d" P5 b* [# T
    get DUNNO long 2. y% E5 m( f% E- a4 J3 c
    get DUNNO long 2
6 C3 V* b* |* R# [3 z& M1 s  e- m    get FILES long 2: T) `( i" ~5 x1 V$ y; y
    get DUNNO long 2
* H8 k0 e& L$ X, W    get DUNNO long 21 _/ |7 B* ~& T7 M( T( X! Q! E
    get DUNNO long 2( y0 V+ Z' ^& e9 j& i  {) W
    get DUNNO long 2' ?" w: a# Q$ ^
while CHUNK != "REST"
) v9 |7 f& |* {: r' e6 f. n' csavepos NAMEPTR 1
- e( H4 E8 h8 c% |for i = 1 to FILES& J/ N6 |/ i, G2 C4 U8 h; x  D
    get DUNNO long 2
! o1 M" c1 W3 D" a    get SIZE long 23 [8 G" ^4 ]7 K/ d4 O+ L! [# w3 {
    math SIZE >>= 2
/ ?+ Y) x1 w, H) c2 F4 X    get OFFSET long 2
$ e9 T; V; P7 m: L; w6 e4 b3 O    goto NAMEPTR 1/ G) `4 M! r7 W6 j) p
    get NAMEOFF long 12 b* }9 q/ @) H- L/ v
    savepos NAMEPTR 1
# }! @6 q% I2 @+ g8 C% J2 p! _    goto NAMEOFF 1& y% D' s, L( e% G9 n
    get NAME string 1
5 \5 j0 Q- K5 V  `1 L; B4 ^) K    log NAME OFFSET SIZE4 z9 g7 N, b0 x2 H" E6 k% r
next i
5 s" l3 s; A) T, D! b! h% H* l
! A* |. R1 R1 _% }5 o3 G& A2 V7 b5 T7 W! A
这是解包器
8 e5 W1 t+ I' P. g( j' M. J4 t
# a! L# K' w5 N2 j( q9 Afor 里面读取toc的部分,long就是4个字节5 z2 C& ~: e# d$ H5 U+ ]- X1 e& @
  get DUNNO long 2
* S7 y. @0 o* ]    get SIZE long 23 Z# o0 z& C, n
    math SIZE >>= 27 g4 w) B# l; s
    get OFFSET long 2$ S$ h4 c, |6 \1 \# L
3 J) G+ r1 P* a3 \7 U
for 里面读取dir的部分,long就是4个字节+ S; T& O1 {( Q
    goto NAMEPTR 1
5 F& o: v: C4 Y" S  R    get NAMEOFF long 1
  D. k0 R" B* X8 L    savepos NAMEPTR 1% M/ H8 X8 _; s: Q
    goto NAMEOFF 1
: l. U; @7 Y2 r7 L    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 | 只看该作者
我来详细解释一下,
1 q( s6 X' U$ T2 b6 ]( b4 j$ aopen FDDE DIR 1 4 R' s# D5 o, |8 u" J
open FDDE TOC 2
6 A8 O, T# S& f相当于打开2个文件,后面的1,2相当于句柄
- ]  w6 W5 w$ m1 x& |2 z5 V% t6 \( W  F2 I
do( x; s8 S1 m4 S( ?
    getdstring CHUNK 4 2
' j& b- }' T+ H5 P6 N' D" k) X! h    get DUNNO long 2
. f" \4 t" b% _4 `    get DUNNO long 2  ' j% D4 m, t. |" y9 t
    get FILES long 2 # V5 k6 w: R2 w8 s6 Q9 N3 N  u
    get DUNNO long 2 0 o3 r  G. N1 [% |; H) u; p  Z. D1 N
    get DUNNO long 2
1 n' |) j. w% R4 x    get DUNNO long 2
' j$ m6 u& p3 n. }' H& i- G    get DUNNO long 2
" x; E2 C* K( \while CHUNK != "REST"
  B4 ?  b) ]9 h) T1 e/ P  `' g% }* T: v9 ^  z0 a
这段主要是打开TOC ,读取文件数FILES 。
4 C& }" q2 E8 X  v. u你算算FILES 就能分析出是BE还是LE的。, m- t- f2 W" L) J5 }

* a$ @) B! ^: @; z# E/ q! \后面2段是! g4 [7 C& x3 j% K
读取toc里面的每个文件的SIZE ,offset8 k% z0 r! ]4 f) g
读取dir里面的每个文件的NAMEOFF ,NAME
5 Q/ Q; u4 m4 N5 W# z1 b) T最后根据每个文件的SIZE ,offset,NAME到dat里面把每个文件切出来。* d- Z- S; |3 S0 a3 W* n( i# a

4 C, k4 ?# n. N7 C该明白了吧?
回复 支持 反对

使用道具 举报

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

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