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

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

[复制链接]
发表于 2014-11-17 15:34 | 显示全部楼层 |阅读模式
本帖最后由 differentrain 于 2014-11-17 17:17 编辑 " S/ N! Z* \) }9 i

' F" \1 |& }- g/ O其实最好是一切文件都不要改,只通过内存修改..
& R4 ?8 q' H0 x7 x! u
2 k; i0 [  E/ L& K  ]3 w想从脚本的角度去控制游戏剧情,就看了一下游戏文件。发现游戏文件都是经过压缩或以特殊方式存储的。1 M1 x, n' |$ N' O
- Q: q0 e" B: l* S  E
这里是想说,这种存储方式会让我们产生一个美丽的误会,让我们觉得“呀,能改”....% V9 M2 I2 G; h7 }7 \

  I3 J; i4 N# x/ Z$ }! F===================; n% s" P! r  B
Data\下的文件:存储了游戏的数据。
( a" Y- j6 j! E" ?5 _. a2 @! W: x+ J6 N
虽然内容没压缩,但是却有特殊的格式。1 F! t, g  a9 F+ J+ H
* J; A& ^' o+ X* l) S8 Q2 ]' V
这个举例吧。) S. y" h! P9 o0 h4 @

$ H/ m8 b9 z; d2 O4 i当我们用BIG码(950)打开文件\Data1\TVCase.dat的时候,除了乱码,我们看到了繁体中文的文字,看到了编号。
+ ]& w/ J; I& E, {+ h8 t* R; a% t+ M; e% h8 G. [7 y
1.jpg
9 t9 c. g9 I& q$ N  E% ]* k
9 @1 a' O1 b" ]& t2 Q" x但是这么改是会有问题的...
2 C. d. P$ \! Y% {  n3 L; E/ A! z$ E3 y# T
看十六进制内容。% r8 [* Z5 ^7 J( v
% Y7 c. o' M2 k0 \2 z1 s  I! j
2.jpg
3 B  F( q+ k; @, I' K+ v% t' l  F1 S3 J- F1 R0 |5 S
就看第一行。
. R; O2 ]) D! d: L- ]% k4 |) C0 b% C, ?5 L- ^
0x00的位置:F2 03,是文件头(文件类型的标志)。内容固定。Data下每个文件的最开头都是这样的。2 Q) L4 U3 U2 s7 v. M, ~/ n( G

6 o$ M$ N7 B7 v8 V往后四字节。0x04的位置起是6F 01;0x08的位置起是A0 01;0x0F位置起对应的字符是TV001..
6 Z  e1 J* |* x1 P' Y2 E) `: w& C4 B6 ?" r- W1 R- j) N# G
TV001肯定是编号了。那前面的两个是什么呢?* i1 Y( B% m/ O5 Z$ Q. s( Z

1 d+ r. _- w- G
$ C) q( ]3 _4 H& M( i/ A# h看文件大小。
% @% q8 d) |7 u+ Y4 h6 B9 ~
, G0 n# W9 B1 [" w: |8 p6 y 3.jpg # E* v# z4 U: @' K+ R

2 _" P# b- j; j+ t8 V$ i# ?8 r16进制存储是从低位到高位的。所以6F01对应的十六进制数是16F,而A001对应的是1A0。% z5 J* s7 i/ f) B  g

& L) q% K: i$ Q! F打开计算器,在16进制模式下把这两个数字相乘。然后转换到10进制。( @" N( C; c4 U1 A0 V$ p9 J

) Z( n7 d: i" X我们得到了一个数字:152672
8 i2 |  Q6 N7 ], M/ a8 e8 ]
$ U; k3 W: f& J熟悉吗...这个数只要加上12,就是这个文件的大小了。而从文件头开始到0xA0 01为止,正好是12个字节。
7 q/ C7 l: M. Y! a; W0 m7 Q9 h2 @$ w( M* o0 r$ o
整理一下格式
, P' T0 _5 d$ [7 T9 c& t9 _6 ?$ `) V$ b* t' J  h
  1.           文件头          四字节数值      四字节数值B        正文9 |; C( E3 `6 D  J
  2. 0x00开始:F2 03 00 00    XX XX XX XX     XX XX XX XX    XX XX XX XX
复制代码

7 H# Q0 \; u( v, D- R( pA*B=正文的长度/ j+ W3 j! k, P, K, c3 g
2 x4 N; t5 Y( M: ?8 X8 n5 p! }
也就是说,如果要改内容,就一定要改A和B的值,让它们的乘积符合长度,否则很容易出错...
( U1 t- d) }9 g7 U7 ]* `
' C" B! o+ v; n& c% ]9 z7 K  e2 d& r但是仍然有一个问题,就是A和B的值是随便选的,还是有规律呢?% x4 o  I, M# ]) R3 V

8 S" H6 g  }  Y) Z: I& p我还不知道..需要调试。: V; H$ `3 Z" n, e: X6 f; P/ m+ g
  x- N3 g5 j; ~3 c3 N
所以还是不要轻易改的好...
; y7 W! o4 W/ q4 n+ _5 `============================
* w& e3 u( D" D, d0 g/ o8 Q5 ]# j说到脚本,就顺便说一下Script\下的脚本文件格式。
* f& @, d5 x4 i6 ^  m) Z: P/ `5 k+ Z/ `& U+ Y8 h2 S6 T5 L9 z
不说怎么分析的了。就说结构吧。2 A0 ~# j7 G/ s+ D/ k" i
  1.            文件头           文件头          压缩前长度      压缩后长度& X3 Q) l- h1 q: I) E
  2. 0x00开始:00 00 00 00    80 00 00 00     75 63 49 00     DE CE 22 00/ Q. [: o5 G7 b& d, d4 Z' o7 u
  3. ……$ A; S4 [/ g& t; Z% C6 U) y0 `
  4. ……/ t9 X' [$ b' @: Q" v, f7 p
  5. 0x80开始:正文
复制代码

3 k1 K" m, p5 y$ Y* Y正文内容是LZO压缩后的luaPlus脚本。7 a- @6 j+ b: U: _. L# |
解压缩算法也还需进一步调试。& P& J  a8 _$ l1 ~) K  `
=============================3 F# F0 O! ]& y0 z2 _9 o5 p9 _
顺便说,为什么改存档就没事。( v: u) R( P( @# n

- `* T7 ^, d+ g! o$ g5 `) A因为存档既没有加密,前面也只有文件头"EC 03"..所以带胶布。
6 ]# h' I& _- h2 E9 `2 ^( P
8 ]; B# K# f* l$ N& d  T7 F7 J
发表于 2014-11-18 21:49 | 显示全部楼层
好仔细的研究,我没看那么多……
2 i4 i7 f$ D5 K, W3 }$ H也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应该还是好说了。不过既然内存也能修改,还是尽量不要动文件本身了吧。。
$ Q" n6 \  z$ A8 Wscript下是什么的脚本?如果剧情的话只看游戏资源是不是只能得出一个最全面的攻略。。但具体触发其实还是要看内存中触发时的判断机制?
/ o' J# c3 Y1 v( \6 M: b
& w( m, C+ Z4 j; U
 楼主| 发表于 2014-11-18 22:00 | 显示全部楼层
止慈 发表于 2014-11-18 21:49; r" q; E0 l# Q1 t- M
好仔细的研究,我没看那么多……
; D( |* i, M$ L7 @4 [/ D4 ]6 b也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应 ...

% ]% m$ O/ n# `6 h
  A. }$ [8 A# ~脚本就是整个游戏的脚本。
" J) m! k  _1 c# T  L+ w" ^, O% j, b) K7 R- K
只不过被加密了,所以不解密只能看到断断续续的中文说明。- A, b1 U& h$ E; z
  n2 z/ q6 B2 \3 C2 X  r
