文章目录
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
可以使用其他模式
玩玩小游戏、解密模式、生存模式、禅境花园、图鉴、商店
经验总结:通过这次学习任务我觉得要敢于尝试,不能只看不做,应该多动手,还要学会将一个大问题分解,逐一击破,要学会自主解决不懂的问题,可以找人问,可以去网上搜索,自己要养成自主学习的能力,也要培养自己自主解决问题的能力。
加油学习呀