随着对游戏包文件的深入研究,我还发现不少游戏的包文件存在一种补丁机制。8 p- Q4 s$ u8 _# I$ x0 C$ i/ S
! x! v8 T0 q& o& H( c6 }' | M
补丁机制简述如下: @( m9 ^) u" V3 Q7 d; ^
游戏一般会按文件名的字母顺序读入相同后缀的包文件,如果在不同的包文件里存在相同的文件的话,+ ^( ?8 M t* C% o% _3 [6 k
则后读入的文件优先度比较高,将会被游戏优先使用。
, \2 Y& Y! k6 p* ]3 ]. H
) w, g0 `! Y* n举例
9 L& Z5 y8 D7 s假设游戏的包文件是data.pak, 其中含有一个叫a.png的英文图片文件。3 M B/ j: {! Q2 F; M
我们可以构造一个小的包文件data_p1.pak,其中含有一个叫a.png的中文图片文件。
8 X* p, }7 {/ q2 M由于data_p1.pak在排序后排在data.pak后面,将会被后读入,所以它里面的文件将会取代data.pak包里的同名文件。
* @& u& Z5 i s3 k6 }0 @3 S2 ]所以,最后那个中文图片文件将会被游戏使用。
& X) Q; m* W+ ~* W) b u7 N* v) }" [3 Z' }6 |
我们掌握了这个原理以后,就有可能制作出比较小的汉化补丁。3 @* v' C: V0 b- C6 U; k
热心的朋友可以试试看,playfirst sdk的.pfp文件是否支持这种补丁机制? |