中国游戏怎么玩?

中文游戏的第一项工作就是分析游戏的文件格式,找出要中文的部分在哪个文件里,文件结构是什么样的,如何修改。

中文游戏主要是找出两种文件及其对应的文件格式:

1。游戏的字体文件

2。游戏的英文脚本文件(即游戏的剧情和对话部分)

但是如何找到它是一个难题。因为游戏厂商一般不会公开自己游戏文件的格式,也不希望玩家随意修改游戏(这只是一厢情愿)。很多硬核玩家还是能搞清楚游戏的文件结构,然后修改游戏的。

这样,有两种主要方法可以找出文件格式:

1.搜索网上资源寻找铁杆玩家,寻求帮助。

2.作为一个硬核玩家,很难分析游戏文件的格式。

好在卢卡斯有很多粉丝,甚至还专门成立了一个网站LucasHacks(),讨论如何修改旗下的各种游戏。我需要的所有游戏文件格式的文档都来自这个网站,对本地化工作有很大的帮助,节省了很多时间。在此表示极大的感谢,向撰写文件的前辈们致敬。

下面介绍几种用于GF的游戏文件格式。

1 ..标签文件格式

这是一个存储游戏所有英文脚本的文件。文件的内容是加密存储的,所以用一般的文本编辑器打开时看不到任何可用的信息。解密内容的方法是用0xDD对文件的所有字节进行XOR运算。

以下是解密文件(C#)的源代码:

私有void button1_Click(对象发送方,系统。EventArgs e)

{

//创建数据读取器。

FileStream fs = new FileStream(" c:\ \ grim . tab ",FileMode。打开,文件访问。阅读);

BinaryReader r =新的binary reader(fs);

FileStream fs2 =新的FileStream("c:\\text.txt ",FileMode。创建);

BinaryWriter w =新的binary writer(fs2);

fs。位置= 4;

而(fs。位置& ltfs。长度)

{

w.write((byte)(r.readbyte()^ 0x DD));

}

r.close();

w.close();

fs。close();

fs2。close();

}

解密后的文件内容就是一般的文本,你可以看到所有的游戏对话都在里面。以下是从文件内容中摘录的2段内容供分析:

哦,是的,是的。是啊。这就是我告诉他的。

sito031开什么玩笑?

sito032第一时间给他出的主意!

可以看到,演讲者的名字logo在左边,演讲内容在右边。分隔两者的是一个看似空白,实则是ASCII码表中的制表符,16十六进制表示为0x09。

为了游戏角的本地化,用中文修改这个文件的内容就够了。另外值得注意的是,修改这个文件后,不需要对其进行解密,只需将解密后的文件保存为之前加密文件的文件名并覆盖即可。游戏运行时要判断文件是否加密。

2..实验室文件格式

是游戏的资源文件格式,里面存储了游戏的所有资源,比如声音、图片、动画等。它非常类似于常用的压缩文件格式,如zip和rar。它的作用是将多个文件压缩成一个文件,然后在需要的时候解压使用。实验室文件也用于此目的。它将许多使用过的声音、动画和其他文件放入一个实验室文件中,以便在需要时调用。实验文件不压缩文件,只是将所有文件首尾相连,保存为一个文件。

Lab文件由文件头、文件偏移量表、文件名列表和文件物理存储块组成。以下内容选自LucasHacks的文档。

(1)文件头

领域

数据长度

形容

身份

长型(4字节)

文件头标识符LABN

版本

长型(4字节)

文件版本号

文件

长型(4字节)

此实验室文件中包含的资源文件的数量。

a

长型(4字节)

未知的

b

长型(4字节)

未知的

(2)文件偏移量表

领域

数据长度

形容

one-function sketch 单功能草图

长型(4字节)

文件名偏移量,用于查找资源文件名。

抵消

长型(4字节)

文件偏移量用于查找资源文件在实验室文件中的相对位置。

大小

长型(4字节)

文件大小

U

长型(4字节)

总是0

(3)文件名列表

实验室文件中所有资源文件的文件名在每两个文件名中间用0x00分隔。

(4)文件物理存储块

所有资源文件都端到端地存储在这个块中。

附上一个实验文件,可以用二进制编辑器打开,通过对比结构加深理解。

Data005.rar