冒险解谜游戏中文网 ChinaAVG

标题: 秘密档案2跳出及类似问题的解决思路 [打印本页]

作者: shane007    时间: 2010-2-20 10:05
标题: 秘密档案2跳出及类似问题的解决思路
在玩秘密档案2这个游戏时,我们发现了一个游戏找不到指定文件而出错的问题。( I+ ~( c4 I" P/ q* U! x8 Q
根据我的经验,最后终于确认是游戏调用了一个德文文件名的文件。, s6 s# P9 m6 `+ Q' f
这个文件名中文环境下无法识别,游戏自然会出错。
" S8 p8 S! a$ X5 o5 ~+ Z. U3 [, k% ^# ^; H& v( v( @
解决办法1
/ U. h& L" f0 O2 A# n把系统的区域,语言之类的都设置为德文,经验证可以解决问题。' j; ~2 Y: a. M. m" Z1 x/ I
不过,这个办法似乎不太好,太麻烦,用其他软件的时候也会许会产生乱码现象。
) _# X5 y$ T! a, G4 l  }: @$ y. \0 n5 \6 q! S5 D
解决办法2
' v3 G# G  b( p$ u% d+ H5 l其实,在研究1个半骑士的时候,我们已经遇到过类似的问题,并且已经成功地解决了。) O; J& X; h) w) v; E
为了更容易说明问题,我把问题简化一下来说明。
1 X2 A& K/ ?) H+ ?& c' \2 u6 r& l- b9 P9 H5 c: D
假设游戏有AAA,BBB2个文件,AAA文件调用了BBB文件,其中BBB文件的文件名中含有一个德文专有字符,在中文环境下无法正常显示。这2个文件被打包入一个game.pak文件,并被加密,也就是说我们用hexworkshop无法从game.pak文件检索出AAA或BBB的文件名来。同时,我们手头有一个game.pak文件的解包器。3 ]1 y' t$ t# \4 k" y

; o+ h' Y% a. H! K% t就这样,我们模拟了一个游戏的出错环境。下面,我们说说解决办法。
( p* Y. _, p7 j' C) f/ u5 a$ ^% Z
1.我们用解包器在德文环境中,把game.pak文件中的AAA,BBB2个文件解出来。由于是德文环境,自然不会有问题。' ~* _% [$ g( v- ?- S$ X

$ _/ }" [+ w* }% Y9 o6 o2.解包完毕以后,我游戏将会优先读取解包出来的AAA,BBB文件,而不是从包文件里面读取。
1 Y: u% E% ~( A! D$ M0 o' @  接下来就很简单了,既然AAA调用了BBB。那么在AAA的内部必定有BBB这个含有德文字符的文件名。  我们找到这个文件名,把它修改为全英文的,再把BBB的文件名改为和它一致即可。
1 f1 }* Q2 z8 x8 m0 q; s  u
1 x8 A1 r1 s; l3.再把游戏改为中文环境,游戏应该不会出错了。/ Y; E" \4 m8 ]; ~
  由于包游戏文件被加密了,所以必须象这样把文件解包出来以后再修改。
5 ~* H" C$ h6 i: W" @9 B  用这个方法我成功地解决了1个半骑士的问题,秘密档案2我还没试,热心的朋友可以试一下。4 i* q2 `5 ]3 x" k9 N: C1 D
  就像刘谦的魔术一样,一旦秘密被拆穿了,也就没有神秘的了。1 ^# x% a* I- W: h7 d! Q/ f
& U' P; j0 J' ^: z
补充一点,从多个文件中寻找一个字符串,可以用秀丸的grep功能。: ?% V; m5 e0 S  Z; b7 m
一个半骑士的相关帖子如下,早已提到过类似问题
; o& X8 p4 P( h( Uhttps://www.chinaavg.com/read.php?tid=14367
作者: 一直爱你    时间: 2010-2-20 12:55
[s:44] 看起来好复杂的样子。
作者: 慕容枫叶    时间: 2010-2-20 15:39
就怕一些文件调用我们改好的文件……
作者: shane007    时间: 2010-2-20 15:46
引用第2楼慕容枫叶于2010-02-20 15:39发表的  :
' _% x8 K  N4 c- g5 m, J就怕一些文件调用我们改好的文件……
# d# r3 v+ n8 W4 y
调用的地方都可以改的。
作者: lizzie    时间: 2010-7-9 20:12
这个问题在英文版里不会发生。




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2