中国游戏怎么玩?
中文游戏主要是找出两种文件及其对应的文件格式:
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