随着对游戏包文件的深入研究,我还发现不少游戏的包文件存在一种补丁机制。0 j: |! a" } n, \/ [ r
3 r0 M/ b5 }+ }6 i$ y5 i, {
补丁机制简述如下
0 J% P5 j+ X# X/ A. M游戏一般会按文件名的字母顺序读入相同后缀的包文件,如果在不同的包文件里存在相同的文件的话,5 G0 e" d* E; v' W: a( G8 P
则后读入的文件优先度比较高,将会被游戏优先使用。
- `+ G- q0 a+ B2 h* q* }: d- G% {: {0 Z( N2 @ @; e3 c% o
举例
) j) M) J8 \2 [0 P/ Y( q) X1 N假设游戏的包文件是data.pak, 其中含有一个叫a.png的英文图片文件。
1 y5 \' D3 c/ D我们可以构造一个小的包文件data_p1.pak,其中含有一个叫a.png的中文图片文件。: H; O2 t( E9 q( O
由于data_p1.pak在排序后排在data.pak后面,将会被后读入,所以它里面的文件将会取代data.pak包里的同名文件。& C1 v5 T* r) t. a& D
所以,最后那个中文图片文件将会被游戏使用。
: c# A( p% k2 o3 s* ~" Y
+ O- l6 T' |4 }1 s- k我们掌握了这个原理以后,就有可能制作出比较小的汉化补丁。* k( @' a7 ]+ ]% [
热心的朋友可以试试看,playfirst sdk的.pfp文件是否支持这种补丁机制? |