1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C1任务01-修改《植物大战僵尸》游戏存档

C1任务01-修改《植物大战僵尸》游戏存档

时间:2023-07-22 12:14:47

相关推荐

C1任务01-修改《植物大战僵尸》游戏存档

文章目录

1、作业

2、说明

3、任务实现过程

4、总结

1、作业

1、作业任务

1、修改《植物大战僵尸》的存档文件,将一个新用户的进度直接修改到5-2关

2、将金钱(能量)直接修改到10000

2、说明

1、任务实现工具

1、游戏:《植物大战僵尸》中文版(版)

2、十六进制编辑器:Hex Editor Neo

2、掌握进制转换

1、R进制转十进制—按权展开求和法

十进制:20=2×10¹+0×10º

二进制:(10100)=1×2⁴+0×2³+1×2²+0×2¹+0×2º=20

八进制:(24)=2×8¹+4×8º=20

十六进制:(14)=1×16¹+4×16º=20

2、十进制转R进制—除数取余法

(1)十进制转二进制

十进制数有整数和小数两部分,在转换时,整数部分采用除2取余法,小数部分采用乘2取整法,然后通过小数点将转换后的二进制数连接起来即可。例如:整数:20/2=10……0 、10/2=5……0、5/2=2……1,、2/2=1……0、1/2=0……1,所以(20)=(10100)₂

小数:0.625×2=1.250、1.250×2=0.500、0.500×2=1.000,所以(.625)=(.101)₂

(2)十进制转八进制

75/8=9……3、9/8=1……1、1/8=0……1,所以(75)=(113)八进制

(3)十进制转十六进制

75/16=4……11、4/16=0……4,所以(75)=(4B)十六进制

11在16进制中用B表示

3、任务实现过程

3.1、任务实现流程

1、下载安装游戏《植物大战僵尸》中文版和16进制编辑器

2、打开游戏,新建游戏账户

3、找到《植物大战僵尸》的用户存档文件夹,用十六进制编辑器:Hex Editor Neo打开指定用户的存档文件

4、根据要求,将关卡和金币的数据转换到5-2关和10000金币的16进制,修改后保存文件

5、修改后重新打开游戏界面,检查游戏进度和金币数量是否已经达到标准

3.2、任务实现具体操作

3.2.1、新建账户

(1)打开游戏注册一个新账户,我这里为yonghu1(名字可自拟),账户建成后关闭游戏,使之在本地生成对应的存档文件。

(2)再建3个账户分别为yonghu2、yonghu3、yonghu4,目的是为了找到控制关卡和金币功能数据,与yonghu1作对比。账户建成后关闭游戏,使之在本地生成对应的存档文件。

3.2.2、修改关卡

1、修改关卡需先找到游戏存档文件

单机游戏数据都是存储在本地,植物大战僵尸存档位置一般放在(如果玩家没有自行更改过)C:\ProgramData\PopCap Games\PlantsVsZombies\userdata。

找到存档的方法:

1.以win10为例子(win7一样)首先打开c盘(系统盘),点查看,勾选“隐藏的项目”。

2.打开”Programdata“文件夹。

3.打开“PopCap Games”文件夹。

4.接着打开“PlantsVsZombies”“userdata”文件夹就是存档。

注意:如果打开C盘无”Programdata“文件夹,就是被隐藏了,点查看,勾选“隐藏的项目”。

2、找到存档文件数据

将创建的4个用户进行对比找到存档文件数据。

为了更容易找到存档文件数据,我们采用控制变量法和对比法。用十六进制编辑器:Hex Editor Neo打开用户文件。我将yonghu1玩到关卡1-9,将yonghu2关卡玩到2-1,yonghu4不进行游戏,在十六进制编辑器:Hex Editor Neo将三者进行比较发现只有第一行第四列的数据发生变化,说明第一行第四列的数据是控制游戏进度的。

在十六进制编辑器:Hex Editor Neo进行观察发现玩到1-9关,第一行第四列的数据是09;玩到2-1关,第一行第四列的数据是0b:而没有玩的第一行第四列的数据是01,这就不难发现到哪一关是将关卡数转换为16进制数。如果要将进度调整至5-2关(通过百度可以知道植物大战僵尸每个大关卡有10个小关卡)所以要将数值调整为42。因为我们发现到哪一关是将关卡数转换为16进制数,所以要将42转换为16进制数。

由上面说明可知十进制转R进制—除数取余法

42/16=2……10

2/16==0……2

10在16进制中用A表示,所以,42的16进制为2A

3、修改存档文件数据

由上面已经找到存档文件数据,所以我们将yonghu3的游戏存档在十六进制编辑器:Hex Editor Neo中修改到5-2关。最后打开游戏,游戏进度已经到5-2关。这样我们就完成游戏进度了。

注意:修改的时候需关闭游戏,否则修改的数据不会被保存

3.2.3、修改金币

在yonghu2中我们通过试玩获得一定的金币,再将yonghu2的关卡进度改到5-2。然后与yonghu3进行对比。(在十六进制编辑器:Hex Editor Neo中进行对比)

通过对比我们发现 第一行第八列的数据变成1C,所以 第一行第八列是控制金币数量的数据。在十六进制编辑器:Hex Editor Neo中是16进制,而游戏中是十进制。那我们将16进制转换为十进制:

由上面说明可知R进制转十进制—按权展开求和法

1C=1×16¹+12×16º=28

可以看出金币的数量是16进制数转换为十进制数的10倍

所以,要将金币数量修改到10000,需要在十六进制编辑器:Hex Editor Neo中将第一行第八列的数据修改为1000。而1000的16进制数为:

由上面说明可知十进制转R进制—除数取余法

1000/16=62……8

62/16=3……14

3/16=0……3

14在16进制数中是E,所以1000的十六进制数是3E8

这时发现1000的十六进制数有3位,所以通过相同的方法测试发现第一行第九列也能控制金币数值。并且从大到小是从右到左,所以在yonghu3中修改第一行第八列和第九列金币就变为10000了。如下修改:

到这里就完成关卡和金币的修改了。

4、总结

修改游戏存档需要我们掌握进制转换等,同时也需要我们认真进行每一步。以上就是这篇博客的全部内容。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。