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

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

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

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

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

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

scgame) c$ Q" B% u7 |5 t
8 U+ Y' E! G6 ?) Q  l, ^, i
你好,请在完成前一个小任务以后,抽时间完成一下这个金发美女的懒汉打包工具。0 ^) S7 {5 X; D, G- d
请先看一下下面这个帖子) D2 s. D. S5 E7 [3 o2 U9 N
【神秘岛4汉化项目】懒汉式打包新方法
: E# B, I7 ]* Z- k) z, `https://www.chinaavg.com/read.php?tid=19892&keyword=%C0%C1%BA%BA
6 N! w7 }& c) j9 k# h0 j1 A相关帖子
8 _( A+ I# l. S金发美女正式版的解包和打包工具
3 U6 r* O4 A7 Z1 Ehttps://www.chinaavg.com/read.php?tid=21364 0 M( r, f( [3 R* a# B
细节大致如下
4 R$ L6 l$ a5 |/ R( ]! S  E.TOC 存放了SIZE和OFFSET,.DIR存放了文件名OFFSET和文件名。
: f: u% v3 R+ N  @- p工具大致用法如下
3 c3 j* o" N* Opack.exe filelist.txt foldername
' L3 O$ d: A0 r/ Hfilelist.txt里存放了修改后的文件列表,foldername是修改后的文件保存目录。
, }) n( L( g' M2 {5 \7 @. d; Rpack.exe把文件列表的文件逐个加入到.DAT的尾部,并修改.TOC,.DIR,使游戏找到我们修改后的文件。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

使用道具 举报

板凳
发表于 2010-4-20 01:17 | 只看该作者
.DIR和.TOC的格式不是很明白
0 i- U5 n* A, o( P是怎么对应SOBLOND.DAT的啊
/ @  D! R6 t8 S! d; w  t" O) s能不能再详细得说一下这两个文件是怎么表示offset,和size的吗/ N" G$ Z$ S  F1 P. o3 g0 N3 I
我现在在想的步骤是:
# d7 x. B' b% u/ \4 F6 I1) 从DIR里读取文件名,获取他们的索引(1,2,3,4....)4 {0 w1 P4 f5 D! X! M
2) 再通过索引和文件名和filelist.txt对比找到相应的.TOC和.DIR数据修改
& J* C# B0 h3 I' J  u$ W) R3) 写入.dat8 C% l8 d1 o6 g3 V7 P

& w5 S& }% @2 _3 m嗯,不过还是请解释一下.DIR和.TOC- I/ O6 h$ ~/ C
我可以先写个读取文件名找索引的,然后和file.txt比较然后再来写入
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-4-20 07:58 | 只看该作者
open FDDE DIR 15 ]4 n' J4 J  h' m6 j
open FDDE TOC 2; _1 m0 I( Y+ P: \7 f( Q$ x' _
do
  ~, u8 _- f* B3 I4 P+ f    getdstring CHUNK 4 20 U* A% J- p8 N6 }
    get DUNNO long 2
+ Y7 I# `- z- B" L1 h6 d9 }6 m    get DUNNO long 2
* Z5 J5 ]7 c: H7 l- q    get FILES long 2
, A. _: B7 k/ H    get DUNNO long 2
% l. s2 A" G  K4 q' D3 V; c  F8 c    get DUNNO long 2/ f0 Q! {6 _# J
    get DUNNO long 2
