C1任務(wù)01之修改游戲存檔的方法
挑戰(zhàn)
有的玩家在玩游戲時,可能并不想⼀關(guān)⼀關(guān)地慢慢玩,⽽是希望可以直接跳到最后⼀關(guān),或者從⾃⼰指定的關(guān)卡開始,⽐如 經(jīng)典的《植物⼤戰(zhàn)僵⼫》;再就是怎么能夠「開掛」,得到更多的⾦錢、更⾼的屬性、更強的道具,⽐如《三國志》系列。任何游戲都會保存玩家的進(jìn)度和數(shù)據(jù),不管是單機游戲還是⽹絡(luò)游戲都是如此。如果玩家能夠知道這些存檔數(shù)據(jù)保存在哪⾥,并且還能隨意修改存檔信息,那是不是就能達(dá)到「開掛」的⽬的呢? 答案當(dāng)然是肯定的,因為只要知曉計算機對⼆進(jìn)制數(shù)據(jù)的處理機制,就能輕松做到這⼀點。
說明
- 了解⼆進(jìn)制、⼗六進(jìn)制對于計算機的意義
- 掌握⼆/七/⼋/⼗/⼗⼆/⼗六等多種數(shù)據(jù)進(jìn)制間的轉(zhuǎn)換
- 掌握如何在windows及l(fā)inux中修改并保存⼆進(jìn)制⽂件
內(nèi)容
- 修改《植物⼤戰(zhàn)僵⼫》的存檔⽂件,將⼀個新⽤戶的進(jìn)度直接修改到5-2關(guān),⾦錢(能量)直接修改到10000
- 修改植物大戰(zhàn)僵尸內(nèi)的文字提示信息以及植物的名稱
一、任務(wù)實現(xiàn)工具:
游戲:植物大戰(zhàn)僵尸中文版
下載鏈接:
鏈接: https://pan.baidu.com/s/1UJeERv_Qes6KMespuD8yGg
提取碼: h259
十六進(jìn)制編輯器:Hex Editor Neo
下載鏈接:
鏈接: https://pan.baidu.com/s/1EyVB4AlBY14geaTzK45XOw
提取碼: e933
二、任務(wù)實現(xiàn)過程:
前三個任務(wù)會用到十六進(jìn)制編輯器來實現(xiàn),在修改的的過程中涉及到的知識點為十進(jìn)制數(shù)據(jù)與十六進(jìn)制之間數(shù)據(jù)的相互轉(zhuǎn)換。
PS:單機類游戲數(shù)據(jù)都是存儲在本地,因此只要在本地找到存儲數(shù)據(jù)的文件進(jìn)行修改即可對游戲內(nèi)的數(shù)據(jù)進(jìn)行修改
在所有任務(wù)開始前首先在下載好的植物大戰(zhàn)僵尸游戲中新注冊一個賬號
(在這里我起名為SJMDJGS【世紀(jì)末的架構(gòu)師】)

1、修改關(guān)卡
修改關(guān)卡前首先要在本地找到存儲游戲數(shù)據(jù)的文件
植物大戰(zhàn)僵尸的數(shù)據(jù)文件一般都是存儲在C盤中的ProgramData文件夾中
C:\ProgramData是個公用的被創(chuàng)建文件夾或文件存放的地方,這些文件夾或文件僅由創(chuàng)建者完整控制。打開ProgramData,可以看到很多和應(yīng)用軟件同名的文件夾,里面有一些軟件運行,或者修復(fù)卸載時候調(diào)用的一些文件,生成的一些記錄也存放在這里。默認(rèn)是隱藏的,不可刪除的
文件路徑: C:\ProgramData\PopCap Games\PlantsVsZombies
來到這里以后會看到有兩個文件夾,點擊下方存儲用戶數(shù)據(jù)的userdata文件夾

點擊進(jìn)入存儲用戶數(shù)據(jù)的文件夾以后會發(fā)現(xiàn)有兩個.dat格式的文件,其中user1.dat文件中存儲著關(guān)卡數(shù)據(jù)和金幣道具等信息

將user1.dat文件拖到Hex Editor Neo中,不難發(fā)現(xiàn)第四列存儲的數(shù)字為1其余為0,所以進(jìn)行是否第四列中的十六進(jìn)制數(shù)據(jù)代表著關(guān)卡的信息

在游戲中通關(guān)到第三關(guān)以后再將user1.dat文件拖入Hex Editor Neo中會發(fā)現(xiàn)之前第四列下的數(shù)據(jù)已經(jīng)由最初的01變成了03,因此說明第四列下的十六進(jìn)制數(shù)據(jù)是用來描述關(guān)卡情況


在植物大戰(zhàn)僵尸游戲中每10小關(guān)為一個大關(guān),所以要將關(guān)卡修改到第5-2關(guān)對應(yīng)的十進(jìn)制數(shù)據(jù)為42,將其轉(zhuǎn)換為十六進(jìn)制數(shù)據(jù)為2a,在Hex Editor Neo中將03改為2a后重新進(jìn)入游戲會發(fā)現(xiàn)關(guān)卡跳到了第5-2關(guān)。


2、修改金幣
在修改了關(guān)卡以后會發(fā)現(xiàn)游戲界面內(nèi)自動出現(xiàn)了商店等組件,此時我們點擊商店以后會發(fā)現(xiàn)金幣為0,現(xiàn)在開始修改金幣

當(dāng)通關(guān)獲得一定數(shù)量的金幣后會發(fā)現(xiàn)第八列下的數(shù)據(jù)發(fā)生了變化,因此猜測第八列下的十六進(jìn)制數(shù)據(jù)為記錄金幣數(shù)量的信息,將這里的數(shù)據(jù)修改為ff,重新進(jìn)入游戲查看金幣的數(shù)量是否有發(fā)生變化

