找回密码
 立即注册
搜索
查看: 2677|回复: 5

[其他] 不要轻易修改明3的游戏资源,比如\Data\下

[复制链接]
发表于 2014-11-17 15:34 | 显示全部楼层 |阅读模式
本帖最后由 differentrain 于 2014-11-17 17:17 编辑
. @9 S- s# k" R! s6 F3 \+ A, A- G) U+ y! S
其实最好是一切文件都不要改,只通过内存修改..# m4 [& @0 [7 c  N) v  Q" u

* B" x7 q7 N( U/ x! w6 I想从脚本的角度去控制游戏剧情,就看了一下游戏文件。发现游戏文件都是经过压缩或以特殊方式存储的。9 j9 D" c" x. Z  |, R6 Q

; W7 Z5 t* s4 M# h& d这里是想说,这种存储方式会让我们产生一个美丽的误会,让我们觉得“呀,能改”....
- W4 s' j/ z. y
* y- Q; Y2 L+ ~===================6 y% P" B" P5 n& I  U# a# Q) W
Data\下的文件:存储了游戏的数据。
' h  m4 q! O* S4 s3 u: Y. a; j' W( s
虽然内容没压缩,但是却有特殊的格式。  H7 z6 a" J1 B, z

4 d0 N+ f. E, \# |7 v6 v% F- {6 t这个举例吧。3 n4 E1 H8 S# j. I

' B: a  Z$ d) J+ {/ Z当我们用BIG码(950)打开文件\Data1\TVCase.dat的时候,除了乱码,我们看到了繁体中文的文字,看到了编号。0 T) D' ~' @  N3 `* w2 U$ t
7 A: G& T, j# j+ i$ s6 n
1.jpg " [0 d8 \7 e0 y/ q" Q

! ~3 A- ]4 l* J8 Z但是这么改是会有问题的...
) U" b4 g' k$ Y# m. N' X& b% S  p/ }2 L& d9 X  b" f+ t
看十六进制内容。& P0 F* V3 q6 {( @0 V" z
* Z7 X7 @/ h# t+ _
2.jpg
3 L+ C7 s2 f& ]: S
$ B/ P+ l% h% v" c9 S* J! [就看第一行。
& r) X* {. j; F, {2 F1 a/ d$ N4 ?1 A# s1 V# P2 b; W
0x00的位置:F2 03,是文件头(文件类型的标志)。内容固定。Data下每个文件的最开头都是这样的。8 f- k4 k# O6 V' T

9 w) ~! j7 a& J6 ?1 K往后四字节。0x04的位置起是6F 01;0x08的位置起是A0 01;0x0F位置起对应的字符是TV001..  {+ P1 h" W# B8 j+ M: o/ w

# O4 H# K/ i' F! BTV001肯定是编号了。那前面的两个是什么呢?2 J- n) D" Y+ L, H3 w

$ m! M; t" h5 K7 U% _- B* o4 q, j, X/ k7 x( V" N' V
看文件大小。1 g. @4 l6 x. M: t
4 W4 G% a7 [# N! R  k3 I
3.jpg
3 p# b  p5 V2 ], K. O' f% P! \
, y+ y5 }& c8 ~1 d& k2 [16进制存储是从低位到高位的。所以6F01对应的十六进制数是16F,而A001对应的是1A0。
, x9 p- Y- b& [( n# Q1 _1 g$ ]7 k9 B% {1 V5 _3 K7 o) n0 O
打开计算器,在16进制模式下把这两个数字相乘。然后转换到10进制。
. J$ K# S8 [0 W- F0 H" }* e3 y- `. ~/ k5 U/ [
我们得到了一个数字:152672; X' k) p6 F9 n2 o6 y" ^3 V: j

1 [9 E  S( e4 G. R  p熟悉吗...这个数只要加上12,就是这个文件的大小了。而从文件头开始到0xA0 01为止,正好是12个字节。
0 J6 u$ Z2 H8 l  ?" l# m, Q4 y
1 l  u4 K6 I+ C  L6 ]7 Q整理一下格式1 p& K5 w9 d  |9 X+ D) b7 {
; E6 E+ y4 c) V+ j! H
  1.           文件头          四字节数值      四字节数值B        正文
      N' w" ?% I* V: i3 ^
  2. 0x00开始:F2 03 00 00    XX XX XX XX     XX XX XX XX    XX XX XX XX
复制代码
6 u# L1 h1 X0 G
A*B=正文的长度- s. `  x3 [$ @- s) t; T. v
5 Q' x4 T" \+ w( ~
也就是说,如果要改内容,就一定要改A和B的值,让它们的乘积符合长度,否则很容易出错...# S  G9 Q. O' w
7 R7 B8 r. c+ y) v6 @. P' F% r% e2 i
但是仍然有一个问题,就是A和B的值是随便选的,还是有规律呢?
  x( E( I- V8 G' t7 d' G; h* ]* Y" P2 Z8 ~
我还不知道..需要调试。
* h' s1 B1 O4 S2 R3 M. v( t. G7 O6 e* d, C0 ^
所以还是不要轻易改的好...
5 x. _* b# r/ C* A0 ~============================/ }" a* K: m' W. `5 A& f2 D
说到脚本,就顺便说一下Script\下的脚本文件格式。  W! F- D8 b4 _$ i$ [+ \

) {( R: e( p+ ~) ?# P6 X2 L不说怎么分析的了。就说结构吧。
2 R% E, P7 G% y8 r' Z# n' n% {# n$ @
  1.            文件头           文件头          压缩前长度      压缩后长度
    9 \# t4 i; W, s
  2. 0x00开始:00 00 00 00    80 00 00 00     75 63 49 00     DE CE 22 00
    + D; C9 r, H. }0 R8 M1 Z
  3. ……
    8 m% v) A" r& o4 b; \' l8 O; B# J! [
  4. ……
    7 l1 i; {; E. q  j( z
  5. 0x80开始:正文
复制代码

! H& a' M% d  m7 Q5 w3 S正文内容是LZO压缩后的luaPlus脚本。# N- R/ K2 T( l+ s! B. g& n# y
解压缩算法也还需进一步调试。
% j6 v8 Z$ h4 w! z7 N% q0 _=============================6 f$ K: R5 t' o' x  {+ I( W6 Z* |& R
顺便说,为什么改存档就没事。' V2 m! ^2 j  W. g

6 V# Q* H0 r1 Y( e; u因为存档既没有加密,前面也只有文件头"EC 03"..所以带胶布。1 T  n3 `) y) r8 @# j3 D4 P
0 D, X$ z5 l+ y& b  O( o( l% l
发表于 2014-11-18 21:49 | 显示全部楼层
好仔细的研究,我没看那么多……2 j8 b' q5 k8 y% R/ ~: {) [
也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应该还是好说了。不过既然内存也能修改,还是尽量不要动文件本身了吧。。* F( L) t$ L0 P* E- C
script下是什么的脚本?如果剧情的话只看游戏资源是不是只能得出一个最全面的攻略。。但具体触发其实还是要看内存中触发时的判断机制?
8 {1 z3 ]% T+ r4 W2 y; J
5 \8 {+ G: N6 S4 y5 J
 楼主| 发表于 2014-11-18 22:00 | 显示全部楼层
止慈 发表于 2014-11-18 21:49% I7 Z5 f7 D# q6 j
好仔细的研究,我没看那么多……
& a/ W( D. c0 |; J! c( U, F也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应 ...
9 V2 r* |3 P% T2 ]% I

9 Z" e8 Q3 M8 T) ~+ g脚本就是整个游戏的脚本。, v) r, h% [' p" u
+ d( |- t* f1 g  ]% W2 ]9 w
只不过被加密了,所以不解密只能看到断断续续的中文说明。2 [2 c( t, }5 _: n
3 D3 [) X1 C+ F6 M3 c9 c8 ^
然而如果能解密,那么以此可以做出来最好的攻略...0 R! u4 [( I1 k- q. {, I
3 g& h% G- Q4 e$ \( n* |# ~$ ?
另外还能做mod之类的东西。' k: h( J0 }7 z9 D. N
# V. _, N; [7 o7 j# @3 y2 j+ ^5 B
至于内容是什么样子的...其实就是这张图。9 t& D/ m+ Z; O
$ t" g0 \% P; S; m
QQ圖片20141118215130.jpg : K6 C9 i3 n4 m! k- e% _2 |! F

7 u$ D" k9 C" g8 \" |就是lua脚本而已...3 K* ^1 u5 u4 H/ ^# L
发表于 2014-11-19 11:05 | 显示全部楼层
好高级哦,从来搞不懂这种修改的默默地飘过......
发表于 2014-11-19 18:03 | 显示全部楼层
如此高端,学计算机的默默的飘过,知识全还给老师了,果然还是没学到位啊~~
- F! ]* z4 @5 F) N% g/ M" v6 N* g' H4 x结论就是还是乖乖的玩游戏才能体会到乐趣~~yeah!!
发表于 2014-11-19 19:32 | 显示全部楼层
放心,雨神。。。
6 W1 F7 R3 F7 M& N1 A& |2 w7 c
0 _% ]3 n4 |: W+ ?! s: ^没人敢碰的。。。
1. 严禁讨论盗版
2. 除专门水区以外(报道/JQ版)请您注意要减少水分哦。水区热烈欢迎以下内容:灌水,版聊,勾搭,抢沙发
3. 更多发言规定在这里
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|明志略 |明志略已经运行了20年2个月24天

GMT+8, 2024-5-22 05:52

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表