用户名  找回密码
 立即注册
帖子
查看: 3013|回复: 5

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

[复制链接]
发表于 2014-11-17 15:34 | 显示全部楼层 |阅读模式
本帖最后由 differentrain 于 2014-11-17 17:17 编辑 * f; P) ]7 u4 B' w
' c: G' e) y- r
其实最好是一切文件都不要改,只通过内存修改..! m% |2 r/ h- `2 c/ G- J
2 d0 W) e$ v0 c/ D/ ]  _* {
想从脚本的角度去控制游戏剧情,就看了一下游戏文件。发现游戏文件都是经过压缩或以特殊方式存储的。7 h7 n" v( o" y

& w+ ]" i  J  L/ S1 B- i$ j9 b) f) N这里是想说,这种存储方式会让我们产生一个美丽的误会,让我们觉得“呀,能改”....- t1 g6 N0 S6 f# j! f  {: u3 e

- w- L8 J: C( s2 H9 s; q$ x===================
+ {( C) T3 b! K) c3 B8 N6 j$ jData\下的文件:存储了游戏的数据。5 L/ [2 j8 H, M( E6 d+ |" S0 S5 t

7 j5 G3 e6 _/ `8 [$ a虽然内容没压缩,但是却有特殊的格式。! D7 |8 _2 T2 Q

; W/ k) f  G3 |: l! X- @这个举例吧。' [$ N9 Q8 x# W- e* }, n
3 R4 @) \. N, G, J+ G# L4 S0 l
当我们用BIG码(950)打开文件\Data1\TVCase.dat的时候,除了乱码,我们看到了繁体中文的文字,看到了编号。
. K4 z5 |6 R) ^, q- ~) e# X5 }
5 B$ q9 d# V( ]# A: [1 R 1.jpg ; r! n. c6 }3 X9 z0 d

2 v1 L  N: v8 {! X- }# ]但是这么改是会有问题的...
4 u" |/ I5 d, ]8 A0 Q' ^( x" S$ D# {! T4 z
看十六进制内容。
) P7 C1 Z+ j! F/ @7 @$ e
8 H7 Z+ y9 j7 C  R5 o$ ~ 2.jpg   I3 X% O5 B# B5 X0 m
5 ~1 e0 I* o% T0 w6 f: F7 r
就看第一行。
! e6 p, y% J4 L' X" }+ Z1 C/ G. D" Y6 p0 ?1 r7 T. @2 p& S- _7 M- |
0x00的位置:F2 03,是文件头(文件类型的标志)。内容固定。Data下每个文件的最开头都是这样的。2 w* l$ |5 h; o1 q

' `3 q2 D) ^; m# {0 w往后四字节。0x04的位置起是6F 01;0x08的位置起是A0 01;0x0F位置起对应的字符是TV001..
! O) C" F6 M( M* {4 n& `1 R0 s5 e! F5 `6 z6 F  Z; J+ d
TV001肯定是编号了。那前面的两个是什么呢?; g0 z+ i. w9 W1 d& m
7 F+ a2 v& g* b2 _% Y  @5 `; Z0 u9 o
( @5 x  e: _. ~( j- n
看文件大小。: O) k3 [2 l: r" g4 D. @

, x; l- K6 b2 Z; {  U 3.jpg 9 N8 n$ K, A9 ~" k

" ~- D- w- m' E( b16进制存储是从低位到高位的。所以6F01对应的十六进制数是16F,而A001对应的是1A0。
: w/ ~1 A  K4 {6 p% A& F; s: {" C2 k5 s$ e8 d) v6 v' L% ?* W' E
打开计算器,在16进制模式下把这两个数字相乘。然后转换到10进制。
8 i# J! }6 T; D6 B, Z8 {3 {5 ^7 f' U0 a
我们得到了一个数字:152672! S  V! _) Z# R9 j- o

! F( I# R& h* [5 s1 f. e熟悉吗...这个数只要加上12,就是这个文件的大小了。而从文件头开始到0xA0 01为止,正好是12个字节。
# _* |* i) [9 g" \& ~4 f
; q! I7 ]* V* G9 p7 V1 D整理一下格式( `! J( \8 z6 ]1 Q
4 l1 I$ R/ L6 @# @
  1.           文件头          四字节数值      四字节数值B        正文: E0 Y# N+ u2 I% [
  2. 0x00开始:F2 03 00 00    XX XX XX XX     XX XX XX XX    XX XX XX XX
复制代码
2 @) k5 T! w- g, D* J. o
A*B=正文的长度
: c7 R! u* @: z; b1 Y$ G8 }
  V+ Q* q. ^* p" o+ k也就是说,如果要改内容,就一定要改A和B的值,让它们的乘积符合长度,否则很容易出错...) |: I* E( a9 ]; l1 }$ R' x1 Q
  K# S: W# Y; W