然而如果能解密,那么以此可以做出来最好的攻略...
/ C5 j& i, F  O# t' x
3 P+ A9 J1 ]- O0 v/ t; O# G另外还能做mod之类的东西。  L  d$ a. H) v) D1 J0 n" P1 I9 j! Y

, ?! Y7 J$ D0 m3 _* j1 A至于内容是什么样子的...其实就是这张图。
; b$ S+ V$ z8 C9 f  o# V/ `* T1 R$ O1 m" X% t1 h
QQ圖片20141118215130.jpg - a: g' ^  V3 C6 R
) l, J  B9 L* j0 z) s
就是lua脚本而已...) W. i# I. h5 N+ f$ }, o0 v
发表于 2014-11-19 11:05 | 显示全部楼层
好高级哦,从来搞不懂这种修改的默默地飘过......
发表于 2014-11-19 18:03 | 显示全部楼层
如此高端,学计算机的默默的飘过,知识全还给老师了,果然还是没学到位啊~~
5 t8 K7 p8 F  B6 Q; {& c+ [5 h. m0 A结论就是还是乖乖的玩游戏才能体会到乐趣~~yeah!!
发表于 2014-11-19 19:32 | 显示全部楼层
放心,雨神。。。' ?/ d9 [0 N% G

* b- t) [. l2 }" x8 ?2 g4 t没人敢碰的。。。
1. 严禁讨论盗版
2. 除专门水区以外(报道/JQ版)请您注意要减少水分哦。水区热烈欢迎以下内容:灌水,版聊,勾搭,抢沙发
3. 更多发言规定在这里
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 18:25

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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