在玩秘密档案2这个游戏时,我们发现了一个游戏找不到指定文件而出错的问题。
0 p7 a' @% ~2 N, o0 d根据我的经验,最后终于确认是游戏调用了一个德文文件名的文件。
( \# b7 h. C" o, b% t这个文件名中文环境下无法识别,游戏自然会出错。/ `5 ^/ V" |) B, o1 X+ ]# b, S
/ O1 K1 o9 W$ Z( {( u' F, a9 f
解决办法1
6 \* a) w4 E) `. O把系统的区域,语言之类的都设置为德文,经验证可以解决问题。
7 {% q, h5 k+ a9 S6 M, i不过,这个办法似乎不太好,太麻烦,用其他软件的时候也会许会产生乱码现象。" d0 o$ l+ ^+ J
0 l2 o n2 q" Y# A& e/ a3 e
解决办法2
$ G! h+ ~6 i! O5 s i! i! A其实,在研究1个半骑士的时候,我们已经遇到过类似的问题,并且已经成功地解决了。
`5 ~# W* h. Y( P为了更容易说明问题,我把问题简化一下来说明。
) T2 ~3 [4 i& E3 Q1 e
/ K8 z% p" T' |) c% _$ U假设游戏有AAA,BBB2个文件,AAA文件调用了BBB文件,其中BBB文件的文件名中含有一个德文专有字符,在中文环境下无法正常显示。这2个文件被打包入一个game.pak文件,并被加密,也就是说我们用hexworkshop无法从game.pak文件检索出AAA或BBB的文件名来。同时,我们手头有一个game.pak文件的解包器。
; Q; J4 g/ Y. C* r* ]$ ^. z
" G4 S0 R& e1 q( Y+ d* m! Z6 U0 z/ e就这样,我们模拟了一个游戏的出错环境。下面,我们说说解决办法。
( [' A# f( H! i* ^2 i7 u/ \3 D `6 G1 s* I; K' y4 L
1.我们用解包器在德文环境中,把game.pak文件中的AAA,BBB2个文件解出来。由于是德文环境,自然不会有问题。
0 h) n& Y# D/ e0 z5 l' u2 j0 l: \' d# L) I7 G2 }) s
2.解包完毕以后,我游戏将会优先读取解包出来的AAA,BBB文件,而不是从包文件里面读取。3 o1 k2 `% U$ _/ `" Q6 r) Y
接下来就很简单了,既然AAA调用了BBB。那么在AAA的内部必定有BBB这个含有德文字符的文件名。 我们找到这个文件名,把它修改为全英文的,再把BBB的文件名改为和它一致即可。
; R1 H/ W; Q) D2 z- o$ R6 K9 j8 I' a& ^. m! C- \: s) r/ `# V
3.再把游戏改为中文环境,游戏应该不会出错了。+ @/ _- i% P* W; [ M+ q
由于包游戏文件被加密了,所以必须象这样把文件解包出来以后再修改。+ N0 }0 m$ I, y* O! X) G
用这个方法我成功地解决了1个半骑士的问题,秘密档案2我还没试,热心的朋友可以试一下。
$ g) T3 B9 Q9 A6 |% w9 {$ G 就像刘谦的魔术一样,一旦秘密被拆穿了,也就没有神秘的了。* V3 {) r% X# }) O
7 |1 x& w2 b6 J/ y
补充一点,从多个文件中寻找一个字符串,可以用秀丸的grep功能。
- q$ ]# Y, ~) i, d" {, }一个半骑士的相关帖子如下,早已提到过类似问题; S) U/ q; d4 j: q m
https://www.chinaavg.com/read.php?tid=14367 |