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

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

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

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

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

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

scgame6 E& c5 r% j. y( P$ E# E  v
( r4 U3 S) P5 y3 e1 \; k
你好,请在完成前一个小任务以后,抽时间完成一下这个金发美女的懒汉打包工具。
3 {" B3 C8 R" [, N0 _请先看一下下面这个帖子
% N/ E6 y3 d. |# s$ j. A1 Y【神秘岛4汉化项目】懒汉式打包新方法 , h7 o7 {8 y. U  w& U
https://www.chinaavg.com/read.php?tid=19892&keyword=%C0%C1%BA%BA
6 c! C2 g8 K6 `" ~( Y0 J相关帖子
2 c2 q9 L0 E6 M$ O, L/ p1 q+ ]$ W金发美女正式版的解包和打包工具
0 B6 V- |0 x+ r6 ~https://www.chinaavg.com/read.php?tid=21364
+ [) x& l7 f! g- H5 p& H; {细节大致如下7 m/ \5 }( G5 a4 q: o
.TOC 存放了SIZE和OFFSET,.DIR存放了文件名OFFSET和文件名。
/ O# [) X- w: ^+ Y) s0 L工具大致用法如下
( k$ l6 ]  C1 k6 ppack.exe filelist.txt foldername
: H% b2 V* |: \7 q( c- e+ M! ?+ Nfilelist.txt里存放了修改后的文件列表,foldername是修改后的文件保存目录。
8 ?6 t9 A7 H8 [( Ppack.exe把文件列表的文件逐个加入到.DAT的尾部,并修改.TOC,.DIR,使游戏找到我们修改后的文件。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

使用道具 举报

板凳
发表于 2010-4-20 01:17 | 只看该作者
.DIR和.TOC的格式不是很明白+ k2 G3 C: t8 C: P& ^/ L8 X0 o
是怎么对应SOBLOND.DAT的啊
( J' ?/ C, f# j4 x( e能不能再详细得说一下这两个文件是怎么表示offset,和size的吗( E, g7 e3 g7 L5 T
我现在在想的步骤是:
: I" N2 j  a, Q1 R$ u+ L5 W6 b1) 从DIR里读取文件名,获取他们的索引(1,2,3,4....)7 W4 H5 E( O6 l$ @' S
2) 再通过索引和文件名和filelist.txt对比找到相应的.TOC和.DIR数据修改
" q6 {5 o0 F7 s& T3) 写入.dat
5 u3 d! P4 \& f: B3 [1 f* m4 E5 w& ^- O. n
嗯,不过还是请解释一下.DIR和.TOC
# {) Y) z  v, i7 j* u' T9 r* M我可以先写个读取文件名找索引的,然后和file.txt比较然后再来写入
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-4-20 07:58 | 只看该作者
open FDDE DIR 1
5 x! Q- ?, g  f$ wopen FDDE TOC 2
$ o# A+ @: e4 z) Pdo
9 j/ k, W  m% q( ~4 U% i! |    getdstring CHUNK 4 2, T( Y; _7 L/ Y: f) C) q7 b$ E
    get DUNNO long 2! g8 ?: `5 a) G" T7 M
    get DUNNO long 26 u5 p! _) c7 N: k/ k4 M
    get FILES long 2$ _, ]! |% V- H
    get DUNNO long 25 q+ @$ A& ~3 u$ y* i$ X7 l6 ]
    get DUNNO long 2
