随着对游戏包文件的深入研究,我还发现不少游戏的包文件存在一种补丁机制。
3 }1 H6 a2 {9 d1 o2 ~0 E4 Q0 E4 _$ q5 l% `; N( d
补丁机制简述如下1 b9 D- `3 r5 G6 R
游戏一般会按文件名的字母顺序读入相同后缀的包文件,如果在不同的包文件里存在相同的文件的话,/ C, i, j6 B/ _3 b$ U) w
则后读入的文件优先度比较高,将会被游戏优先使用。( b9 c. y- G+ b) E9 B. [
4 _6 A+ r7 r ~2 c: i1 o
举例
( O# _- O7 x; K) O; ^假设游戏的包文件是data.pak, 其中含有一个叫a.png的英文图片文件。1 _2 E, T# }" V% v' y% j {
我们可以构造一个小的包文件data_p1.pak,其中含有一个叫a.png的中文图片文件。% ~! p I2 w8 i# }% T' i
由于data_p1.pak在排序后排在data.pak后面,将会被后读入,所以它里面的文件将会取代data.pak包里的同名文件。% y0 `4 L' O+ ?6 T# C. Q
所以,最后那个中文图片文件将会被游戏使用。
9 s1 w3 y3 O& p P
1 G+ J) k8 l! D9 q我们掌握了这个原理以后,就有可能制作出比较小的汉化补丁。* a: o( k9 m( f% o h4 K
热心的朋友可以试试看,playfirst sdk的.pfp文件是否支持这种补丁机制? |