C1认证任务:修改植物大战僵尸中的关卡位置与金钱的数据

本文记录了作者通过修改《植物大战僵尸》游戏存档,实现快速通关和增加金币的过程。作者详细描述了查找数据文件位置、使用十六进制编辑器解析文件内容,以及如何修改关卡和金币数值的步骤,揭示了游戏数据存储的规律。同时,文章强调了动手实践、问题分解和自主学习的重要性。
摘要由CSDN通过智能技术生成

C1阶段的任务:修改植物大战僵尸中的关卡和金币数量

任务挑战

有的玩家在玩游戏时,可能并不想⼀关⼀关地慢慢玩,⽽是希望可以直接跳到最后⼀关,或者从⾃⼰指定的关卡开始,⽐如经典的《植物⼤战僵⼫》;再就是怎么能够「开挂」,得到更多的⾦钱、更⾼的属性、更强的道具,⽐如《三国志》系列。 任何游戏都会保存玩家的进度和数据,不管是单机游戏还是⽹络游戏都是如此。如果玩家能够知道这些存档数据保存在哪 ⾥,并且还能随意修改存档信息,那是不是就能达到「开挂」的⽬的呢?答案当然是肯定的,因为只要知晓计算机对⼆进制数据的处理机制,就能轻松做到这⼀点。

任务目的

  • 了解⼆进制、⼗六进制对于计算机的意义
  • 掌握⼆/七/⼋/⼗/⼗⼆/⼗六等多种数据进制间的转换
  • 掌握如何在windows及linux中修改并保存⼆进制⽂件

任务内容

修改《植物⼤战僵⼫》的存档⽂件,将⼀个新⽤户的进度直接修改到5-2关,⾦钱(能量)直接修改到10000

任务过程

1.下载植物大战僵尸

在网上下载植物大战僵尸中,发现了很多网站上的资源大多数都是带病毒的,而且有很多捆绑软件。所以我决定找个干净的下载地方,然后就发现了从360软件管家中可以下载,而且是纯净版的。
在这里插入图片描述

2. 植物大战僵尸创建游戏用户名

创建游戏名,qiangzi
在这里插入图片描述

3.分析任务,寻找数据文件位置

在寻找数据文件位置时候,不知道数据文件存放的位置,查找安装目录也没有发现数据文件位置。后来在任务处理中遇到一些困难,但是最后都找到了解决方案。下面是面对的一些困难和解决方案。

困难1:不了解玩家信息的存储位置
解决方案:借助老师的提示了解到单机游戏的数据存储在c盘的programdata中
困难2:在c盘中没有找到programdata
解决方案:百度了解到c盘中programdata的位置【programdata是隐藏文件,需要在隐藏的文件上打钩】
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
打开数据文件,需要专门的工具,根据老师的叙述,我选择了Hex Editor Neo编辑二进制工具。(直接从百度上下载)
在这里插入图片描述

4.查看数据,得出结论。

4.1 获取游戏关卡位置

在这里插入图片描述
根据数据显示,数据发生了变化,我玩游戏闯到了第三关,这边数据变成了03。
后来我玩游戏闯到了第四关,这边数据变成了04。
在这里插入图片描述
我推测04这个位置就是控制游戏关卡的位置,在这里插入图片描述

4.2 获取游戏金币位置

一、 将关卡改为5-2
1.配置文件04位置改成2a
2.商店开启
二、通过闯关发现存放金币的位置

在这里插入图片描述

在这里插入图片描述
后来又修改09 0a 0b发现金币也发生了变化。得出08 09 0a 0b位置是控制金币的位置

5.1 需求实现

关卡修改为(5-2), 金额修改为(10000)
玩家用户配置文件user1.dat 中(第一行) 04 修改为2a ; 08、09修改为 E8 03

6.1 得出结论

总结:修改关卡、金钱规律

1、修改关卡: 
	第一行04(位置)关卡确定方法, 10进制(转为)16进制,举例如下:
	十进制5    <<--转换-->>   16进制是5   关卡就是:1-5
	十进制15   <<--转换-->>   16进制是f   关卡就是:2-5
    十进制28   <<--转换-->>   16进制是1c  关卡就是:3-8
    十进制42   <<--转换-->>   16进制是2a  关卡就是:5-2
    
2、修改金币
	第一行:08、09、0a、0b(位置)可设置金额, 但是b位置写了可能(金额过大)溢出,成负数。
	金币 =  (10进制数值  --->>> 转化为 16进制数) * 10倍
	比如:十进制66    <<--转换-->>  16进制是42    金币为: 660 
	比如:十进制1000  <<--转换-->>  16进制是3E8   金币为: 10000 
	比如:十进制999999 <<--转换-->>  16进制是F423F  金币为: 9999990

3、其他位置:
	将0c位置:设置为11
	可以使用其他模式
	玩玩小游戏、解密模式、生存模式、禅境花园、图鉴、商店
经验总结:通过这次学习任务我觉得要敢于尝试,不能只看不做,应该多动手,还要学会将一个大问题分解,逐一击破,要学会自主解决不懂的问题,可以找人问,可以去网上搜索,自己要养成自主学习的能力,也要培养自己自主解决问题的能力。

加油学习呀

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值