冒险解谜游戏中文网 ChinaAVG

标题: 【汉化任务简报】#2  倒霉蛋约翰的苦日子的text.db分解合并工具(细节公布) [打印本页]

作者: shane007    时间: 2009-3-19 23:03
标题: 【汉化任务简报】#2  倒霉蛋约翰的苦日子的text.db分解合并工具(细节公布
相关帖子在这里 7 [1 K/ Z1 h" f  \; C0 g$ f: i
https://www.chinaavg.com/read.php?tid=15444
, S- {" P2 _! f1 T9 A
4 i  t4 @2 f& g1 r7 Z: D. H! b------------------------------------------ - z6 ?) }8 j8 Q# V6 f
2009.3.21 更新 7 [/ @, K0 S+ E
) B! q- v$ r1 U) z5 m; u
现在公布具体细节。
# i0 Y# w4 u& p7 |
这个工具可以被倒霉约翰,古卡,死亡象征3个游戏通用。
先找一下相关帖子 0 W$ |  o, U2 o1 ?
" F3 a5 c. Y- x3 _" o, t2 Z
1。用解包器解包
( u1 n9 s$ B) _2。文本在text.db文件里,格式大致如下
, d: B1 T0 M7 B8 m# v' B
+ ~* L* X  d8 l$ o& A
文件头
文件体
  以下是一个结构体
    信息头 6字节(记录了文本串的字节数)
    OGG文件路径名
    文本串
文件尾

