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

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

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

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

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

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

scgame
- B- ^) }0 G' k: ~) E) Q0 E/ q1 w
. b" _( O% p: t7 f# m  }/ |& b你好,请在完成前一个小任务以后,抽时间完成一下这个金发美女的懒汉打包工具。3 G( X" |' V. z3 K$ a+ W5 s# o
请先看一下下面这个帖子
& k( x) A! \4 F+ p) V( k$ B【神秘岛4汉化项目】懒汉式打包新方法
8 Z7 v  m' \$ ]- \  s) Ahttps://www.chinaavg.com/read.php?tid=19892&keyword=%C0%C1%BA%BA% x) A( T" D4 [9 U" ?& |
相关帖子
% W" T0 p( t  U金发美女正式版的解包和打包工具
5 }8 c# D/ w3 ~: F( ^5 rhttps://www.chinaavg.com/read.php?tid=21364
$ |* v7 c3 C/ v  s细节大致如下
9 d  N; k/ o' \) @7 v# ~7 U. R3 X4 q, F.TOC 存放了SIZE和OFFSET,.DIR存放了文件名OFFSET和文件名。' I; Z: h0 L+ ~# z/ V6 \2 c& i
工具大致用法如下
- L0 c  a* q- S! Wpack.exe filelist.txt foldername; N. Z4 _" r1 ?' y
filelist.txt里存放了修改后的文件列表,foldername是修改后的文件保存目录。
, H2 B6 f$ I. w# s' _, \# C6 S4 Opack.exe把文件列表的文件逐个加入到.DAT的尾部,并修改.TOC,.DIR,使游戏找到我们修改后的文件。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

使用道具 举报

板凳
发表于 2010-4-20 01:17 | 只看该作者
.DIR和.TOC的格式不是很明白
7 c' d+ |0 z  \  Z% D: b是怎么对应SOBLOND.DAT的啊" h6 A3 S# K& K; X* d' v
能不能再详细得说一下这两个文件是怎么表示offset,和size的吗: j0 r9 O- p. y
我现在在想的步骤是:
. k' l1 I! ~/ Q1) 从DIR里读取文件名,获取他们的索引(1,2,3,4....)
- d6 b6 m  U* Y! [" }; ^3 M$ y7 w" Y2) 再通过索引和文件名和filelist.txt对比找到相应的.TOC和.DIR数据修改8 L, V1 I  Y4 t( D
3) 写入.dat
3 @  ]- u) X3 C& |+ b
+ b, `3 n" |  j' `' w$ m嗯,不过还是请解释一下.DIR和.TOC8 O, A% G9 Z9 J9 ?% o: |
我可以先写个读取文件名找索引的,然后和file.txt比较然后再来写入
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-4-20 07:58 | 只看该作者
open FDDE DIR 1+ x. u& @  @# U5 u
open FDDE TOC 24 B* r' n. Y! P( J
do 5 x' a; v$ m. U9 D4 |+ y% l5 [7 |
    getdstring CHUNK 4 2) f; m" P5 X2 D, |$ S
    get DUNNO long 2
