冒险解谜游戏中文网 ChinaAVG
标题:
WinterMute Engine 汉化教程
[打印本页]
作者:
weiyun
时间:
2014-3-22 22:08
标题:
WinterMute Engine 汉化教程
本帖最后由 weiyun 于 2014-3-24 19:11 编辑
. O( N/ P4 g5 f" `! b- l
% }+ B# w$ w9 w; x# H7 u2 f/ w
Winter Mute这个引擎是专门用来开发点击式冒险游戏的,下面我来讲一下这个引擎的汉化方法。
6 C# s! C O" x2 h
使用此引擎的游戏比较多,而且汉化非常容易,论坛之前有很多相关资料,但没有完整格式分析等
) w% ^/ l+ a$ Q" y! p) R7 _
7 _0 T( l2 A) n" {; P$ z
以下是官方主页:
http://dead-code.org/home/
7 u3 C p* E+ w' X
注意本引擎是开源的,源码可以在这里查看:
' D' W" o; o- j2 m: W
https://bitbucket.org/MnemonicWME/wme1/
, [' z3 N: I0 h3 z |
4 l8 e' l: s: V
下面开始正文
6 o( T7 I0 D2 y5 z, S6 Z
1 R( m8 D% {4 a7 H* P
包格式
- U" r# u# X; a
游戏的包格式为dcp格式,文件标志是0xDEC0ADDE也就是DEADCODE。
9 v. i- h0 D/ _
3 ~1 z2 j+ Z) c4 H# `0 R( q, l! \
格式分析:
struct{
$ H+ F) a) N8 m7 T$ t
DWORD Magic1; // 0xDEC0ADDE DEADCODE
6 B9 f' m- c F2 d& K* A/ \
DWORD Magic2; // 0x4B4E554A "JUNK"
. t# s6 o2 k6 b; F" ~# c
DWORD PackageVersion; // 0x00000200 包版本
- J" l5 V: F. g2 Y
DWORD GameVersion; //游戏版本
+ G4 A: x: J0 \; `- r
BYTE Priority; //优先级
* V; y6 b, n" D6 {/ q
BYTE CD;
; p2 a/ j: |8 I$ N) X
bool MasterIndex;
" J/ ?2 R2 x& }1 H9 b. m0 n- ^ i
__time32_t CreationTime;
+ {& d" d3 I5 ?) X$ z: p: S9 U
char Desc[100]; //包描述
, Z& t3 c) D3 G2 b. K. K H
DWORD NumDirs; //目录数
9 S9 k/ h C5 g- b- X: [
} PackageHeader;
7 m( }7 d4 u) N) i* B6 u/ b8 T
if (PackageHeader.PackageVersion >=0x200)
) P7 U$ f, |9 b6 Y1 P; P9 X
DWORD DirOffset //目录偏移量
, y5 W) c) O4 f3 L# I! J
struct Dir{
0 L. ]: l6 d( W9 z( P
BYTE NameLength;
1 b5 v/ F, f; o! H. q" Y- z+ W
char Name [NameLength]; //文件名
l) E( T$ Q# `! P% {; y7 X
BYTE CD;
+ w0 R6 O* b2 ?" H, n
DWORD NumEntries;//文件数
; G9 |3 p4 f) h7 p% m3 K5 |# v
struct Entry{
6 k4 _& T* t" X& v- _
BYTE NameLength;
# C2 L2 A4 R0 ]$ F
char Name [NameLength];
( i9 x6 n, E4 m! A& x9 K0 j
DWORD Offset; //文件位置
6 n1 a4 U3 q' R1 L
DWORD Length;//文件大小
, M, P6 v- p, m6 F2 c! {( {
DWORD CompLength;//压缩大小
3 \5 F [" J9 ?) h6 c% }; J6 U+ q/ I
DWORD Flags;
: F5 X6 F7 c. M
if (PackageHeader.PackageVersion >=0x200)
4 y! _ A; f) w+ x1 p; ^9 C- i. {
{ DWORD TimeDate1
& w: P+ E( ~8 V9 g/ s7 u0 u# T
DWORD TimeDate2 // not used
2 @8 F! {# y2 x9 h9 k# [
}
& M$ w' e* e3 b5 f' t, k% U
} Entries[NumEntries];
8 H1 P7 L+ q+ o- N' M
} Dirs[NumDirs];
复制代码
解包;
$ ~) n5 X- i- `. H/ K
可选解包工具 GOBREAD,UNPAKKE,Quickbms 脚本,引擎自带的专用解包器。
# }4 ~( ]4 c# K5 s/ m
) w0 B% W" [/ I Q0 _5 q
打包:
2 a# n4 `' Z9 V, `1 f# |
可以不打包,打包工具可选UNPAKKE和引擎自带的工具。
& O3 E4 p9 [4 y- ~
1 F* b6 C( C& O/ z
文本:
* u2 L; J# k1 h3 r
语言表格式如下:
) r* t; \) [. D
SYSENG0001 Game settings
" |8 E' o! M! [9 C- A
SYSENG0002 Display
4 A' b6 Y5 X# { d6 Y
SYSENG0003 Sound
, L. S( F$ l4 O5 l3 k" f
SYSENG0004 Use hardware acceleration
' l- t9 V8 I; a2 n; M/ I
SYSENG0005 Display device:
( p. o, G. `+ f& X% D2 y Y4 B& h/ N
SYSENG0006 Colors:
5 Z/ g# y8 p* _3 W" f( r+ [
SYSENG0007 Run in window
1 J1 f2 b* J% {1 D# u+ d
语言表可以互相引用
0 }/ r# D7 v6 P$ d
SYSENG0001 Game settings
1 Y9 n! W$ d3 r% N4 Y( `0 |
SYSENG0008 /SYSENG0001/
5 z; k! G0 P/ R
甚至能支持阿拉伯语等从右向左的语言,只要文本里加上这个标记就行
* g8 {1 W6 [2 N3 p& a
@right-to-left
S: b7 l t" j% Y1 M
语言表一般为String.xls,这是csv文件,而不是真正的xls格式,直接翻译即可,注意编码选择可选简体中文(GBK编码,非中文系统将无法显示),和utf8编码,注意如果文本编码有BOM将自动切换为UTF8格式。
0 C6 d3 V( F+ x
! t' X6 w% n) |/ \9 ^) A: |5 _
字库:
, d& W" ^) a$ X5 M% k" ^
游戏支持两种字库,图片字库和ttf字库,注意只有ttf字库支持中文。
& Y# j, r( W5 A
字库都需要描述文件,因为图片字库不支持中文,所以此处略过,有需要请看官网。
8 P. d* q, @& G
http://docs.dead-code.org/wme/inside_ui_fonts_bitmap.html
3 M0 W$ m9 d3 K% s6 {9 ?
要注意的是ttf字库是不能打包的。
2 e9 C7 F* W2 N$ g3 o: c6 w/ |
TTF格式字库的描述文件:
7 Y/ j, I. [! t# q5 R
TTFONT
# z$ V9 m7 g" W A4 d
{
# a( Q" K3 v' s9 B# E: F! T
SIZE = 12
+ E! s9 h) C7 J# N7 N
FACE = "Arial"
6 Q: J: y2 Z8 w5 g2 o' W
FILENAME = "fonts\arial.ttf"
4 C7 c. K4 f3 ~0 \0 W
6 B# o# B4 V5 B; q% }
BOLD = TRUE
5 i& O c3 \# m3 b
ITALIC = FALSE
4 \& c# T% K; A8 D: j7 Z0 u
UNDERLINE = FALSE
: `8 @% X( o8 ?7 m& B6 x8 C/ @
STRIKE = FALSE
+ B2 v7 Z& @1 W8 T. W' m- h
4 t5 {/ O4 _/ t3 a) e8 c
CHARSET = 1
' ] o" ^, V2 b8 L6 K
0 C+ g. k7 z2 W: E9 Y5 J0 i6 f
COLOR { 255, 0, 0 }
% a2 u, y6 A; n4 \
ALPHA = 255
2 _& c% h- v6 B; }
LAYER
# W" N; p$ r, X0 K8 j2 N) Q
{
3 M* L9 j. c I O; P
OFFSET_X = 1
7 a3 E! r6 Q/ b0 X5 J
OFFSET_Y = 1
; O9 [3 z& K% }2 H7 m
COLOR { 0, 0, 0 }
5 S9 i: _1 C, r" v& l
ALPHA = 255
5 J2 ]- C. }) H, [
}
/ a) F. r0 Y! Q8 M
0 p/ V* q2 \% ]+ v+ b4 Q! b
LAYER
" e& k( }% K" r1 [& G% u
{
' A8 s& M% G9 U/ J, A6 V
OFFSET_X = -1
1 x q% T/ _1 y! @
OFFSET_Y = -1
; E o0 f2 i& a5 l- B
COLOR { 0, 0, 0 }
% @% n( s: j) y! P& u& J! c+ m7 z
ALPHA = 255
8 d: e: Y S6 Q
}
) n- z+ n. t$ ?* z8 p3 F( S. K6 N3 h
! e+ t l# C7 K) S
LAYER
" x; |6 N8 f) G0 I1 j( M
{
6 H- m$ u# w) v" M/ M
OFFSET_X = -1
& m7 I" S4 g$ m. Y' U: ]
OFFSET_Y = 1
6 w: s* F1 Z X" O1 T
COLOR { 0, 0, 0 }
" V* _0 h, [ \& X5 f5 k3 d
ALPHA = 255
( @9 J+ m8 k& b7 U+ ?9 y% ^. j* X
}
+ p6 m( o- ?) `( p, j
5 {, i4 h/ J j; X3 g X
LAYER
8 {1 E. e' z+ T; K
{
9 k; F8 `5 M" m7 y; S
OFFSET_X = 1
8 e/ N& W6 ], I1 R7 L: f4 q v7 y: P
OFFSET_Y = -1
# d' ` D3 i& t7 Y3 U
COLOR { 0, 0, 0 }
5 B4 h1 l/ j) \4 b G. v2 I) ^
ALPHA = 255
$ k5 P; t" N2 J: u1 G$ r+ k
}
" j4 E* b# z; n! G+ S8 |' |7 p
3 B+ C3 L( P( ?1 B+ Z, P
LAYER
5 i( g/ ?. V9 @" o3 i+ U. J# u
{
& N* @+ b4 m8 K+ d* _
OFFSET_X = 0
- M3 E2 {. i& A+ V- ]7 R
OFFSET_Y = 0
7 `& }' ]$ t. I/ ^
COLOR { 255, 0, 0 }
+ t' C. D& K* J. D* h. M
ALPHA = 255
/ A- P/ l$ r( l, C, X
}
b8 x0 \. V3 f/ h2 r' a4 F/ g
}
8 y$ y8 u% x4 u
各参数说明
' C' k! y! D& O
• SIZE – 字库的大小,一般根据英文来选择。
0 E1 v# Q3 K: E
• FACE – 字库的名称,注意是显示名称,比如系统自带宋体SimSun 。建议不要写中文,容易出现问题。
2 f# u% m( X, W4 R2 n0 w
• FILENAME – 字体文件名称,就是ttf的文件名,如果要直接使用系统自带字库可以留空。
( g! A6 v- i, k: ]9 F. L Z% S
• BOLD – 为TRUE则以粗体显示。
7 |2 Q* b+ _$ |! @5 c' r% z! K
• ITALIC -为TRUE则以斜体显示。
6 o2 i+ q! Y- g- R' W7 A8 @* ?
• UNDERLINE -为TRUE则显示下划线。
7 C2 l2 e) ^: ?) G
• STRIKE -为TRUE则显示删除线。
( ~0 p+ K7 b: k' x
• CHARSET – 字符集,简体中文要选6,繁体要选4.
4 t$ [1 g/ `6 t7 K& [) e) g
• COLOR – 文字颜色(RGB)显示
/ A% V$ p. Q6 o* G C
• ALPHA – 透明度, (0 到 255),一般选255.
% G% T2 U' k4 p# Q4 c2 g9 }2 [
注意这个定义文件下面的Layer就是按层绘制,可以实现模拟的描边效果,就是左移,右移,上移,下移1像素各绘制一次,颜色不同。如果不需要描边效果只需要1曾就够了。
5 g5 o* C$ O9 e& P# g/ b
( X2 S3 n/ {1 s/ R8 k( g' t9 F
以下是字符集,注意和windows的GDI中LOGFONT的值是一样的,游戏本身也是用GDI处理文本绘制的。
6 Y. v% s, a6 f2 k
详细内容请看MSDN
4 w6 H# H$ }+ T" a* v# f' r6 q- y! j) [
http://msdn.microsoft.com/en-us/library/windows/desktop/dd145037
(v=vs.85).aspx
6 t" I; D3 g/ w) {4 ~* E
WME 字符集编号 解释
8 Y5 T [! h+ s: D' q4 r+ C
0 ANSI 字符集(注意这是英文字符集)
4 _0 J* g0 f8 X4 I8 }2 m* q4 B) S. ?
1 默认字符集,根据系统语言变化。
+ X5 r9 |4 g' U- _7 @. S
2 OEM 字符集,根据系统变化。
- W- k0 ?+ c; I/ W# _* @9 r
3 波罗的海。
, L3 Q5 Z4 T+ ?6 p! {5 o1 Y
4 繁体中文。
7 B, R' R. Z* j+ F! O
5 中欧及东欧语言。
5 n: v1 a, u/ j, M( G& U# m
6 简体中文。
* l7 F5 n. k f
7 希腊语。
' N- u: U6 S1 d7 t
8 韩语(Wansung)。
0 o. L, U- `" F+ ^$ W. p9 l
9 Mac字符。
* a, o- s. K4 N" `1 }
10 西里尔字符(俄文)。
) W9 q) B0 _ G/ a( V7 U2 s- D' H
11 日文 shift-jis 字符。
4 r' _, E' H4 a; e5 r* K# P8 m
12 标准符号集。
' v9 |4 F7 c" w3 Z
13 土耳其语。
7 ^3 N; q5 v$ v% H" z
14 越南语。
' e) e; I$ M+ J6 H# Y
15 韩语(Johab) 。
' ?( ]1 y) T; s: ^
16 阿拉伯语。
, v0 h; b5 @9 \: R, t
17 希伯来语。
! D3 ?5 F+ n6 T& I
18 泰语。
* _' o0 }, b& Q9 _1 X# D
+ Z0 u% ^8 D6 j# r
图片:
0 E6 h) z' m6 N% U9 K6 g
本游戏图片格式为PNG,直接处理即可。
( T8 b6 x) Y b" s1 r
& _6 O" j+ H0 B7 V4 [0 b
脚本:
5 v3 Q' Q* d7 b! G" W/ f2 C
一般不需修改,除非遇到文本保存在脚本中。
0 K: D; N6 H5 A. k
. G. @" ~2 Z+ ~. x V4 \
脚本格式分析(不含虚拟机分析):
DWORD magic; //DEADC0DE
( w7 S9 _2 T; f5 ?( P( h3 I) m& o" T
DWORD version; //当前版本为0102
* R1 i0 [2 o& \ p' d+ S9 ~. E
DWORD code_start ;//代码地址
& J6 R# P* [" |; P2 `
DWORD function_table_start; //函数表地址
7 k: _! q. R4 W
DWORD string_table_start; //字符串表地址,修改字符串表后需要更新后面的偏移
) } g, W2 Y' B+ G7 N
DWORD event_table_start; //函数表地址
( [3 F9 E5 N5 H$ n* j
if (verson >=0x0101)
5 R+ ]" i/ H2 d: X4 e
DWORD dll_table_start;
q& I0 Y7 q4 o3 l/ {. m Z$ G
if (verson >=0x0102)
, Z4 R4 H$ B1 |8 l
DWORD method_table_start;
# p: O: t- T; G. _% g( J8 _5 z
string source_name; //0结尾字符串
1 C0 T( ^6 F- L0 R5 W
byte[] code; //代码的字节码
7 M% i4 J0 y @$ V4 O
' h; e7 j) R5 l2 q7 H
struct {
7 i1 G/ v/ y: g
int num;
) X. T( J2 p& O) V5 P& N
struct {
- X- H ^1 l8 w/ }1 o+ l5 y l
int pos;
' {1 {- ?0 U6 f* t
string name;
- v3 _- C+ x% W2 W& |% l, p
} function[num];
: P0 ^0 M" {; {: M
} function_table ;
! C4 Y! S8 h C
struct {
% B5 ?( o$ g4 ~4 }3 ?
int num;
/ s4 P/ e3 t4 ?3 R( d
struct {
) G( w5 `2 |5 w* Q i6 ^
int id;
* ^; C x, u3 P; t' \* ^
string name;
" e# l8 k8 P' ~
} string [num];
& _; {8 B" ]7 `: J
} string_table;
7 N- ]+ J! f& |' Q/ L L6 K: U
struct {
/ O3 j" d3 q$ c$ J1 g" O
int num;
# Q' H4 b( v+ ]# R
struct {
; C1 P7 E" v/ i# J& Y& x' ?2 K# ]4 Y
int id;
* {+ o+ @1 a% N$ G
string name;
4 y4 U+ f) n% u+ X2 }6 F k
} event [num];
) u% w: j6 H3 k
* }' ~* t5 t* r' l% ~% y
} event_table;
; h/ }* N$ |! S
if (version >=0x0101)
! F9 b6 y5 ~5 S4 J3 a' R- x
struct {
: U7 i6 `4 Q' u. l3 h( `
int num;
! ]! f G% ` t+ Q" p
struct {
% v. k/ z5 a, n6 ?9 l% q9 f
string dll;
/ R$ I8 E6 U7 T2 ^3 [) I2 X6 S2 C; O
string name;
. z W, r/ `, U: n
int call;
' z# w5 _4 [% P- f: U3 a: V
int returns;
3 \$ M' L M T8 C5 d
int num_params;
; v# `7 Q6 H$ Q1 h+ Z. V# O* h
int params[num_params];
& [3 f& Y9 c+ x- x* [/ D3 ?+ s, }
} dll [num];
! b0 V" y- J# Z
" x9 R# S' }- C
} dll_table;
: a) f; {8 ~; J& [" g" k
if (version >=0x0102)
; P0 q# I* F/ B) ^2 T, Q1 P
struct {
9 }- j/ k3 D4 c- X* o# J
int num;
. p4 {3 L' n. y
struct {
) F2 ^! |5 D( G N" m9 n
int pos;
- [2 p; p& M r$ B2 Q d. e
string name;
5 Y! k" a! E( V4 V( b7 a6 l3 R8 m
} method [num];
& x' q& \8 H6 j5 j0 _" ~
} method table;
/ f2 j4 I- n$ x3 \
# U: G# O$ Z$ E) j4 ^( B) q$ H% _7 m
复制代码
音频:
+ V2 |* ]; {! p
游戏音频格式是Ogg格式,Vorbis编码。
! ^8 n5 A8 ]1 Q
- l) E7 l9 O; o5 `+ ^ d
视频:
1 Q/ N, [+ d; V+ j
游戏视频是ogv格式,theora编码。
& [- V9 n9 L. y: m: c* K
9 c b- S6 r& d# B3 y" M' n
汉化流程:
2 e' h! G1 a! \% Y; ~/ r+ {8 G
1. 如果有dcp包,先解包
7 p; ?6 E* D- V1 N7 e
2. 翻译字符串表
( d: n, F! ?( |" M* S" r/ q
3. 找到中文ttf字库放入游戏目录,并修改定义文件为ttf的定义,参数根据需要调整
( _& J0 I0 k7 T
4. 修改图片
6 C6 K% P4 l2 x) H8 {- z0 R$ a
5. 改过的文件放到目录,或者打包
; {, a0 d4 Q3 P; L, f& D
6. 测试
2 V2 @% ?4 c# j" h! C( c
/ S" \9 C* M* e: Q) S1 Q. F) [
注意:
* A" q0 o6 {2 X! }
换行问题,经测试ansi格式下换行有bug,中文超出行数会出现乱码,utf-8也会出现一些问题,如unicode码低位为00时会无法显示,可以采用自定义编码方法解决,需修改文本编码和ttf中的映射表,或修改引擎解决,较为麻烦。
, i" {* ]; C0 ]" a
作者:
XYZ
时间:
2014-3-22 22:20
感谢分享!沙发支持!
作者:
davidgbl
时间:
2014-3-22 23:13
本帖最后由 davidgbl 于 2014-3-22 23:37 编辑
: ^4 }9 h# L! i- h- z# R
0 c j/ H$ b5 g1 d
太好了 好好学习学习。avg用这个引擎开发的游戏很多。
. F# x9 [6 i4 O: {
不过遇到过一些问题,主要是一些动词在汉化文本中没有。比用use XXX with XXX
. S9 o" {; ?7 `1 B6 q: Q% N+ t
其中的XXX在翻译文本中是有的,但那些动词不知道藏在什么地方了。始终没有找到。
+ ` }3 C u; Z2 l" ?9 S' A2 m
比如之前汉化的:409号黑夜童话,有这个问题
6 v& l B3 C* \- i4 o! R( k6 w0 S2 U
(另外328号埃德娜&哈维:逃离疯人院也有类似问题,但我不记得是不是wme的游戏了,我几个应该是,老啦,呵呵呵)。
1 w' w* m( O" G0 b2 [/ ~- D
还有一点可能需要注意:
3 e1 } k+ L$ q3 T
就是使用ttf的字库要用ttf字库的内部名称,尤其是中文的ttf字库。
6 x( p) G8 Z9 a1 t* P) Y2 o3 t
不能简单用黑体.ttf啥的,最好用字库查看软件看一下字库的内部名称和字库名是否一致。
作者:
巴厘岛之夏
时间:
2014-3-22 23:23
牛贴必顶,强人必赞
作者:
setsail615
时间:
2014-3-22 23:27
本帖最后由 setsail615 于 2014-3-22 23:35 编辑
" _$ b" y: \" ]7 o; f
" ^2 ^# l6 _- f4 t ]2 b
不明觉厉啊~膜拜楼主~~
2 r. _3 {! Z$ Z5 A% y9 O+ `
PS 友谊哥,328好像不是wme的,我也不太清楚……
作者:
seasonmonster
时间:
2014-3-22 23:31
嗯,很详细,值得学习
作者:
myq495
时间:
2014-3-23 09:54
支持楼主的处女贴
作者:
leahlee
时间:
2014-3-23 18:12
不明觉厉。。。:D
作者:
欧兰妮
时间:
2014-3-24 23:47
感谢楼主秉承着热爱汉化之心所做的技术分享~
作者:
慕言思语
时间:
2014-3-24 23:58
突然感受到了大家对汉化技术的热情,顶weiyun。
作者:
zxh17175
时间:
2014-3-25 01:26
本帖最后由 zxh17175 于 2014-3-25 01:27 编辑
7 V3 a. D+ i4 \& g
2 S3 a+ t2 m/ f4 o' ?. J
默默撸过,既然鱼总发帖了,我就不敢献丑了。
7 s. Z$ o/ T" p3 c& f
说说改字库就好了,修改TTF fontforge非常强大,不过好像windows下面有点不太稳定
6 L0 O, T9 l# k
用fontforge打开字体之后有个脚本功能,
, R% F: l, M3 m! \& ~( X! a
打开一个脚本文件,内容如下
Select(0u4e00)
; Q# s: `* |- @7 H1 ~% a( g" t
Copy()
7 p" b- c* |+ b9 m! X9 Z
Select(0u53b7)
7 Q+ M0 v8 _' V% d9 u8 i9 P! w7 J
Paste()
9 _) N \; R; p/ h0 U4 N
5 U/ s) t7 u0 S/ U5 R+ Y8 ~! Z3 J
Select(0u5200)
+ y4 E& _) F0 p: y' W
Copy()
f. F, T' ~8 b0 u! E
Select(0u53b8)
: K6 u# g7 P, I# O9 L$ F' E9 H+ v
Paste()
5 l* }" H( X$ o$ a! B! Z
: q: T0 f5 Q9 ]( i4 H: k$ w0 }
Generate($filename + "_2.ttf")
复制代码
0u4e00就是低位为00的Unicode编码,0u53b7随便找的ttf里面的偏僻字,并且游戏文本也没有出现过的字符
& `6 E& j* s5 X4 C9 z( S
执行这段脚本之后0u53b7实际显示就是0u4e00的字形,我这里就示范了两个。
' z: |+ z- E7 v8 |- d8 F* x! K
然后生成一个字体文件名_2.ttf的文件
. N; L3 `; d5 r0 D' J
批量处理TTF字库还算方便
: G j7 t6 u& t0 i& p
如果系统已经存在游戏的TTF字库,游戏默认会优先调用系统字库。所以还需要把修改好的TTF文件的内部名称(也就是字符脚本调用的FACE)改得尽量复杂和唯一。
; t" \" F. R1 c
最后把游戏的文本替换成相应的字符就好。
! H8 Q! X P8 T' ~, e0 T5 x
作者:
dengken
时间:
2015-1-27 13:27
感谢分享,下来研究研究
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2