随着对游戏包文件的深入研究,我还发现不少游戏的包文件存在一种补丁机制。
' W7 z4 p# s+ j/ ~9 E
, |) M9 `3 O3 J% n, d8 ], K- e( I补丁机制简述如下# b) g) U5 h! E4 J
游戏一般会按文件名的字母顺序读入相同后缀的包文件,如果在不同的包文件里存在相同的文件的话,
$ U8 j: @2 C7 Q5 J m则后读入的文件优先度比较高,将会被游戏优先使用。
7 E; R# b P, M+ @! g0 I
- k/ ~/ @/ u& b+ S, w& ?6 I& Z举例1 N( `5 Q A5 p$ \
假设游戏的包文件是data.pak, 其中含有一个叫a.png的英文图片文件。* q% i. C# f C0 ?4 N9 E5 X
我们可以构造一个小的包文件data_p1.pak,其中含有一个叫a.png的中文图片文件。
" a5 F6 R( q: q! j* u' W. g: `* l1 P由于data_p1.pak在排序后排在data.pak后面,将会被后读入,所以它里面的文件将会取代data.pak包里的同名文件。4 }, q: P& p2 m9 b, y, M
所以,最后那个中文图片文件将会被游戏使用。
5 U; {, ]6 ^& S8 h& I7 G6 H# A, _( Q5 l; X
我们掌握了这个原理以后,就有可能制作出比较小的汉化补丁。
2 _' x2 z8 ^2 u热心的朋友可以试试看,playfirst sdk的.pfp文件是否支持这种补丁机制? |