2 g9 i3 z3 E( g6 l, q- x2 Z    get DUNNO long 2
& r3 \4 O9 @( \( ^4 r# D; a% N    get DUNNO long 25 F; C5 O# Y, L$ ^
while CHUNK != "REST"
/ @& M2 I6 d' H# z, u- P9 d, z- jsavepos NAMEPTR 1. R) _* T, }: x4 l: c
for i = 1 to FILES/ `8 r+ i9 ^" n! B# Z! v
    get DUNNO long 2
, `1 `- W! t# s" L/ I    get SIZE long 2
9 p- ?7 t$ k, {4 G/ E+ y    math SIZE >>= 2
+ ?% M' R1 u: L, g, R8 s    get OFFSET long 27 U& c, K$ a- c: k+ z
    goto NAMEPTR 1
; y, |9 V3 l% r' w. X    get NAMEOFF long 12 I4 U" {- F2 x0 ?/ M$ a1 _
    savepos NAMEPTR 1. m* W% y7 {7 I8 L
    goto NAMEOFF 11 S. c! _$ L% w3 E7 a- V2 J4 l
    get NAME string 17 }- G8 V6 l" w* C' {
    log NAME OFFSET SIZE
* Y* B; u' W7 a+ y0 Xnext i
* I( J- H: ?$ _1 g
# R2 `0 C$ A3 C7 y, }
  c5 s- x% v5 i: W这是解包器0 a) G/ @5 v1 v8 d3 e! R3 R
9 c/ d8 c& K" n% k1 E2 b6 i: w& \
for 里面读取toc的部分,long就是4个字节
0 {% s6 m+ @) o/ A. P5 R  get DUNNO long 2* d$ k, |( i; y4 |
    get SIZE long 2
# @& M' V; l- V( U8 p    math SIZE >>= 29 o9 i: z- c6 u, ]) q/ X# T
    get OFFSET long 2
1 z3 n1 f7 E: Y( k! p
/ M0 j! L; K$ _% M5 Hfor 里面读取dir的部分,long就是4个字节: g9 g2 L+ _4 q0 W, F
    goto NAMEPTR 1
; l- s% ?7 c7 t( [' G0 k3 o    get NAMEOFF long 1- E% d3 `) U' \# T9 Z% `5 C- L
    savepos NAMEPTR 1
/ x6 _6 e: O( I    goto NAMEOFF 11 g! U" `- w0 x
    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 | 只看该作者
我来详细解释一下,/ t+ O- G: ~, T- ]+ O# @! x% X" l
open FDDE DIR 1
5 Z( _% @' t7 _6 n: H* popen FDDE TOC 2
' I2 c4 _9 m& m$ g$ m, T: _相当于打开2个文件,后面的1,2相当于句柄
$ G/ v3 k3 J" a# u
9 T, D% k: f, xdo' V& T8 H9 J# z, B; |: r
    getdstring CHUNK 4 2
: v( o' _9 G$ z. o    get DUNNO long 2 : y* x$ l( }. q5 [
    get DUNNO long 2  " b0 f% i! o2 \, ~! D
    get FILES long 2 0 c# J/ P# L" G7 c3 i
    get DUNNO long 2 + @  C7 ?  S, i/ _8 d8 g
    get DUNNO long 2
: G: T- x+ p5 Q# e1 x2 {, c    get DUNNO long 2
7 q% I2 x; j$ _) z9 \$ M+ u    get DUNNO long 2 9 g% T- s+ ~. T% y1 ?* U- T9 ?
while CHUNK != "REST"6 j' r! ?0 [# n

7 t$ u7 e& e5 Z4 k9 W. C1 L这段主要是打开TOC ,读取文件数FILES 。! x' d5 _' H. F0 U
你算算FILES 就能分析出是BE还是LE的。
3 N3 J4 r! b( J, t0 J7 v3 \7 u$ I( M9 n  |* {
后面2段是' K  }  f0 m9 J0 p- @. J6 A/ o
读取toc里面的每个文件的SIZE ,offset$ H: r& D9 _- u; q: A) |  G" ]8 E) t
读取dir里面的每个文件的NAMEOFF ,NAME
0 e* {% ^: ^6 [) Q, K% r最后根据每个文件的SIZE ,offset,NAME到dat里面把每个文件切出来。
" u1 S9 C# @, u# ^1 V$ _+ n
$ p6 `) o8 W/ i该明白了吧?
回复 支持 反对

使用道具 举报

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

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