由于神秘岛4的.m4b包文件不存在免打包的方法,/ l1 u- q A. j( n; ~& K2 k
所以,我根据这个包文件的具体情况想出一个懒汉式打包新方法。
z( q/ f! N4 Q+ C( E. ]% v) p9 q2 b% k8 z4 x' ?6 H, \7 ?
说出来其实很简单。! ^1 V& H. C- H' b3 x$ O O9 w
我们把要更新的文件逐个加到包文件的末尾,然后更新文件头对应文件的文件大小和偏移量即可。
- j2 ~ O3 L! b6 x: Q/ R% H也就是说,同一个子文件在包文件中存在新旧2个版本,旧版本弃之不用,而头部的信息和6 X' \9 @( s+ V+ v6 B
新版本子文件相对应。
% R2 A& I, r# Y
9 Q2 i; z8 @0 i9 {0 O/ z当然,这个方法有一定的局限性,就是不能增加新文件。6 d/ g% i9 `( Q& j
否则后面的偏移量就不对了。; g! m3 e6 v A; [$ J
就神秘岛4而言,我估计tga文件的大小是可变的,所以不需要增加文件。4 G6 C& C4 m5 p0 N' `
`, ~+ g: Z) G( ^3 e7 q6 J这个方法,对于一些复杂格式的包文件,可以大大简化制作打包器的过程。
4 T: R5 @- m' O+ w8 P. Q连解包器和解包过程也可以省略了。以后有其他合适的游戏也可以考虑用这个方法打包。 |