标题: 魔法师西蒙5初步汉化分析(2010.2.28 第2次更新) [打印本页] 作者: shane007 时间: 2010-2-28 09:35 标题: 魔法师西蒙5初步汉化分析(2010.2.28 第2次更新) 最近看了一下魔法师西蒙5这个游戏,发现这个游戏也使用了Sqlite3来保存一些游戏数据。 - \. E* N( j2 I4 g5 ]
german.meta和resources.meta这2个文件都是Sqlite3格式的,我们可以用以下这个工具来打开修改。 ) i s8 d" Z0 F+ v! m1 @1 Y https://www.chinaavg.com/read.php?tid=20557 7 f: ] c S: Z/ V- x8 S其中的几个字段分别对应了包文件index,文件大小和文件在包文件中的偏移量,所以制作解包器应该很容易。 . n) C* O/ X: X9 H7 ]$ A X
+ H5 |. z `6 N& |
在文件名表里面,我们发现了在python/目录下面有好多游戏的.py脚本,暂时还没有发现游戏的字幕。 1 b* y- k9 G4 J/ n2 W/ L
我把python/adventure/dialog.py文件手工解了出来,让我们来看一下它头部的注释。 " g B* r2 B2 Q8 J" g1 O* \2 P8 Q( C5 q8 |* F z
"""Module to construct, manage and play dialogs. ! f G3 {% o$ B& i6 R
" ~3 y6 g( v2 ?7 _) o- cThis modules provides the following classes: + I0 b; m& T& c# S ' v4 }( D" l8 `7 O- O( D! E. B9 w" sDialog_element - Basis class for all dialog elements. Not to be used directly, use Text or Choice ' N$ e: V" M& C: t. ginstead. ) N4 Y/ J/ b f* F# M" [
! q+ F* o* v9 Z- q2 e1 Q
Text - This class represents a single text in the dialog (including texts that are part of 3 |+ Y9 z. a3 v0 O' t7 w8 p: J& y
a choice) * [# m" s, F# w1 s; j
& E& j; X" a( `) jChoice - This class represents a choice in the dialog. It usually has several Text elements . V/ }% b3 ~) k, z3 o* N) c
as children. This childrens are the texts that the player can choose from. The Choice itself is a + g. T, P- p+ Y J7 @$ J& }
silent element. 3 H9 @5 C) W6 K+ C5 m , l- q# b& Y) w) A |8 T8 \Dialog - This class represents a single dialog. A Dialog consists of several Dialog_elements - D' c+ S8 C9 t! [& Y: W; V
which are connected with each other in an arbitrary graph. + T0 x; J, \8 g+ M4 f8 v# C
1 Y! w7 J9 [4 E, o& |- Q
Dialog_system - This class manages and plays Dialogs. 4 K* Z3 u1 M' Y$ G9 O% j) R# I; _2 R
7 ]. ?1 P4 g& E0 \# N6 nThe classes in this module interact with the text database. 4 g) x4 W+ _ c9 [6 m; KThe id used for a Dialog_element is also used to find the appropriate text in the text database when # q C L- z' k5 R0 A! r5 R
the Dialog_element is displayed. (i.e. the Dialog_element id and the id of the text in the text 9 B1 u- Y6 h% I( N( L
database have to be identical for all instances of class Text). ' p2 W8 l- z. r. t
""" 9 L7 D! p& w+ ^& p