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

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

[复制链接]
发表于 2014-11-17 15:34 | 显示全部楼层 |阅读模式
本帖最后由 differentrain 于 2014-11-17 17:17 编辑
( q. U* h! ~, W) c8 l. o. @  W$ x+ k6 y+ F
其实最好是一切文件都不要改,只通过内存修改... t! ^/ Z  Y8 U% l' d) p
7 v! T7 D3 [+ ^- p1 p! B1 T  B
想从脚本的角度去控制游戏剧情,就看了一下游戏文件。发现游戏文件都是经过压缩或以特殊方式存储的。. |; G2 j4 J- G/ E' m
- u# ?0 `5 s1 H, b! D! @
这里是想说,这种存储方式会让我们产生一个美丽的误会,让我们觉得“呀,能改”....
6 _6 G, M2 E* S$ b+ ~
4 n0 {. E- S) B! W! J, d8 l===================
" ~- V- h4 j2 jData\下的文件:存储了游戏的数据。
) K* A: |- s2 L! |. }. U6 {
6 A0 J6 o3 s& ?虽然内容没压缩,但是却有特殊的格式。
! @/ p* x1 C/ a5 t. S& p8 F* _" f2 c) b( u( L
这个举例吧。
+ h; w7 X. l2 Y5 Z( ?8 w1 u: y- _- F5 V0 u
当我们用BIG码(950)打开文件\Data1\TVCase.dat的时候,除了乱码,我们看到了繁体中文的文字,看到了编号。# V( P  M" x  L3 o) P  k  F

' }5 S8 G. ~- R0 \3 E 1.jpg
" Z# u! o/ z  ^, j1 @! [5 j, _$ X+ ]! \. J2 x  ]
但是这么改是会有问题的...+ m% x8 e5 t/ Y' M" D+ \

; j. |8 t7 [# I7 f看十六进制内容。1 T: g) S4 ]7 `

( R6 N' Y  C2 {) ~* C3 U 2.jpg 7 D. B7 e7 n3 F+ x5 E$ |( Z
, h5 D" Y+ F) }4 Y6 Q4 A
就看第一行。
) X. Q% u$ Q& _
( Q4 B( _9 H% B$ k0x00的位置:F2 03,是文件头(文件类型的标志)。内容固定。Data下每个文件的最开头都是这样的。
8 A# S$ ]% G" {5 i4 E
% _# F2 b( [$ j- v8 a9 @往后四字节。0x04的位置起是6F 01;0x08的位置起是A0 01;0x0F位置起对应的字符是TV001..% L  W0 M3 \+ f9 g' W

) V4 @$ \/ m6 I2 R) @7 z. ZTV001肯定是编号了。那前面的两个是什么呢?
% Y  H& `7 w2 B& Z
+ d4 r# U! D! w: F/ t" ?% P  V6 P/ `; K" Y) w# F
看文件大小。
0 s% `5 r1 R- m7 |9 Q  \/ k) t3 y# o$ H, W& {5 K, C
3.jpg
4 J" i, I2 P) ]. |4 k8 |
4 e7 ^: E) B! j7 ~% ?16进制存储是从低位到高位的。所以6F01对应的十六进制数是16F,而A001对应的是1A0。2 U( B/ c, i" D- K4 i- }

+ o, ]: [: X; A. M. C5 h2 u打开计算器,在16进制模式下把这两个数字相乘。然后转换到10进制。+ n9 `+ Z' O. w6 e+ s

  N! l: X, C) P+ o/ s% W我们得到了一个数字:152672
* p5 A2 ?5 M$ C# i6 n  w( F  r
# b7 o8 A7 d1 b6 K+ v" N熟悉吗...这个数只要加上12,就是这个文件的大小了。而从文件头开始到0xA0 01为止,正好是12个字节。
0 {- I% y$ V8 s
& k& z* d7 ?. U* u% Q整理一下格式% p+ d  P- a  k8 V. @
4 g9 @, N+ w* n; U& N  ~- V' {4 }
  1.           文件头          四字节数值      四字节数值B        正文# K' w$ V/ e1 r/ s( C! Z6 p4 M
  2. 0x00开始:F2 03 00 00    XX XX XX XX     XX XX XX XX    XX XX XX XX
复制代码

4 o' j/ |* K9 V/ P4 f/ WA*B=正文的长度
& w* i; p( i7 @: P& c' M$ F
, q6 O$ e# D' V9 M3 A也就是说,如果要改内容,就一定要改A和B的值,让它们的乘积符合长度,否则很容易出错...
* L, C0 \4 c7 l7 M6 N7 H3 N& o5 m- D4 f
+ w) D! k9 k: Y# w) S( i, I+ i但是仍然有一个问题,就是A和B的值是随便选的,还是有规律呢?4 N" N; u( s5 @
. K3 ]5 {% v- u" I  W
我还不知道..需要调试。. Y, j' c6 w9 \. Q" A/ Y3 H

, l8 N/ h+ o4 c4 `6 }2 Q" i& ~所以还是不要轻易改的好...- w( ^5 K/ F6 h: s8 N4 j" z/ h4 y
============================- B3 J* ~! [* g
说到脚本,就顺便说一下Script\下的脚本文件格式。: x( O, k+ W. X

  u9 j- I$ D* z% r不说怎么分析的了。就说结构吧。
3 Q; c0 w/ ]4 h( ?
  1.            文件头           文件头          压缩前长度      压缩后长度9 A4 k) B( v! r5 f+ h; g; O
  2. 0x00开始:00 00 00 00    80 00 00 00     75 63 49 00     DE CE 22 00, F' I0 h6 @% C% `0 J
  3. ……
    . {  @8 B8 k5 O& q/ {  c) y5 A
  4. ……
    * ^( q# u# A& h; h: w8 V
  5. 0x80开始:正文
复制代码
, `+ f  D3 w( Z! @! d& ?7 u
正文内容是LZO压缩后的luaPlus脚本。) R! G: W! Y8 g1 a' v
解压缩算法也还需进一步调试。. i8 {4 ?6 g; U# A8 b+ D# o
=============================3 U5 d) D7 f1 y& {
顺便说,为什么改存档就没事。
5 I* K9 J( L9 D+ o0 D3 \4 c9 ]' q2 v4 q- [: p' H5 G
因为存档既没有加密,前面也只有文件头"EC 03"..所以带胶布。" K$ z+ r$ L+ v; M  I
4 M% N1 E" D. n5 V: z7 _5 O
发表于 2014-11-18 21:49 | 显示全部楼层
好仔细的研究,我没看那么多……4 u% x! E- C$ o. K4 J
也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应该还是好说了。不过既然内存也能修改,还是尽量不要动文件本身了吧。。
% U) K3 M! ^8 s7 K& Q% }script下是什么的脚本?如果剧情的话只看游戏资源是不是只能得出一个最全面的攻略。。但具体触发其实还是要看内存中触发时的判断机制?- m* i1 X3 ~" S* ^8 T
, t4 z- w- h% V( `& D( g
 楼主| 发表于 2014-11-18 22:00 | 显示全部楼层
止慈 发表于 2014-11-18 21:49
. u; M3 u8 O2 p好仔细的研究,我没看那么多……: F! q- b6 H  `4 b
也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应 ...

& q* ^( M5 P  t) j
8 ]4 O2 m. R0 I8 l+ s6 I脚本就是整个游戏的脚本。6 \( }% p4 ]! N
2 R6 I$ d3 Q9 J8 _# v
只不过被加密了,所以不解密只能看到断断续续的中文说明。
5 A6 ^: O) i* ~7 k$ Z% R" ?! s, C2 R/ s, l& d
然而如果能解密,那么以此可以做出来最好的攻略..." K$ a  P/ l' A7 N4 e. i

, `$ [$ o$ t0 ]& ]另外还能做mod之类的东西。) C: m+ S5 a0 R

4 }8 O- B' Q1 l+ @( p至于内容是什么样子的...其实就是这张图。' h7 g( s9 c3 U) l& G+ ~3 G' g3 D$ g2 p) ^
; H, R1 e4 q8 I4 \# J6 S
QQ圖片20141118215130.jpg " n7 c, e( n1 p  f
) F* W% {  i- E1 @& I1 K( q6 H
就是lua脚本而已...
. B6 l: d& J- r4 S4 f0 G, n
发表于 2014-11-19 11:05 | 显示全部楼层
好高级哦,从来搞不懂这种修改的默默地飘过......
发表于 2014-11-19 18:03 | 显示全部楼层
如此高端,学计算机的默默的飘过,知识全还给老师了,果然还是没学到位啊~~/ Z& G1 P* H7 J  A" R+ C- J$ g6 t
结论就是还是乖乖的玩游戏才能体会到乐趣~~yeah!!
发表于 2014-11-19 19:32 | 显示全部楼层
放心,雨神。。。
1 l, M& Y4 ^- d2 o+ y0 x7 ]# C2 p% Q3 s5 [; F. M* U; v) y% M
没人敢碰的。。。
1. 严禁讨论盗版
2. 除专门水区以外(报道/JQ版)请您注意要减少水分哦。水区热烈欢迎以下内容:灌水,版聊,勾搭,抢沙发
3. 更多发言规定在这里
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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