但是仍然有一个问题,就是A和B的值是随便选的,还是有规律呢?
( Z1 h4 o6 C2 S9 V' M- |, H: z6 B. |* w/ |. I/ [; P3 X6 ], f
我还不知道..需要调试。8 @  t4 c: o( z/ I
6 f4 E% C* Z2 ?& y. [+ C/ h
所以还是不要轻易改的好...
; o$ Y5 ]5 S1 e8 E) Y  W- f============================% z4 W3 ^- b4 w- O8 u
说到脚本,就顺便说一下Script\下的脚本文件格式。3 L* ?6 l" P8 D6 m, s6 ?5 z1 q) {1 j
% g( ?) X4 F  I
不说怎么分析的了。就说结构吧。
  t# I! L' i! l) l& ~9 N
  1.            文件头           文件头          压缩前长度      压缩后长度$ d$ \) b- P+ N/ |1 x8 x  y* n
  2. 0x00开始:00 00 00 00    80 00 00 00     75 63 49 00     DE CE 22 00
    ! [; K4 f7 q6 i
  3. ……! t5 t8 F% B: C9 C0 E: I
  4. ……
      c& a* Q2 D+ T: ~$ ^$ t( B7 I8 ^- x
  5. 0x80开始:正文
复制代码
4 U1 k& z1 {5 T. |5 m" O! r4 n+ [
正文内容是LZO压缩后的luaPlus脚本。
" _8 _- j  ?; F% C1 m1 s解压缩算法也还需进一步调试。0 H1 i9 q5 L+ q' @8 ~2 S- P1 a. d
=============================5 T9 @7 Q5 `! T0 W; ]
顺便说,为什么改存档就没事。
2 G- u9 G( _2 o) T3 M+ E4 X7 R, i& s, j  b1 g9 u2 m2 h. a6 _
因为存档既没有加密,前面也只有文件头"EC 03"..所以带胶布。
+ z3 c) O+ b' f8 a% p
% b5 I$ G2 N1 z3 H9 s
发表于 2014-11-18 21:49 | 显示全部楼层
好仔细的研究,我没看那么多……( a5 j* d! h; H" I
也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应该还是好说了。不过既然内存也能修改,还是尽量不要动文件本身了吧。。
+ I, V3 ~) D$ p1 `: zscript下是什么的脚本?如果剧情的话只看游戏资源是不是只能得出一个最全面的攻略。。但具体触发其实还是要看内存中触发时的判断机制?
1 b. x) c4 j: w& n: e5 s% C) l3 m
 楼主| 发表于 2014-11-18 22:00 | 显示全部楼层
止慈 发表于 2014-11-18 21:49
8 ~# _, w) A% V: _  a8 |好仔细的研究,我没看那么多……
/ \$ e& ^: n0 {* R1 E# Z也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应 ...

  u7 ]" v8 @# d) `7 @* [# a. O' P( B& ^& r8 V9 X3 I) Q) P# e
脚本就是整个游戏的脚本。
4 A2 }& i/ V, z0 a7 N
8 R* K4 z- y2 e8 b+ }) f只不过被加密了,所以不解密只能看到断断续续的中文说明。
1 \3 i, q, i* O  I, M, ]0 {4 m- K. B+ ~* U- L1 i
然而如果能解密,那么以此可以做出来最好的攻略...
" Y$ s8 I7 i0 s+ x: b0 E- H# |# v1 c! P1 @7 d
另外还能做mod之类的东西。, h; p& z! @/ B- h0 W; X, g- K

& t1 g# H  g. z, @& D) B, u# G5 w# w9 Q至于内容是什么样子的...其实就是这张图。! C8 ]0 o8 t( j6 B6 R+ o8 ^
. k0 c! |6 F0 `0 G4 `7 ^
QQ圖片20141118215130.jpg
# q9 {) F8 ]9 w' k  f0 A
5 `" S6 i* j* f" U& k# e就是lua脚本而已...
9 z7 q' p! e( e* ^3 [! R( v& q
发表于 2014-11-19 11:05 | 显示全部楼层
好高级哦,从来搞不懂这种修改的默默地飘过......
发表于 2014-11-19 18:03 | 显示全部楼层
如此高端,学计算机的默默的飘过,知识全还给老师了,果然还是没学到位啊~~+ [3 d& M! ~. Z9 }
结论就是还是乖乖的玩游戏才能体会到乐趣~~yeah!!
发表于 2014-11-19 19:32 | 显示全部楼层
放心,雨神。。。$ ^% f; \5 E# M& e0 @" h2 ]' A) K$ V

# G& V: t4 w4 ]/ s8 h8 x- {没人敢碰的。。。
1. 严禁讨论盗版
2. 除专门水区以外(报道/JQ版)请您注意要减少水分哦。水区热烈欢迎以下内容:灌水,版聊,勾搭,抢沙发
3. 更多发言规定在这里
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|明志略 |明志略已经运行了21年0个月10天

GMT+8, 2025-3-10 06:20

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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