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

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

[复制链接]
发表于 2014-11-17 15:34 | 显示全部楼层 |阅读模式
本帖最后由 differentrain 于 2014-11-17 17:17 编辑 % N7 r$ }! B! [

" m% j; i. M& e; R% j其实最好是一切文件都不要改,只通过内存修改..) I. o1 t: H* U2 s" ]: o
: P2 R* ~. S4 }  |
想从脚本的角度去控制游戏剧情,就看了一下游戏文件。发现游戏文件都是经过压缩或以特殊方式存储的。
) D& x' u3 u8 A+ Q' q
( _3 r4 h; w7 b这里是想说,这种存储方式会让我们产生一个美丽的误会,让我们觉得“呀,能改”....
& j7 E7 |( q( G7 w4 N8 ^: w! G; X' Y" l5 @
===================
! U, A; j, d  ^$ W$ NData\下的文件:存储了游戏的数据。6 t; V' z# H; C0 k0 P$ S

/ W' V$ e% ~7 N1 r1 t虽然内容没压缩,但是却有特殊的格式。
# ?7 n0 ?" K5 ]  o& v$ j& i$ U) d' M& o
这个举例吧。) I" _* _9 g9 o  `. Q4 {8 i5 b
1 V4 J. z( g- y" Z( s
当我们用BIG码(950)打开文件\Data1\TVCase.dat的时候,除了乱码,我们看到了繁体中文的文字,看到了编号。8 S+ _! ]: }( L- b! h- d

) j1 f4 O& w: Y 1.jpg + j$ W$ t7 u4 t1 }: M7 J( v" G5 _
3 Q1 T' ]# K% l' d5 j
但是这么改是会有问题的...
! A0 S0 X1 H2 ~7 x  k. I5 e
$ X# e+ m* e3 g: o( [) U  C看十六进制内容。% R7 [4 J+ k8 d; |3 c, g8 ^6 J* J

& c. l, m, [; o 2.jpg
- u6 {, C% Q& H: w+ W
, X' g1 U6 y! s* F% d5 l就看第一行。
4 b  q7 f  D* A0 L2 O) g% J
* M# W- ^, p3 A2 \0 n& G0x00的位置:F2 03,是文件头(文件类型的标志)。内容固定。Data下每个文件的最开头都是这样的。, W& t$ {; e, D2 D6 O) B

0 q* s7 ^# S) y; x1 J" @往后四字节。0x04的位置起是6F 01;0x08的位置起是A0 01;0x0F位置起对应的字符是TV001..
( Z* N* V/ d' t' v/ u
. A' c6 N) v" QTV001肯定是编号了。那前面的两个是什么呢?9 ~5 Z9 Y  k$ r/ z3 p+ o7 T

+ R" Q" t& z, ]: i4 t7 |
* \; L- v5 O- O( m看文件大小。* F  O, x$ x/ z2 j, I

  w/ j/ u/ w$ y- _ 3.jpg
4 s$ l  p; j+ _1 e4 O* O
( H0 r! |: a6 P16进制存储是从低位到高位的。所以6F01对应的十六进制数是16F,而A001对应的是1A0。
& y% K, q6 y' X& M9 ~) C7 y% @: `( {3 m1 `4 R; y1 G) J3 I
打开计算器,在16进制模式下把这两个数字相乘。然后转换到10进制。
. b4 {8 F; q9 h
$ C- a+ |4 _( S我们得到了一个数字:152672- a5 {0 w) R5 F* A

# }1 p; d" F* j& N! {6 ?熟悉吗...这个数只要加上12,就是这个文件的大小了。而从文件头开始到0xA0 01为止,正好是12个字节。
1 k* ]5 z+ }' R3 @8 J* c9 |5 ], `0 C+ t
整理一下格式
) A8 c: X' h( a8 j# }3 U& l8 I( c1 B% t: R: Q* X
  1.           文件头          四字节数值      四字节数值B        正文) e& D7 C& V4 {( M. ?8 t
  2. 0x00开始:F2 03 00 00    XX XX XX XX     XX XX XX XX    XX XX XX XX
复制代码

& f7 Q' ~' I$ J) S" L# q2 DA*B=正文的长度/ p( F$ v" k: M; m7 {" u8 S
1 f/ ^5 A' l! L
也就是说,如果要改内容,就一定要改A和B的值,让它们的乘积符合长度,否则很容易出错...
; S& ^' j5 c, M& K
$ G1 G% T9 [" x但是仍然有一个问题,就是A和B的值是随便选的,还是有规律呢?
$ s$ b0 e, \8 E) M1 U' _1 u8 x" i8 T' W# ~
我还不知道..需要调试。
: `6 W7 f5 @6 s* \/ V9 ]. _* @3 B$ C
所以还是不要轻易改的好...
2 e  F* _8 F# ~1 I- ]9 j( r============================' y) S" Y0 c) C/ a/ Q. [) C/ `# V
说到脚本,就顺便说一下Script\下的脚本文件格式。. ?7 {- h  C; }+ V/ C6 r" n8 o

- q# r7 o, H, {% Z) x9 J2 }不说怎么分析的了。就说结构吧。
. r% @# c. \, ~
  1.            文件头           文件头          压缩前长度      压缩后长度
    ' X/ X% ]: v, [  s8 F
  2. 0x00开始:00 00 00 00    80 00 00 00     75 63 49 00     DE CE 22 00+ ?7 ?  b1 {& F) O) c
  3. ……
    % f8 U7 q+ h! d6 y. k
  4. ……
    : d1 O, H3 x7 Z, j
  5. 0x80开始:正文
复制代码
) @9 R$ P% X4 c5 t/ v+ g  M& I: O- s
正文内容是LZO压缩后的luaPlus脚本。4 |" A6 R, m# j0 k  `
解压缩算法也还需进一步调试。
/ Y1 l% g- Z0 [% ~- Z1 s. v=============================/ U$ k1 M6 {$ s( b5 w( y/ n7 h; p8 H
顺便说,为什么改存档就没事。/ q5 Q% \) |" D' s/ p4 p3 F7 D9 z
! A9 ^. O% D, y, X' }& c. ]: F
因为存档既没有加密,前面也只有文件头"EC 03"..所以带胶布。! k% ^: h4 L# \# N
/ L2 c4 y% ]) c) F' {
发表于 2014-11-18 21:49 | 显示全部楼层
好仔细的研究,我没看那么多……
$ J4 u/ B" i6 m也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应该还是好说了。不过既然内存也能修改,还是尽量不要动文件本身了吧。。
2 w+ U! ]9 w9 @: N. y$ ^; L; @script下是什么的脚本?如果剧情的话只看游戏资源是不是只能得出一个最全面的攻略。。但具体触发其实还是要看内存中触发时的判断机制?
/ b3 Q1 u# ~$ Y  N7 D
; _; X) {, C  n9 M' h5 i0 S
 楼主| 发表于 2014-11-18 22:00 | 显示全部楼层
止慈 发表于 2014-11-18 21:49
4 M' J; I" C0 B* t' Z: l$ s, M# B3 n9 _( C好仔细的研究,我没看那么多……
$ [) v( y; u% b( k" F也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应 ...
7 J8 T. A8 Z& V% L, C
8 u+ y5 r' e, w" i
脚本就是整个游戏的脚本。
2 E* Z) v, e# _% F9 H/ }' V9 z* d) N' {: M, v" j( [5 O
只不过被加密了,所以不解密只能看到断断续续的中文说明。
( ^6 y3 u0 o; W' L# P/ d( s! ^' x
然而如果能解密,那么以此可以做出来最好的攻略..., Q0 K; k: G* ~8 G; ]& Z% K
6 B# D1 R% i; T% u
另外还能做mod之类的东西。
8 M6 }$ A4 W5 L8 @9 u: g7 `0 K: R* w  q2 H
至于内容是什么样子的...其实就是这张图。( ^2 K; m1 @5 P

8 B& a2 \2 R5 Y- i; ?; N: w QQ圖片20141118215130.jpg
# X2 x/ w  x0 n- j6 u& l( T3 y7 y) }1 X$ A$ x! M
就是lua脚本而已...9 q. j7 I6 }' a7 O! u/ x( u
发表于 2014-11-19 11:05 | 显示全部楼层
好高级哦,从来搞不懂这种修改的默默地飘过......
发表于 2014-11-19 18:03 | 显示全部楼层
如此高端,学计算机的默默的飘过,知识全还给老师了,果然还是没学到位啊~~) I3 n( x/ E* T( k9 D1 `
结论就是还是乖乖的玩游戏才能体会到乐趣~~yeah!!
发表于 2014-11-19 19:32 | 显示全部楼层
放心,雨神。。。
& ^" X! w5 s) P( \9 |1 f* V7 g
! [: q- `' N( Q$ c. P0 ^* k没人敢碰的。。。
1. 严禁讨论盗版
2. 除专门水区以外(报道/JQ版)请您注意要减少水分哦。水区热烈欢迎以下内容:灌水,版聊,勾搭,抢沙发
3. 更多发言规定在这里
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-17 17:57

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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