文章目錄
1、作業
2、說明
3、任務實作程序
4、總結
1、作業
1、作業任務
1、修改《植物大戰僵尸》的存檔檔案,將一個新用戶的進度直接修改到5-2關
2、將金錢(能量)直接修改到10000
2、說明
1、任務實作工具
1、游戲:《植物大戰僵尸》中文版(2010版)
2、十六進制編輯器:Hex Editor Neo
2、掌握進制轉換
1、R進制轉十進制—按權展開求和法
十進制:20=2×101+0×10o
二進制:(10100)=1×2?+0×23+1×22+0×21+0×2o=20
八進制:(24)=2×81+4×8o=20
十六進制:(14)=1×161+4×16o=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×161+12×16o=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、總結
修改游戲存檔需要我們掌握進制轉換等,同時也需要我們認真進行每一步,以上就是這篇博客的全部內容,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291122.html
標籤:其他
下一篇:EasyX必會基礎