重新進(jìn)入游戲后發(fā)現(xiàn)金幣數(shù)量發(fā)生了變化并且為2550,因為ff對應(yīng)的十進(jìn)制數(shù)據(jù)為255,因此證明植物大戰(zhàn)僵尸中金幣的規(guī)則為十六進(jìn)制對應(yīng)的十進(jìn)制數(shù)據(jù) * 10

因為游戲中10000金幣對應(yīng)的十進(jìn)制數(shù)據(jù)為1000,1000(10)對應(yīng)的十六進(jìn)制數(shù)據(jù)為3e8,在Hex Editor Neo中將第八列和第九列
中的數(shù)據(jù)分別改為3e、80后重新進(jìn)入游戲會發(fā)現(xiàn)金幣的數(shù)量并不是預(yù)想的10000,而是328300


由此猜測第九列的數(shù)據(jù)為高位,并不是按照慣性思維從第八列開始依次排列,重新在Hex Editor Neo中把第八列和第九列的數(shù)據(jù)分別改為e8、03,再次進(jìn)入游戲后發(fā)現(xiàn)商城中金幣數(shù)量變?yōu)榱?0000


3、修改用戶名
之前修改關(guān)卡和金幣數(shù)量時都是在user1.dat中修改,修改用戶名則是在另一個users.dat文件中進(jìn)行修改,將users.dat拖入到Hex Editor Neo中會發(fā)現(xiàn)從第08列到第0e列中的對應(yīng)的十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制數(shù)據(jù)以后的值恰好對應(yīng)ASCII碼中的SJMDJGS(世紀(jì)末的架構(gòu)師),與游戲中的用戶名對應(yīng),因此假設(shè)第08列到第0e列的數(shù)據(jù)對應(yīng)為用戶名,將第08列到第0e列的數(shù)據(jù)分別修改為46(16)(對應(yīng)十進(jìn)制數(shù)據(jù)為70)、58(16)(對應(yīng)十進(jìn)制數(shù)據(jù)為88)、44(16)(對應(yīng)十進(jìn)制數(shù)據(jù)為68)、48(16)(對應(yīng)十進(jìn)制數(shù)據(jù)為72)、4c(16)(對應(yīng)十進(jìn)制數(shù)據(jù)為77)、52(16)(對應(yīng)十進(jìn)制數(shù)據(jù)為82)、第0e列改為00,如果假設(shè)正確重新進(jìn)入游戲后用戶的名稱則修改為FXDHLR(飛翔的荷蘭人)



4、修改局內(nèi)文字信息
修改局內(nèi)文字信息不需要用到十六進(jìn)制編輯器,只需要找到游戲的安裝路徑,找到其中的properties文件夾,修改該文件夾中的LawnStrings.txt文件即可


在這里我使用的是notepad++來修改文本文件,只用記事本也可以完成編輯。以修改豌豆射手的數(shù)據(jù)為例,在游戲內(nèi)的圖鑒中檢查信息是否修改成功



總結(jié)
任務(wù)到這里就全部結(jié)束了,修改游戲數(shù)據(jù)在曾經(jīng)是想都不敢想的,在剛開始看到任務(wù)時一度懷疑自己能否完成這樣的任務(wù),便心一狠牙一咬踏上了完成任務(wù)的旅程,在完成任務(wù)的過程中自己才意識到之前自己被自己想象的困難打敗了,真正接觸到之后并沒有想象中的困難。在完成任務(wù)的過程中熟悉了數(shù)據(jù)進(jìn)制之間的轉(zhuǎn)換,也明白了在計算機中如何保存二進(jìn)制文件,更重要的是信心上和動手實踐能力的提高。
還記著那句,人的一生中最輝煌的一天,并不是功成名就的那一天,而是在悲嘆和絕望中產(chǎn)生向上的力量,并勇敢去直面和接受挑戰(zhàn)的這一天。這是最大的轉(zhuǎn)折點,當(dāng)你選擇去直面挑戰(zhàn)時,就已經(jīng)注定了成功!
到此這篇關(guān)于C1任務(wù)01之修改游戲存檔的文章就介紹到這了,更多相關(guān)修改游戲存檔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vim中tagbar配置以及打字時隱藏鼠標(biāo)的方法
這篇文章主要給大家介紹了關(guān)于vim中tagbar配置以及打字時隱藏鼠標(biāo)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
鴻蒙HarmonyOS開發(fā):Navigation路由導(dǎo)航功能和實踐
Navigation作為HarmonyOS?NEXT中推薦的路由管理方案,以其強大的功能和靈活性,為開發(fā)者提供了高效的頁面路由管理能力,本文將深入探討基于Navigation的路由管理機制,從原理到實踐,帶您一步步領(lǐng)略Navigation組件的強大功能和靈活應(yīng)用,2024-08-08
10分鐘搞定讓你困惑的 Jenkins 環(huán)境變量過程詳解
這篇文章主要介紹了10分鐘搞定讓你困惑的 Jenkins 環(huán)境變量過程詳解,本文通過圖文實例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
鴻蒙開發(fā)Hvigor插件動態(tài)生成代碼的操作方法
Hvigor主要提供了兩種方式來實現(xiàn)插件:基于hvigorfile腳本開發(fā)插件、基于typescript項目開發(fā),下面以基于hvigorfile腳本開發(fā)插件進(jìn)行介紹,感興趣的朋友跟隨小編一起看看吧2024-11-11

