http://apps.hi.baidu.com/share/detail/20397333
现在介绍下植物大战僵尸的存档:
用户的存档被存放在userdata目录下的userX.dat中(以二进制的方式存放),第一个用户的存档时user1.dat,第二个用户的存档时user2.dat,以此类推
存档中部分数据信息如下:
前10个字节代表金钱
第473个字节代表肥料数,最小为232,此时肥料数为0
第477个字节代表农药数,最小为232,此时农药数为0
第521个字节代表巧克力数,最小为232,此时巧克力数为0
第529个字节代表智慧古树的肥料,最小232
第213个字节代表古树高度
每种植物占用88个字节,其中:
第1字节: 植物种类
范围: [0, 47]
第九字节: 植物所在列
范围: [0, 7]
第13字节: 植物所在行
范围: [0, 3]
以下是存档修改的源代码:
#include <stdio.h>
#include <windows.h>
#define TOTAL 5044
#define START 820
#define SIZE 88
int info(void);
int getChoice(void);
int main(int argc, char *argv[])
{
int data[TOTAL] = {
12,0,0,0,34,0,0,0,100,247,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,10,0,0,
0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
0,2,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,
0,10,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,4,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,
0,2,0,0,0,2,0,0,0,6,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,2,0,0,
0,2,0,0,0,3,0,0,0,3,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,
0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,127,14,0,0,126,14,0,0,126,14,0,0,1,0,0,0,248,3,0,0,245,3,0,
0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,245,139,130,75,4,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,
0,237,3,0,0,1,0,0,0,232,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,
0,199,0,0,0,205,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,38,0,0,0,3,0,0,0,7,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,15,143,130,75,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,36,143,130,
75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,40,140,130,75,0,0,0,0,11,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,
0,0,0,0,0,70,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,
0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,141,130,75,0,0,0,0,10,0,0,0,3,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,0,0,0,0,199,142,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,38,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,11,143,130,75,0,0,0,0,11,0,0,
0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,30,143,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,16,143,130,
75,0,0,0,0,7,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,34,143,130,75,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,6,0,0,0,1,0,0,0,1,0,0,
0,0,0,0,0,109,140,130,75,0,0,0,0,11,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,141,140,130,
75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,7,0,0,
0,0,0,0,0,1,0,0,0,0,0,0,0,73,140,130,75,0,0,0,0,10,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,
0,0,0,0,0,117,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,
0,0,0,0,0,7,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,83,140,130,75,0,0,0,0,6,0,0,0,3,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,0,0,0,0,103,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,38,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,26,140,130,75,0,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,48,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,3,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,143,130,
75,0,0,0,0,8,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,30,143,130,75,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,30,143,130,75,0,0,0,0,12,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,49,143,130,
75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,5,0,0,
0,1,0,0,0,0,0,0,0,0,0,0,0,68,140,130,75,0,0,0,0,5,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,
0,0,0,0,0,100,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,
0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,140,130,75,0,0,0,0,9,0,0,0,3,0,0,0,0,0,0,
0,4,0,0,0,0,0,0,0,0,0,0,0,78,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,38,0,0,0,3,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,143,130,75,0,0,0,0,3,0,0,
0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,32,143,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,141,130,
75,0,0,0,0,10,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,204,142,130,75,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,69,141,130,75,0,0,0,0,7,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,87,141,130,
75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,2,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,20,140,130,75,0,0,0,0,9,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,
0,0,0,0,0,39,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,
0,1,0,0,0,5,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,64,141,130,75,0,0,0,0,7,0,0,0,3,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,0,0,0,0,197,142,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,38,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,61,141,130,75,0,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,190,142,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,12,140,130,
75,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,40,140,130,75,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,
0,0,0,0,0,32,140,130,75,0,0,0,0,11,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,50,140,130,
75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,1,0,0,
0,0,0,0,0,1,0,0,0,0,0,0,0,25,140,130,75,0,0,0,0,11,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,
0,0,0,0,0,49,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,
0,1,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,143,130,75,0,0,0,0,10,0,0,0,3,0,0,0,0,0,0,
0,5,0,0,0,0,0,0,0,0,0,0,0,84,143,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,38,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,17,140,130,75,0,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,39,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,41,140,130,
75,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,71,140,130,75,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,0,0,
0,0,0,0,0,68,140,130,75,0,0,0,0,11,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,98,140,130,
75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,4,0,0,
0,1,0,0,0,1,0,0,0,0,0,0,0,74,140,130,75,0,0,0,0,9,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,
0,0,0,0,0,111,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,
0,0,0,0,0,6,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,80,140,130,75,0,0,0,0,5,0,0,0,3,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,0,0,0,0,101,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,38,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,69,141,130,75,0,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,203,142,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,141,130,
75,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,194,142,130,75,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,3,0,0,0,2,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,244,142,130,75,0,0,0,0,11,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,6,143,130,
75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,3,0,0,0,1,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,8,143,130,75,0,0,0,0,5,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,
0,0,0,0,0,27,143,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,
0,0,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,14,140,130,75,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,0,0,0,0,36,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,38,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,50,140,130,75,0,0,0,0,3,0,0,
0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,73,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,23,140,130,
75,0,0,0,0,11,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,46,140,130,75,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,1,0,0,
0,0,0,0,0,16,140,130,75,0,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,51,140,130,
75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,4,0,0,
0,2,0,0,0,1,0,0,0,0,0,0,0,19,140,130,75,0,0,0,0,12,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,
0,0,0,0,0,57,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,
0,0,0,0,0,5,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,78,140,130,75,0,0,0,0,7,0,0,0,3,0,0,0,0,0,0,
0,5,0,0,0,0,0,0,0,0,0,0,0,106,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,38,0,0,0,0,0,0,0,7,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,106,140,130,75,0,0,0,0,9,0,0,
0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,126,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,6,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,59,140,130,
75,0,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,105,140,130,75,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,
0,0,0,0,0,60,140,130,75,0,0,0,0,11,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,89,140,130,
75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,1,0,0,
0,3,0,0,0,0,0,0,0,0,0,0,0,34,140,130,75,0,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,
0,0,0,0,0,56,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,
0,0,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,66,140,130,75,0,0,0,0,4,0,0,0,3,0,0,0,0,0,0,
0,5,0,0,0,0,0,0,0,0,0,0,0,88,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,38,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,18,140,130,75,0,0,0,0,5,0,0,
0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,43,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,115,140,130,
75,0,0,0,0,10,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,145,140,130,75,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,7,0,0,0,3,0,0,0,1,0,0,
0,0,0,0,0,109,140,130,75,0,0,0,0,8,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,143,140,130,
75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,6,0,0,
0,3,0,0,0,1,0,0,0,0,0,0,0,81,140,130,75,0,0,0,0,7,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,
0,0,0,0,0,108,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,
0,0,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,61,140,130,75,0,0,0,0,4,0,0,0,3,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,0,0,0,0,112,140,130,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0};
const char * const plant[] = {"豌豆射手", "向日葵", "樱桃炸弹", "坚果墙", "土豆雷", "寒冰射手",
"大嘴花", "双发射手", "小喷菇", "阳光菇", "大喷菇", "墓碑吞噬者", "魅惑菇", "胆小菇",
"寒冰菇", "毁灭菇", "睡莲", "倭瓜", "三线射手", "缠绕海草", "火爆辣椒", "地刺",
"火炬树桩", "高坚果", "海蘑菇", "路灯花", "仙人掌", "三叶草", "裂荚射手", "杨桃",
"南瓜头", "磁力菇", "卷心菜投手", "花盆", "玉米投手", "咖啡豆", "大蒜",
"叶子保护伞", "金盏花", "西瓜投手", "机枪射手", "双子向日葵", "忧郁蘑菇",
"香蒲", "冰瓜", "吸金磁", "地刺王", "玉米加农炮"};
FILE *fp = NULL;
const char *name = "user1.dat";
info();
int choice;
choice = getChoice();
printf("
*您的选择是: %s\n", plant[choice]);
if((fp = fopen(name, "wb")) == NULL){
puts("Error: 创建存档失败!");
return 1;
}
int i;
for(i = 0; i < TOTAL; i++){
if(i >= START && (i - START) % SIZE == 0){
fputc(choice, fp);
}else{
fputc(data[i], fp);
}
}
fclose(fp);
puts("
*Infomation: 已将存档保存到当前目录下的 user1.dat 文件\n");
system("pause");
return 0;
}
int info(void)
{
puts("\n植物大战僵尸.禅境花园存档修改工具");
puts("
By HeQingwei Email hqwemail@163.com\n\n");
puts("
*请选择植物*\n");
puts("
0: 豌豆射手
1: 向日葵
2: 樱桃炸弹
3: 坚果墙");
puts("
4: 土豆雷
5: 寒冰射手
6: 大嘴花
7: 双发射手");
puts("
8: 小喷菇
9: 阳光菇
10: 大喷菇
11: 墓碑吞噬者");
puts("
12: 魅惑菇
13: 胆小菇
14: 寒冰菇
15: 毁灭菇");
puts("
16: 睡莲
17: 倭瓜
18: 三线射手
19: 缠绕海草");
puts("
20: 火爆辣椒
21: 地刺
22: 火炬树桩
23: 高坚果");
puts("
24: 海蘑菇
25: 路灯花
26: 仙人掌
27: 三叶草");
puts("
28: 裂荚射手
29: 杨桃
30: 南瓜头
31: 磁力菇");
puts("
32: 卷心菜投手 33: 花盆
34: 玉米投手
35: 咖啡豆");
puts("
36: 大蒜
37: 叶子保护伞 38: 金盏花
39: 西瓜投手");
puts("
40: 机枪射手
41: 双子向日葵 42: 忧郁蘑菇
43: 香蒲");
puts("
44: 冰瓜
45: 吸金磁
46: 地刺王
47: 玉米加农炮");
return 0;
}
int getChoice(void)
{
int choice;
int flag = 0;
char temp[20];
do{
printf("
>");
fgets(temp, sizeof(temp), stdin);
fflush(stdin);
temp[sizeof(temp) - 2] = '\0';
choice = atoi(temp);
if(choice > 47 || choice < 0){
flag = 1;
printf("
Error: 错误的序号, 请输入0..47之间的数字");
}else{
flag = 0;
}
}while(flag == 1);
return choice;
}
运行截图及说明:
在选择好植物后,程序会将数据默认保存在当前目录下的user1.dat中,将此存档文件拷贝到植物大战僵尸的userdata目录下即可。
源代码中data数组中的数据时我用另一个工具生成的模板。
现在介绍下植物大战僵尸的存档:
用户的存档被存放在userdata目录下的userX.dat中(以二进制的方式存放),第一个用户的存档时user1.dat,第二个用户的存档时user2.dat,以此类推
存档中部分数据信息如下:
前10个字节代表金钱
第473个字节代表肥料数,最小为232,此时肥料数为0
第477个字节代表农药数,最小为232,此时农药数为0
第521个字节代表巧克力数,最小为232,此时巧克力数为0
第529个字节代表智慧古树的肥料,最小232
第213个字节代表古树高度
每种植物占用88个字节,其中:
第1字节: 植物种类
范围: [0, 47]
第九字节: 植物所在列
范围: [0, 7]
第13字节: 植物所在行
范围: [0, 3]
以下是存档修改的源代码:
#include <stdio.h>
#include <windows.h>
#define TOTAL 5044
#define START 820
#define SIZE 88
int info(void);
int getChoice(void);
int main(int argc, char *argv[])
{
}
int info(void)
{
}
int getChoice(void)
{
}
运行截图及说明:
在选择好植物后,程序会将数据默认保存在当前目录下的user1.dat中,将此存档文件拷贝到植物大战僵尸的userdata目录下即可。
源代码中data数组中的数据时我用另一个工具生成的模板。