1. 程式人生 > 程式設計 >C1任務01之修改遊戲存檔的方法

C1任務01之修改遊戲存檔的方法

目錄
  • 挑戰
  • 一、任務實現工具:
    • 遊戲:植物大戰殭屍中文版
    • 十六進位制編輯器:Hex Editor Neo
  • 二、任務實現過程:
    • 1、修改關卡
    • 2、修改金幣
    • 3、修改使用者名稱
    • 4、修改局內文字資訊
  • 總結

    挑戰

    有的玩家在玩遊戲時,可能並不想⼀關⼀關地慢慢玩,⽽是希望可以直接跳到最後⼀關,或者從⾃⼰指定的關卡開始,⽐如 經典的《植物⼤戰僵⼫》;再就是怎麼能夠「開掛」,得到更多的⾦錢、更⾼的屬性、更強的道具,⽐如《三國志》系列。任何遊戲都會儲存玩家的進度和資料,不管是單機遊戲還是⽹絡遊戲都是如此。如果玩家能夠知道這些存檔資料儲存在哪⾥,並且還能隨意修改存檔資訊,那是不是就能達到「開掛」的⽬的呢? 答案當然是肯定的,因為只要知曉計算機對⼆進位制資料的處理機制,就能輕鬆做到這⼀點http://www.cppcns.com


    說明

    • 瞭解⼆進位制、⼗六進位制對於計算機的意義
    • 掌握⼆/七/⼋/⼗/⼗⼆/⼗六等多種資料進位制間的轉換
    • 掌握如何在windows及中修改並儲存⼆進位制⽂件

    內容

    • 修改《植物⼤戰僵⼫》的存檔⽂件,將⼀個新⽤戶的進度直接修改到5-2關,⾦錢(能量)直接修改到10000
    • 修改植物大戰殭屍內的文字提示資訊以及植物的名稱

    一、任務實現工具:

    遊戲:植物大戰殭屍中文版

    下載連結:

    連結: https://pan.baidu.com/s/1UJeERv_Qes6KMespuD8yGg

    提取碼: h259

    十六進位制編輯器:Hex Editor Neo

    下載連結:
    連結: https://pan.baidu.com/s/1EyVB4AlBY14geaTzK45XOw
    提取碼: e933

    二、任務實現過程:

    前三個任務會用到十六進位制編輯器來實現,在修改的的過程中涉及到的知識點為十進位制資料與十六進位制之間資料的相互轉換。

    PS:單機類遊戲資料都是儲存在本地,因此只要在本地找到儲存資料的檔案進行修改即可對遊戲內的資料進行修改

    在所有任務開始前首先在下載好的植物大戰殭屍遊戲中新註冊一個賬號


    (在這裡我起名為SJMDJGS【世紀末的架構師】)

    在這裡插入圖片描述

    1、修改關卡

    修改關卡前首先要在本地找到儲存遊戲資料的檔案
    植物大戰殭屍的資料檔案一般都是儲存在C盤中的ProgramData資料夾中

    C:\ProgramData是個公用的被建立資料夾或檔案存放的地方,這些資料夾或檔案僅由建立者完整控制。開啟ProgramData,可以看到很多和應用軟體同名的資料夾,裡面有一些軟體執行,或者修復解除安裝時候呼叫的一些檔案,生成的一些記錄也存放在這裡。預設是隱藏的,不可刪除的

    檔案路徑: C:\ProgramData\PopCap Games\PlantsVsZombies
    來到這裡以後會看到有兩個資料夾,點選下方儲存使用者資料的userdata資料夾

    在這裡插入圖片描述

    點選進入儲存使用者資料的資料夾以後會發現有兩個.dat格式的檔案,其中user1.dat檔案中儲存著關卡資料和金幣道具等資訊

    在這裡插入圖片描述

    將user1.dat檔案拖到Hex Editor Neo中,不難發現第四列儲存的數字為1其餘為0,所以進行是否第四列中的十六進位制資料代表著關卡的資訊

    在這裡插入圖片描述

    在遊戲中通關到第三關以後再將user1.dat檔案拖入Hex Editor Neo中會發現之前第四列下的資料已經由最初的01變成了03,因此說明第四列下的十六進位制資料是用來描述關卡情況

    在這裡插入圖片描述

    在這裡插入圖片描述

    在植物大戰殭屍遊戲中每10小關為一個大關,所以要將關卡修改到第5-2關對應的十進位制資料為42,將其轉換為十六進位制資料為2a,在Hex Editor Neo中將03改為2a後重新進入遊戲會發現關卡跳到了第5-2關。

    在這裡插入圖片描述
    在這裡插入圖片描述

    2、修改金幣

    在修改了關卡以後會發現遊戲介面內自動出現了商店等元件,此時我們點選商店以後會發現金幣為0,現在開始修改金幣

    在這裡插入圖片描述

    當通關獲得一定數量的金幣後會發現第八列下的資料發生了變化,因此猜測第八列下的十六進位制資料為記錄金幣數量的資訊,將這裡的資料修改為ff,重新進入遊戲檢視金幣的數量是否有發生變化

    在這裡插入圖片描述

    重新進入遊戲後發現金幣數量發生了變化並且為2550,因為ff對應的十進位制資料為255,因此證明植物大戰殭屍中金幣的規則為十六進位制對應的十進位制資料 * 10

    在這裡插入圖片描述

    因為遊戲中10000金幣對應的十進位制資料為1000,1000(10)對應的十六進位制資料為3e8,在Hex Editor Neo中將第八列和第九列

    中的資料分別改為3e、80後重新進入遊戲會發現金幣的數量並不是預想的10000,而是328300

    在這裡插入圖片描述

    在這裡插入圖片描述

    由此猜測第九列的資料為高位,並不是按照慣性思維從第八列開始依次排列,重新在Hex Editor Neo中把第八列和第九列的資料分別改為e8、03,再次進入遊戲後發現商城中金幣數量變為了10000

    在這裡插入圖片描述
    在這裡插入圖片描述

    3、修改使用者名稱

    之前修改關卡和金幣數量時都是在user1.dat中修改,修改使用者名稱則是在另一個users.dat檔案中進行修改,將users.dat拖入到Hex Editor Neo中會發現從第08列到第0e列中的對應的十六進位制資料轉換為十進位制資料以後的值恰好對應ASCII碼中的SJMDJGS(世紀末的架構師),與遊戲中的使用者名稱對應,因此假設第08列到第0e列的資料對應為使用者名稱,將第08列到第0e列的資料分別修改為46(16)(對應十進位制資料為70)、58(16)(對應十進位制資料為88)、44(16)(對應十進位制資料為68)、48(16)(對應十進位制資料為72)、4c(16)(對應十進位制資料為77)、52(1http://www.cppcns.com6)(對應十進位制資料為82)、第0e列改為00,如果假設正確重新進入遊戲後用戶的名稱則修改為FXDHLR(飛翔的荷蘭人)

    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述

    4、修改局內文字資訊

    修改局內文字資訊不需要用到十六進位制編輯器,只需要找到遊戲的安裝路徑,找到其中的properties資料夾,修改該資料夾中的LawnStrings.txt檔案即可

    在這裡插入圖片描述
    在這裡插入圖片描述

    在這裡我使用的是notepad++來修改文字檔案,只用記事本也客棧可以完成編輯。以修改豌豆射手的資料為例,在遊戲內的圖鑑中檢查資訊是否修改成功

    在這裡插入圖片描述

    在這裡插入圖片描述
    在這裡插入圖片描述

    總結

    任務到這裡就全部結束了,修改遊戲資料在曾經是想都不敢想的,在剛開始看到任務時一度懷疑自己能否完成這樣的任務,便心一狠牙一咬踏上了完成任務的旅程,在完成任務的過程中自己才意識到之前自己被自己想象的困難打敗了,真正接觸到之後並沒有想象中的困難。在完成任務的過程中熟悉了資料進位制之間的轉換,也明白了在計算機中如何儲存二進位制檔案,更重要的是信心上和動手實踐能力的提高。
    還記著那句,人的一生中最輝煌的一天,並不是功成名就的那一天,而是在悲嘆和絕望中產生向上的力量,並勇敢去直面和接受挑戰的這一天。這是最大的轉折點,當你選擇去直面挑戰時,就已經註定了成功!

    到此這篇關於C1任務01之修改遊戲存檔的文章就介紹到這了,更多相關修改遊戲存檔內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!