% {* s; s8 [# {/ Q, e. N    get DUNNO long 2
" a* p1 k1 }. Lwhile CHUNK != "REST"
: y! Q1 T' `. o" R2 r$ O9 Csavepos NAMEPTR 1
+ ~  |& i! E. I1 {. H; nfor i = 1 to FILES; l! c0 _  E4 ^: P: ?' D
    get DUNNO long 2
% c$ Y3 G  l+ e+ B2 a    get SIZE long 2
" o2 Y& F. @; Y% F- _' K) g: j$ Y    math SIZE >>= 25 ^1 p6 V% N6 q! [) d7 c* X
    get OFFSET long 2
& M' A" g# g3 e+ e2 t- `    goto NAMEPTR 1
, R* c/ Z! b  d% d    get NAMEOFF long 17 U! O9 y" \# J; `& I2 ^+ L$ f
    savepos NAMEPTR 1
% H% L# J1 j( i! k% B, w- U    goto NAMEOFF 1
3 }: x$ L0 }* ]- E. E5 e' E3 G) k    get NAME string 1
0 t$ w% o( }0 ]    log NAME OFFSET SIZE% L( y  f8 S: H( v
next i; _0 J$ B  V0 a8 _

: _# E+ Z2 ^2 c/ b  J" q# M+ V: d" n* F( h$ m  G
这是解包器
. Y/ Q( [) G* T2 S; Y4 J5 |9 o: _7 x2 H% p1 s
for 里面读取toc的部分,long就是4个字节0 P/ h' h7 j2 h( G8 ]5 M# d
  get DUNNO long 29 `) H3 j8 t* R* y
    get SIZE long 2
$ b# N" K& `. {; R4 i2 @$ ]5 s    math SIZE >>= 2
5 z- g* a+ f4 _. k    get OFFSET long 2
; d" k$ i( E  F2 p6 _( K* H2 }5 G  G7 s5 Y7 N9 d
for 里面读取dir的部分,long就是4个字节
4 g6 y1 `- t# D9 }    goto NAMEPTR 1) J( N- A" d! c' h  T9 {
    get NAMEOFF long 1% l. ?5 P% {9 b6 {$ Q$ M+ o
    savepos NAMEPTR 1
. r" D3 `+ T' I7 H( C    goto NAMEOFF 1
8 S0 w0 F8 @( O) H3 x; c    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 | 只看该作者
我来详细解释一下,; E; O+ x: I, O: Q! y
open FDDE DIR 1 4 y/ V3 u% p9 p/ M
open FDDE TOC 2
( x1 A1 X. t) [' e  N+ Q相当于打开2个文件,后面的1,2相当于句柄: f  H  s6 i% o( Y( U  X6 d
9 O  @5 w+ \: Y# `
do
. S1 x! B1 d- ]& H* K( c    getdstring CHUNK 4 2
$ C5 ^6 b, O6 u3 d8 U    get DUNNO long 2
% v' \6 \0 \  E    get DUNNO long 2  , A" V4 c& H9 T/ i
    get FILES long 2 % j* c# @, L& y. m& q- K
    get DUNNO long 2
0 @; a, s- h# S' r. j, u, V& p    get DUNNO long 2 3 Q% v; y) e3 z; I- \; Y7 b
    get DUNNO long 2
2 c- R$ n& \0 W( ^    get DUNNO long 2 / W, A! ^7 q& ~7 f
while CHUNK != "REST"2 B& f; V1 s! `# B" e' G- e

. O" P4 v' I2 z' e) I& W这段主要是打开TOC ,读取文件数FILES 。/ ?1 w+ a% f) u& Q5 D  x
你算算FILES 就能分析出是BE还是LE的。4 f" E% _' {8 d: ?7 U

5 O8 o( y4 Q/ v0 q; m# f5 J& }% A后面2段是
# `9 ]/ s$ S) m- Q. ^' z读取toc里面的每个文件的SIZE ,offset
$ g2 i3 n! I! z9 K" X- s* S+ K读取dir里面的每个文件的NAMEOFF ,NAME
- t5 B) ?) u( U$ s8 O8 f最后根据每个文件的SIZE ,offset,NAME到dat里面把每个文件切出来。
! _$ J8 a( S$ H; {) ~, p4 J+ I
+ V( l4 `& t$ |该明白了吧?
回复 支持 反对

使用道具 举报

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

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