在玩秘密档案2这个游戏时,我们发现了一个游戏找不到指定文件而出错的问题。
2 l; [( J( |6 a1 d- K根据我的经验,最后终于确认是游戏调用了一个德文文件名的文件。
: F( E5 G4 r% a% g: S这个文件名中文环境下无法识别,游戏自然会出错。
+ H$ T/ A* L8 S4 @# N# O& e
9 b0 D8 {, N4 p& B; I解决办法1
3 t& i: W0 A. z9 }, o把系统的区域,语言之类的都设置为德文,经验证可以解决问题。
9 h5 w% p3 |; ?% F& H+ `3 n$ \4 i; T不过,这个办法似乎不太好,太麻烦,用其他软件的时候也会许会产生乱码现象。
- z6 s. e0 i/ k# H; v
& {+ W4 c" M% s1 i" F解决办法20 P* ]$ I, i" a) _4 b9 f3 [/ {
其实,在研究1个半骑士的时候,我们已经遇到过类似的问题,并且已经成功地解决了。
# U, _( p& `4 u为了更容易说明问题,我把问题简化一下来说明。
7 Z0 Q; H4 Z2 ]$ s _# m" j' {$ a) x% q# Q6 y. O
假设游戏有AAA,BBB2个文件,AAA文件调用了BBB文件,其中BBB文件的文件名中含有一个德文专有字符,在中文环境下无法正常显示。这2个文件被打包入一个game.pak文件,并被加密,也就是说我们用hexworkshop无法从game.pak文件检索出AAA或BBB的文件名来。同时,我们手头有一个game.pak文件的解包器。+ w, o. {3 v8 V: e
2 l: e1 }8 j- L) S% N/ M% {
就这样,我们模拟了一个游戏的出错环境。下面,我们说说解决办法。
: W+ [ T2 {" w% \& a! X7 f" m" d( H( a( x
1.我们用解包器在德文环境中,把game.pak文件中的AAA,BBB2个文件解出来。由于是德文环境,自然不会有问题。
0 {% P; I4 X0 v5 V5 Q( H0 ~ Y7 Y3 S. K
2.解包完毕以后,我游戏将会优先读取解包出来的AAA,BBB文件,而不是从包文件里面读取。
" x' I" X6 C/ O; L* O s 接下来就很简单了,既然AAA调用了BBB。那么在AAA的内部必定有BBB这个含有德文字符的文件名。 我们找到这个文件名,把它修改为全英文的,再把BBB的文件名改为和它一致即可。8 t2 S- @2 }; k/ U/ ]- H
8 q* N# Q6 l4 m- Q* k; m3.再把游戏改为中文环境,游戏应该不会出错了。6 w B9 f3 u2 ]' @1 h
由于包游戏文件被加密了,所以必须象这样把文件解包出来以后再修改。8 i. m& w$ F% [6 |# F
用这个方法我成功地解决了1个半骑士的问题,秘密档案2我还没试,热心的朋友可以试一下。# T# W6 |% _& Z u! T
就像刘谦的魔术一样,一旦秘密被拆穿了,也就没有神秘的了。9 h# }7 P0 M% f
$ K+ Z; W1 @1 z" O! e
补充一点,从多个文件中寻找一个字符串,可以用秀丸的grep功能。5 `9 ~. r) I5 Z$ ?% V; }' V# H
一个半骑士的相关帖子如下,早已提到过类似问题1 G9 r( \3 H$ F/ T
https://www.chinaavg.com/read.php?tid=14367 |