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

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

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

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

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

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

scgame
4 f- R4 V6 A- q
3 A5 Z% Z# D, X' u9 t你好,请在完成前一个小任务以后,抽时间完成一下这个金发美女的懒汉打包工具。+ b% W( F6 {) @
请先看一下下面这个帖子6 A7 S/ ^) |' C3 J) w- D! _
【神秘岛4汉化项目】懒汉式打包新方法
0 r9 S* [) [: b) J! D% d* lhttps://www.chinaavg.com/read.php?tid=19892&keyword=%C0%C1%BA%BA/ Q4 }' g/ J6 ?! X6 f& \
相关帖子* S! p5 K, J3 G& R, l7 t) H( r
金发美女正式版的解包和打包工具
  b, J, k5 E1 j: L+ c8 mhttps://www.chinaavg.com/read.php?tid=21364
8 H, n0 a# t( b/ T7 m细节大致如下2 l- U- x& y4 D0 K% a8 C: @# T
.TOC 存放了SIZE和OFFSET,.DIR存放了文件名OFFSET和文件名。
! n: F5 r6 L6 @, f工具大致用法如下
' q1 ~* d6 A2 O1 rpack.exe filelist.txt foldername8 ]+ x! q3 O8 P* \! H6 ?
filelist.txt里存放了修改后的文件列表,foldername是修改后的文件保存目录。
& g% n7 t- v7 h1 L' s  e3 Q( Opack.exe把文件列表的文件逐个加入到.DAT的尾部,并修改.TOC,.DIR,使游戏找到我们修改后的文件。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

使用道具 举报

板凳
发表于 2010-4-20 01:17 | 只看该作者
.DIR和.TOC的格式不是很明白
6 S, O3 e& [- A4 D# ^是怎么对应SOBLOND.DAT的啊
7 u. F# F+ c. ^0 Y; x6 m1 u能不能再详细得说一下这两个文件是怎么表示offset,和size的吗2 j& t; Z# b# o2 p; v4 i0 _" N1 S
我现在在想的步骤是:
, Q7 u2 ~% Q1 T  d5 q7 A$ `7 K# u1) 从DIR里读取文件名,获取他们的索引(1,2,3,4....)# w9 `% k/ d' q  i7 X' S- T( ~: H( W
2) 再通过索引和文件名和filelist.txt对比找到相应的.TOC和.DIR数据修改" p1 j) {* Q+ |9 }6 H& D9 w8 f
3) 写入.dat6 w5 J: [/ d5 L
# H0 t# `6 J% }7 j
嗯,不过还是请解释一下.DIR和.TOC
' v& ~0 J+ f) z9 q/ W5 g1 K" j+ X" s; C我可以先写个读取文件名找索引的,然后和file.txt比较然后再来写入
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-4-20 07:58 | 只看该作者
open FDDE DIR 1
+ B/ \; W! R6 i8 o/ Nopen FDDE TOC 2
8 @# t' A' w1 s3 Qdo ' c% B0 l4 C+ R7 B9 F* E
    getdstring CHUNK 4 2
, a% x1 K- t# Q" e( D) H    get DUNNO long 2" ^, S5 B# b8 e* L. w
    get DUNNO long 23 ?" G7 @0 a9 I* m8 k) B
    get FILES long 2
  p( W* t% e7 e* |$ b/ d( z    get DUNNO long 2
0 Q) {; r1 k& t1 p    get DUNNO long 2
  H( w. S. b2 [$ q! S6 n) L2 ~4 z$ K    get DUNNO long 2
$ }  g5 E) g! ^+ a) Y/ s) s    get DUNNO long 2
7 L" ~9 ?! t8 M3 fwhile CHUNK != "REST"* b3 A, v0 y2 t# n+ N  Q
savepos NAMEPTR 1
) b5 F: j2 x# X$ mfor i = 1 to FILES, J7 S! ~- Z) o- Z' @
    get DUNNO long 2- _9 _- g9 G( I+ E1 s
    get SIZE long 2
9 X3 T0 a8 f0 A; i' Y/ W    math SIZE >>= 23 R6 y  ~4 V  G& w% {, X" `
    get OFFSET long 2
4 y) }6 d; L* Y+ \    goto NAMEPTR 1: C! N- D' r. R' A
    get NAMEOFF long 1( ?8 `& R6 S: x" n
    savepos NAMEPTR 1' r- r* |7 |9 ~; [; I7 K0 B- _* ]# D
    goto NAMEOFF 11 j( ^) N( h: Z
    get NAME string 1, I" D. j; x  f6 ]. b( H
    log NAME OFFSET SIZE1 d8 \$ t& ?" n5 q. Y+ X
next i  [' s, j# j9 l
' K0 Y" n; g/ \

! ?/ }8 {0 q( K$ B这是解包器0 D) O# a, N" K/ i

+ A. E5 W% H5 p$ g+ L. \: ~4 hfor 里面读取toc的部分,long就是4个字节7 H1 w  I+ _7 y' o
  get DUNNO long 25 x# e% O; K9 T$ i
    get SIZE long 2
& k, N1 Q6 V/ ^' y: w    math SIZE >>= 22 }. K+ g8 L0 e
    get OFFSET long 2
$ r" d+ @2 `5 |" a3 v. i% M; {3 m& Z# G, Y* Z# [" o
for 里面读取dir的部分,long就是4个字节
0 }4 }- s9 |% L: H; b& N    goto NAMEPTR 1
6 G% u# l5 F, Z* a    get NAMEOFF long 1
3 |  a& u8 R/ P+ V6 X    savepos NAMEPTR 1
% n, A! C( Z$ ]5 _1 B6 G) E    goto NAMEOFF 1
+ I. r% y) g: {: J* Y  h7 h    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 | 只看该作者
我来详细解释一下,
7 B. @2 w1 F" K: [+ |/ ~8 t' Kopen FDDE DIR 1
5 a# b  F5 z+ ^7 L6 p, V( Xopen FDDE TOC 2 ' n% O9 g6 x" {, }' T1 C8 u0 Y
相当于打开2个文件,后面的1,2相当于句柄9 ]: T# `$ j# Q  G) j$ X
- ~7 o# q7 M4 v5 k2 r; `- Q9 N
do! v. B2 M1 E" m/ l' }& V
    getdstring CHUNK 4 2( |3 y, `) x( D( L. e3 z: \
    get DUNNO long 2 6 ~9 H3 G2 }) ~  d0 u
    get DUNNO long 2  
9 L9 w3 m$ O4 m6 g3 X$ N    get FILES long 2 ( h& |- ^5 F: T) `. x
    get DUNNO long 2 ; R* f6 l: |1 B% T
    get DUNNO long 2 & I0 A9 R4 S+ ^8 [& e! U
    get DUNNO long 2
4 X7 p: }5 Q, L2 C    get DUNNO long 2
$ ~9 I& l5 O# r% M0 Twhile CHUNK != "REST"
" A0 m- l% ^( a7 ?5 ^3 ^4 k6 i8 V# C7 i* r' E. J+ X- L0 T' T
这段主要是打开TOC ,读取文件数FILES 。, p0 F9 @$ ~, {' |5 z
你算算FILES 就能分析出是BE还是LE的。/ ?+ p6 G5 t4 v, M* d; O
% o) E& S1 q6 n5 u  \
后面2段是* H" @0 _4 x2 L
读取toc里面的每个文件的SIZE ,offset9 C- t& \/ D% S9 q, ^4 J
读取dir里面的每个文件的NAMEOFF ,NAME0 I) r$ h! S& B/ T
最后根据每个文件的SIZE ,offset,NAME到dat里面把每个文件切出来。
4 O. d. R$ M2 o0 y+ g8 c) s  R
" M9 `1 |# U9 D1 z该明白了吧?
回复 支持 反对

使用道具 举报

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

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