冒险解谜游戏中文网 ChinaAVG

标题: 魔法师西蒙5初步汉化分析(2010.2.28 第2次更新) [打印本页]

作者: shane007    时间: 2010-2-28 09:35
标题: 魔法师西蒙5初步汉化分析(2010.2.28 第2次更新)
最近看了一下魔法师西蒙5这个游戏,发现这个游戏也使用了Sqlite3来保存一些游戏数据。   i' \4 N# K! J6 @9 d9 r! w# ?
german.meta和resources.meta这2个文件都是Sqlite3格式的,我们可以用以下这个工具来打开修改。
4 i+ q6 G1 p8 Z& l; s6 k5 nhttps://www.chinaavg.com/read.php?tid=20557
& K1 Z  B$ k  p# n7 p1 Q& g& c其中的几个字段分别对应了包文件index,文件大小和文件在包文件中的偏移量,所以制作解包器应该很容易。 ) p7 b. o) {% Q; e
( r6 j7 H  \" N
在文件名表里面,我们发现了在python/目录下面有好多游戏的.py脚本,暂时还没有发现游戏的字幕。
. s2 F/ D/ y; M9 @0 |9 Z9 n我把python/adventure/dialog.py文件手工解了出来,让我们来看一下它头部的注释。
2 d9 |+ E3 y6 ~% \" ]! n# S( {8 s+ k. i
"""Module to construct, manage and play dialogs. 6 `2 V3 T* Q1 G# F# R7 |! N

- y; V* @4 I6 F" LThis modules provides the following classes: ' b+ W* l* t; m- B
2 |) V/ M! o# U. s
Dialog_element - Basis class for all dialog elements. Not to be used directly, use Text or Choice
- E1 V4 M9 |+ a* Jinstead. 9 e' R% T: A" A% s% y2 Y

" E# z8 c4 s9 ]Text          - This class represents a single text in the dialog (including texts that are part of
7 Q% r3 Z. s4 N8 K2 ^5 H- ya choice)
4 ?  D. t8 W5 S/ C! U- x
; ^# X1 z& q1 E( `4 S- ?- c$ JChoice        - This class represents a choice in the dialog. It usually has several Text elements : _' l" L* W# P' @
as children. This childrens are the texts that the player can choose from. The Choice itself is a
. u; a) n' @: \) Usilent element. , I/ C. f  ~. D: H

2 V& {; A/ a2 Z* t0 B( Q+ x$ a/ FDialog        - This class represents a single dialog. A Dialog consists of several Dialog_elements / Z/ E: Z- B  b
which are connected with each other in an arbitrary graph.
5 R# r3 S% g8 \/ i8 F% {( n/ O% C! G& x
Dialog_system  - This class manages and plays Dialogs.
! Z) K$ b5 s- [( T; i! |' r2 ^6 ]  e& P1 u! O: V8 c  C4 }, P
The classes in this module interact with the text database. 4 a, t' P$ |& W' w9 E+ y. A
The id used for a Dialog_element is also used to find the appropriate text in the text database when . o3 K1 z  I* K- W5 J+ B
the Dialog_element is displayed. (i.e. the Dialog_element id and the id of the text in the text
" U+ V6 n& J% B1 b+ I9 E9 adatabase have to be identical for all instances of class Text).
" A% D  M3 O8 l' r0 t""" # {) m# ]8 I& U: D5 F0 l6 `1 E! T

; L& R3 k: a* y3 k9 t我推测,在包文件里面还有一个存放字幕的文件,说不定也是SQLITE3格式的,现在由于还没解包,还不清楚。
( A" z. p( u# L" Z( D7 P另外,还有一个发现在文件名表里面我们发现了一个文件名python/grandmasboy/dwk5_graph.py。
8 j! q5 [+ W1 e4 S7 N我想起了前不久刚实现汉化的狂野小子5这个游戏,它也是采用了SQLITE3数据库的。 & T3 q0 o8 a4 s+ q
https://www.chinaavg.com/read.php?tid=20585
( U5 V( v1 U6 z& t( K; p" e' C我没有猜错的话,这2个游戏应该是同一个游戏公司开发的,上面的那个文件应该是前一个游戏遗留在游戏引擎里面的东西。
7 P8 D/ G% {' ^狂野小子5字幕是utf-8的,已经实现了汉化,也许我们能找到一些相似点来实现汉化。 1 h; H6 z( o+ |
暂时分析到这里,期待有热心的朋友把解包器做出来,以便于进一步研究。
6 d8 E0 ^& Y6 m! x' N1 d放上2个sqlite3格式的文件和dialog.py共研究备用。 ; w4 A6 u* K$ P, ?# f/ l& Q+ D8 D# K
[attach]15347[/attach]
0 N8 V$ z3 O( q: i6 f( A
# p! S$ G) L5 W, G5 Z5 X-----------------------------------------------------------------------
6 _) h0 N# p* e' ]2010.2.28 第1次更新
; ^, F, j& e) B! E: T6 g
我在resources.d017中检索font,发现了以下的语句,这和狂野小子5几乎是一样的,应该也是用系统字库的。 & V  f8 v8 G* H( K
self.__cairo_context.select_font_face("Tahoma", cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_BOLD) ; W; u9 ?- q7 x/ z
所以,我感觉这个游戏的汉化希望很大,接下去就是解包后寻找字幕文件了。6 p1 z' x+ b% S' Z8 E: s
-----------------------------------------------------------------------
8 a! O, u3 m3 r( ?2010.2.28 第2次更新
( Q, Y" p) M; I1 C+ q5 S我猜想这个游戏的字幕文件名也许和狂野小子5是一样的。* {# Z( [& }1 }. Z% h
我用sqlite3的工具打开german.meta,果然发现了一个german/text_db文件。1 ?5 n9 u/ p6 N, d: F2 G7 g! E
这样的话,应该用同样的方法就可以把这个游戏给汉化了。
* y: N" `) B1 ?: Q+ b6 d/ _等有时间再来做最后的试验。
作者: shane007    时间: 2010-2-28 09:52
2010.2.28 更新
作者: shane007    时间: 2010-2-28 14:22
2010.2.28 第2次更新




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