韩服的data.grf和rdata.grf是什么关系?

我们知道韩服的完整客户端下,有2个GRF文件,一个是data.grf,另一个是rdata.grf,那么着两个文件有什么差别呢?删掉rdata.grf的话会不会有问题?

在回答上面这个问题之前,首先我们要知道每一个grf文件都可以理解为一个data目录。而且韩服有2个游戏主程序一个是Ragexe.exe一个是RagexeRE.exe

你可以将韩服的这2个游戏主程序,分为两个大区来理解,一个是复兴前的大区(下文称之为老区),一个是复兴后的大区(下文称之为新区)。聪明的你可能会意识到,既然有前后2个版本,新区肯定要比老区多一些新东西(头饰、道具、功能、lua文件),而这些东西在老区的程序中是”用不到的“或者”不能用的“。

老区的Ragexe.exe只读取data.grf,因为读取这个就足够了。但是新区的RagexeRE.exe需要读取data.grf加rdata.grf的内容,因为有些资源是data.grf里面没有的,需要从rdata.grf里面获取。而且如果2个grf中出现相同的文件的话(比如下面例子中的MsgString_KR.lub),那么RagexeRE.exe会优先采用rdata.grf的内容。

问题来了,什么叫做”不能用的“?

比如,data\luafiles514\lua files下有一个MsgString_KR.lub文件,这个文件里面保存的内容都是一行一行的韩文说明文本,老区的Ragexe.exe可以正常读取。忽然有一天重力社被驴踢了,对这个MsgString_KR.lub文件中的格式做了一下改进,里面的说明文本同时包含全球各种语言,并且只有新区的RagexeRE.exe才能顺利的解析出来。

那么此时,重力社肯定不会将改进后的MsgString_KR.lub放在data.grf里面,因为老区的Ragexe.exe去读取这个文件的话,就会出错了。

重力社会将这个改进后的MsgString_KR.lub放在rdata.grf里面,这样的话只有新区的RagexeRE.exe能读到,而老区Ragexe.exe读取的是data.grf里面老的MsgString_KR.lub,这样就不会有冲突了。

上面只是举个例子,实际上MsgString_KR.lub这个文件好像从发布之后就没改变过。都是老样子~~ 哈哈哈

好了,我们说结论:rdata.grf是给RagexeRE.exe用的,rdata.grf+data.grf在一起,才能算是韩服最新的所有资源文件。你当然可以删掉rdata.grf,实际上我们开服很少会去读取rdata.grf文件…

如果你想获得一个最完整的grf的话,可以将data.grf解压出来,然后再将rdata.grf解压出来,然后将rdata.grf释放出来的内容,拿去覆盖data.grf解压出来的内容,这样得到的就是最完整的grf啦!