7 T) `- ^5 L3 v& D% t    get DUNNO long 21 a9 j5 b" }/ z
    get FILES long 2
: k  Y1 Q# i& |) B- }    get DUNNO long 26 d. r  ?6 M: ~
    get DUNNO long 2: e( Z" W9 R8 a( }2 f
    get DUNNO long 28 X& Z; l. R* E& W+ a- l
    get DUNNO long 2
* \. u+ I2 W, L/ Jwhile CHUNK != "REST"& |. x$ ~9 S% h+ }4 K& y# B
savepos NAMEPTR 1
8 l6 q/ Z! A6 P& J% R0 V2 R1 Wfor i = 1 to FILES$ w  t) `4 q, d! I' Y+ L
    get DUNNO long 2. G, e0 P( s, i# m  R
    get SIZE long 2
  P0 Y6 i% m4 h. m    math SIZE >>= 29 \1 X1 _; x% p! i3 k& j
    get OFFSET long 2& G- N8 _* M# ]6 I9 x9 k
    goto NAMEPTR 13 N+ S2 Q, {3 y) i0 [/ u2 `
    get NAMEOFF long 1
* F9 n, k6 R: t    savepos NAMEPTR 18 G8 Q5 w  u6 s  [( L: {# @
    goto NAMEOFF 1
$ F- d' J) ]0 D    get NAME string 1# O5 D5 k& V- R  R& p& o' y6 B
    log NAME OFFSET SIZE
6 s2 F3 @$ N, G4 q8 y# q1 jnext i
/ |6 ^) A4 A# P& @+ d: n$ M0 G: Z6 w. L) d- g, e; M

' G/ l% ]$ n4 g; c/ U* I2 d! P这是解包器1 U. u. o" ~3 H8 K* _! A/ C

# E0 K2 ~! P) {8 N1 mfor 里面读取toc的部分,long就是4个字节
% q' w  H$ H9 `8 L  C  get DUNNO long 2
$ t. P/ U8 E+ q0 ]2 r; `5 |3 w; s    get SIZE long 2
2 y( z" i, X7 [, |8 Z# Q    math SIZE >>= 2  |/ R/ K% u+ A1 E8 a. j
    get OFFSET long 2$ {' g+ {8 V/ S) R
/ w( [6 e1 I. r4 ^
for 里面读取dir的部分,long就是4个字节! t, O) z+ F  R  N1 p" P( c; s
    goto NAMEPTR 1
: h  o' g* q+ Y/ ^' k  A& e0 {2 K* |    get NAMEOFF long 1% Y. |) D. q1 Q  V# Y
    savepos NAMEPTR 1. c$ A& h2 y' N0 H' a3 b8 D% r$ X
    goto NAMEOFF 18 n1 M- U6 v, L  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 | 只看该作者
我来详细解释一下,
. k# M4 D1 h* h- [$ o. }. mopen FDDE DIR 1
* J4 f) W6 \+ c8 e0 X* Zopen FDDE TOC 2
0 ^7 O7 ]0 Y0 U" {3 Q2 v相当于打开2个文件,后面的1,2相当于句柄5 t2 F7 s/ e, I! p( L: `, i6 ~

6 I- i8 q' @8 S, o- @. Ado
6 w0 ~. W3 B7 `: ]; _( {* _- |    getdstring CHUNK 4 23 c/ a" P! t! a# Q2 y/ ~
    get DUNNO long 2 9 Z3 R# w# W- j! b
    get DUNNO long 2  
7 N2 r6 \6 n; H5 b( _7 B5 l! c& c5 F    get FILES long 2 ; T( s' g4 @/ K
    get DUNNO long 2
+ f3 [% ^: h5 F& T! B! r# G% e0 G7 n    get DUNNO long 2 * h: F1 k0 P; m" e" n! G2 j3 i# \
    get DUNNO long 2   B' n. X, e. g8 D
    get DUNNO long 2
. Q* }& L5 B% @; C* @5 vwhile CHUNK != "REST"# H- ?* l2 f$ m8 W" }! T

+ P" O: g3 O* S: D这段主要是打开TOC ,读取文件数FILES 。
! t2 y4 @" n7 d4 a" W( X8 W& J你算算FILES 就能分析出是BE还是LE的。, J# |- {( i% f/ w, V

- T& `/ q& @6 w' M后面2段是5 ^6 a1 f: Z2 R
读取toc里面的每个文件的SIZE ,offset
. Q4 m" B- ]% D/ c3 e读取dir里面的每个文件的NAMEOFF ,NAME+ S3 R" ~! C5 O4 n4 m4 P- A
最后根据每个文件的SIZE ,offset,NAME到dat里面把每个文件切出来。
( b$ u' [0 }0 G! b* G  X, s3 P0 L* U$ Z+ u: j4 W
该明白了吧?
回复 支持 反对

使用道具 举报

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

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