随着对游戏包文件的深入研究,我还发现不少游戏的包文件存在一种补丁机制。& }2 \' R8 m& d2 @/ T4 i
+ w) ?1 y( i' j* W$ c补丁机制简述如下3 w. d# r: F% n0 h9 ?3 S5 j
游戏一般会按文件名的字母顺序读入相同后缀的包文件,如果在不同的包文件里存在相同的文件的话,
& U) p6 A5 p) B2 o( p$ z# \则后读入的文件优先度比较高,将会被游戏优先使用。! v0 k" |& S! X3 P2 {
" I- o7 e2 B% Z: Z* `: d+ y
举例; w3 z$ X9 }/ U8 }, _$ j: b
假设游戏的包文件是data.pak, 其中含有一个叫a.png的英文图片文件。- ?/ |8 ~! s) N$ Q! ? o
我们可以构造一个小的包文件data_p1.pak,其中含有一个叫a.png的中文图片文件。; Z2 k. d0 d* I( I2 g6 }! a
由于data_p1.pak在排序后排在data.pak后面,将会被后读入,所以它里面的文件将会取代data.pak包里的同名文件。
6 v% v, m5 {% L( y/ R) f s所以,最后那个中文图片文件将会被游戏使用。* L3 M* { Z' B6 n2 L, L7 j( B
5 y. H, [3 ~/ b# j/ E) R3 o我们掌握了这个原理以后,就有可能制作出比较小的汉化补丁。
$ b: E2 z j! f; l e热心的朋友可以试试看,playfirst sdk的.pfp文件是否支持这种补丁机制? |