1 H! H, [5 U" q0 m- |( ]: {& {* `/ f& E' B
本工具就是要把文件体给一个一个切割出来,再组装回去。 9 _8 N! r* m4 B5 a* s
6 \2 z6 I7 L) z# I
基本设计如下,以命令行程序为例,要GUI的话可以灵活修改。
+ I( j2 X$ Q: e+ x4 h! ~9 @0 p+ c' W0 t9 q" R) W
分割器 split.exe
- v( m( |3 `  s0 d0 R
把text.db切割为
; u: `2 G& D# l$ `6 vhead.bin,1.bin,1.txt,2.bin2.txt....foot.bin
: y( N: _$ j  P% J1.bin,2.bin..里记录信息头 & o0 ~) |" r0 y, p
1.txt,2.txt...里记录文本串 . @  M$ \# S& ^: T: C( n

" z, \, ~2 R- K9 h) P$ n% e
合并器 join.exe
把修改后的head.bin,1.bin,1.txt,2.bin2.txt....foot.bin合并为text.db
* \  u# h7 B: b' r  f+ p注意修改信息头的文件字节数
) [( D9 ~  Y0 x4 e注意修改后的1.txt,2.txt...里有上下2行,上英语,下中文,要取下面1行
* ~: A7 b3 [" k* {: K4 A3 u7 e7 p7 k3 p/ u
+ t4 f; y0 W7 ]工具开发小组的朋友积极参加吧,没有时间限制。
9 E+ M, w( A7 J& b0 @希望互相探讨,有问题发帖子问吧。
* M5 `" B+ y& U) X( h0 e% U[attach]12404[/attach]
作者: soring123    时间: 2009-3-19 23:05
明白啊 明天我要去厦门玩了 下周看
作者: shane007    时间: 2009-3-19 23:09
引用第1楼soring123于2009-03-19 23:05发表的  :& o% V, o0 p  l( g
明白啊 明天我要去厦门玩了 下周看

( {8 s! ?/ N+ k1 l恩,回来后应该就可以开工了。
作者: shane007    时间: 2009-3-21 10:10
2009.3.21 更新
作者: soring123    时间: 2009-3-26 19:47
谢谢yaozheng 我等你好消息
作者: shane007    时间: 2009-3-26 19:51
引用第4楼soring123于2009-03-26 19:47发表的  :( x& @  b4 X( H0 p0 r6 ]
谢谢yaozheng 我等你好消息

5 W8 m5 s% i" g" |/ Y1 p换人了。
/ o8 {) r, |6 g. T) ?联络不到yaozheng ,换warwar上了。
作者: soring123    时间: 2009-3-26 19:54
呃。。。。。。 谢谢warwar 我等你们好消息
作者: warwar    时间: 2009-3-27 20:43
解包已经做完了,正在测试
作者: shane007    时间: 2009-3-27 20:58
引用第7楼warwar于2009-03-27 20:43发表的  :
$ B4 D: m- S& w% }( d解包已经做完了,正在测试

, c" p! m* z' w+ `辛苦了,这次不是用vba吧
作者: warwar    时间: 2009-3-27 21:54
嘿嘿,还是VBA
作者: warwar    时间: 2009-3-27 23:07
解出了三个文件 不是用 01000000 作为 信息头的( X0 Q6 I# z1 v7 @
007帮忙看看
作者: xia120    时间: 2009-3-29 16:07
能把程序代码发出来看看吗?
作者: shane007    时间: 2009-3-29 20:05
引用第10楼warwar于2009-03-27 23:07发表的  :
  H* S- f' m. H" U: f; y6 G1 c解出了三个文件 不是用 01000000 作为 信息头的8 O0 ]; |0 x2 k" `
007帮忙看看

" \; A0 q7 `1 b" a刚看到你这帖子。
4 }0 a9 q' r0 R4 \1 x* O6 ~能详细说明一下你遇到的问题吗?
/ Y) H2 J# q4 O% w0 @: @7 w) P
% H, e/ w9 f; ]0 l, p我觉得你好像还没有领会题目的意思啊?
) f! x$ H% y  [3 A6 l( u# X6 r* t你是否理解了编这个工具的目的究竟是什么?
作者: warwar    时间: 2009-3-29 21:43
根据特征码进行拆包
7 p, B# I; C$ h4 G* T( r1 b5 A# e) Z4 m# G1 F7 ?6 w
大部分的文件都是用 0100 0000 (2个字节) 作为文件头信息的,但是有些文件不是以0100 0000 作为头信息,附图。
2 Z5 z% t. l; E' B/ U" E- R0 x2 V+ F" [/ W

作者: shane007    时间: 2009-3-29 22:22
我总结一下
* s2 Z& y# x( m7 x4 Q
* f3 b9 D" X% f5 O大多数的信息头是 01 00 00 00 XX 00  6个字节- o; s9 z7 O( D) l* a: p
其中XX纪录了文字串的字符数,由于用unicode双字节保存,字符数*2 就是字节数。7 F# K% D' u# b- N& p& S* I# X% n

- i2 X3 ^" ?) O现在问题是发现有几个格式不同, M/ [& @( f& |: f+ w! \
不同的格式为2f 00 XX 00 以4个字节作为信息头9 Q) c* M5 \) b' U" U
对吧?
) w- @# x. `) G, y
2 z, ^+ ?" X+ `- ?# U这些块暂时作为特殊块完整地切出来吧。
; r$ i- N/ A8 \; Z# O/ }6 g对了,.ogg文件名前面有些字节不知道是什么意义?/ ?# y8 _% n0 X/ z) J3 m8 Q3 j
我担心打包回去后会出错。试了再说吧。
作者: warwar    时间: 2009-3-30 08:28
格式不同的 文件 ,并不都是以2F开头的4个字节,而且还挺多。具体你看看RAR文件中的761.bin
! b' `; E; [9 E9 |% Q4 {) h% b5 U" j' \6 ^& E

7 w2 L7 ~4 [( Z: R2 W5 [
. a; c) |6 B" F- n( X# fogg文件名前面有些字节,我怀疑是游戏中的地址之类的东西。
$ e; \' v1 }! F/ f9 u; y' t
, h5 Z  V( Z! `5 U如果打包,应该还要再弄回去。
作者: shane007    时间: 2009-3-30 21:13
你想办法把01 00 00 00 XX 00   形式的信息头后面的字符串切出来再打包回去就行。
作者: soring123    时间: 2009-4-12 18:22
谢谢啦 可以用




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2