在玩秘密档案2这个游戏时,我们发现了一个游戏找不到指定文件而出错的问题。9 c* }: R& e5 b' w
根据我的经验,最后终于确认是游戏调用了一个德文文件名的文件。
1 x% ^4 e" M* m: |$ E4 M4 E这个文件名中文环境下无法识别,游戏自然会出错。: Y, z$ K6 B0 `2 K4 p
. h, Y9 j3 K: `1 t- D1 ?0 k5 C
解决办法1) w+ j% }4 I* t$ }
把系统的区域,语言之类的都设置为德文,经验证可以解决问题。6 @: H: ~, Z: V
不过,这个办法似乎不太好,太麻烦,用其他软件的时候也会许会产生乱码现象。
2 X7 l" ~& r0 `. i7 B5 l ~/ O+ s( i3 |( i- b6 ?$ D! {6 W$ |* m
解决办法2
/ }3 [0 t. T+ O8 N9 O; ~ z其实,在研究1个半骑士的时候,我们已经遇到过类似的问题,并且已经成功地解决了。
5 o! V: ?7 g6 w+ d1 t1 N为了更容易说明问题,我把问题简化一下来说明。3 o S' d4 z1 T- c. {. _
3 x) Z( I) N2 P; o- L
假设游戏有AAA,BBB2个文件,AAA文件调用了BBB文件,其中BBB文件的文件名中含有一个德文专有字符,在中文环境下无法正常显示。这2个文件被打包入一个game.pak文件,并被加密,也就是说我们用hexworkshop无法从game.pak文件检索出AAA或BBB的文件名来。同时,我们手头有一个game.pak文件的解包器。
7 {) R$ [( ^/ n* `( P- F I6 E. X5 O& C" `/ b M
就这样,我们模拟了一个游戏的出错环境。下面,我们说说解决办法。: \4 w3 j$ Y6 I7 E. A
/ q' S! ]. x. [. y4 W( J" O8 m- @1.我们用解包器在德文环境中,把game.pak文件中的AAA,BBB2个文件解出来。由于是德文环境,自然不会有问题。
- l6 G( Z# ^1 y" H0 n3 z
7 V9 S3 V. T7 X- }2.解包完毕以后,我游戏将会优先读取解包出来的AAA,BBB文件,而不是从包文件里面读取。
0 n3 R- I! l! _, Z: f 接下来就很简单了,既然AAA调用了BBB。那么在AAA的内部必定有BBB这个含有德文字符的文件名。 我们找到这个文件名,把它修改为全英文的,再把BBB的文件名改为和它一致即可。
1 P1 v1 x3 _0 g( R8 S+ P4 k" W2 b6 I! c8 C
3.再把游戏改为中文环境,游戏应该不会出错了。+ }5 c! G% s% K, k* ^) k/ i
由于包游戏文件被加密了,所以必须象这样把文件解包出来以后再修改。8 f/ u+ ?" V7 |4 L
用这个方法我成功地解决了1个半骑士的问题,秘密档案2我还没试,热心的朋友可以试一下。
$ z* d! g7 U k 就像刘谦的魔术一样,一旦秘密被拆穿了,也就没有神秘的了。
4 M" U( s- n- P/ A7 \' X; B3 j* a
. e; Z5 T! o3 u. K$ S补充一点,从多个文件中寻找一个字符串,可以用秀丸的grep功能。* I- X" `" }* J1 ~6 D
一个半骑士的相关帖子如下,早已提到过类似问题- _! d! ]( k6 o" |0 N' x/ A3 t
https://www.chinaavg.com/read.php?tid=14367 |