修改《植物大戰僵尸》游戲資料
最近參加認證培訓,注重動手操作,雖然對新手有難度,但是這種模式確實能夠很好的鍛煉動手能力,最重要的是記憶會非常深刻,第一個任務就是修改植物大戰僵尸游戲資料到“5-2”關,金幣10000,任務描述很簡單,操作其實也不難,當然是在摸清楚之后,
- 運行《植物大戰僵尸》游戲
游戲很簡單,大多數人都玩過,但是當時肯定沒多想,現在帶著目的去玩,心態完全不一樣,關注點就是關卡和金幣數,然而,第一單元玩完之后“2-1”關才會有金幣產生,大概是280. - 找游戲資料檔案
新手找不到,上網搜,在“C:\ProgramData\PopCap Games\PlantsVsZombies”的目錄里有一個“userdata”的檔案夾,找到名為“user1.dat”的檔案,需要說明的是這個目錄不是游戲安裝目錄,而是系統盤的“ProgramData”檔案夾里面,這個檔案夾是隱藏的,要在“檔案夾選項”里的“查看”方式里勾選之后才能看見(見圖1),
- 打開資料檔案
找到檔案之后,雙擊,打不開;換打開方式,記事本打不開、瀏覽器打不開、畫圖打不開……總之,都打不開,上網搜!“.dat”檔案可能是任何格式,頭大,要用二進制資料編輯器打開,開心,下一步就是搜二進制資料編輯器,得UltraEdit,安裝,要激活,不管,試用1個月,打開“user1.dat”,成功,得到一個類似資料表格的東西(見圖2),

- 修改資料
這里是核心,幾經曲折才算成功,
第一次嘗試,里面好多資料,一看大多是“00”,好,那就找不是“00”的,一共有三行,第一行(00000000h)里的橫坐標為0、4、8的三個不是“00”;第N行(000002e0h)里的橫坐標為0、1、4、5的不是“00”;倒數第五行(00000330h)里的橫坐標為c、d的不是“00”,總共8個資料,哪個是關卡?哪個是金幣?不知道!
繼續嘗試,我再玩一關,再得到一組資料,對比,只有倒數第五行的資料沒什么變化,棄之,再玩一關,第三組資料產生,原始資料有了,好像還是看不明白,想起了這頓操作的目的是掌握二進制、十六進制等等這些資料的基本玩法,哦……這堆亂碼是十六進制資料,換算為二進制,“0C”換成“00001100”,“07”換成“00000111”……好了,第一行好像有點意思,第N行好像很復雜,先不管,坐標為0的一直都沒變,不管,剩下坐標為4和8的,來了,
坐標為4的在剛才“2-2”關和“2-1”關的資料里,就只相差了1,“00001100”和“00001011”換成十進制分別是12的11,完美,這個應該就是關卡了,
坐標為8的“00011100”和“00111011”依葫蘆畫瓢換成十進制是28和59,剛才的金幣好像分別是280和590,哦……這個資料應該就是金幣了,游戲里撿的最便宜的銀幣好像就是10,搞起來!
1000(10000除以10)好像在8位二進制數里溢位了,“1111101000”有10位,怎么搞?補0!前面不是還有個橫坐標為7的資料是“00”嗎,改它“00000011 11101000”,
換成十六進制的就是:橫坐標為4的“2A”、橫坐標為7的“03”、橫坐標為8的“E8”,保存,替換,打開游戲,
關卡“6-”、金幣“2320”,
有鬼!
再次嘗試,關卡先不管,位置沒錯,資料可以再試,簡單,金幣2320應該是改得不對,232只是橫坐標為8的資料換成十進制后的結果,橫坐標為7的資料無效,頭疼,
那我再改橫坐標為9的資料,改多少,不知道,隨便改,還得改大點,金幣要破10000最好,改“00”里的前一個0,保存,替換,打開游戲,哦……果然,4萬多了,怎么來的,研究,搞不懂,那就再搞幾組,直接把原目錄的用房資料檔案“user1”打開,也不備份了,游戲也打開,花錢,每花一次,進一次UltraEdit界面,會提示資料變化(見圖3),是否重新加載,點“是”,
新的資料就出現了,換算成二進制,串列,對比,好像橫坐標為8的資料變化比較隨意,沒什么規律,橫坐標為9的倒是在遞減,有門,換算成十進制,還是看不懂,能不能把兩個資料連起來,要不然金幣怎么也突破不了2550了(8位二進制數最大能表示十進制的255),“8+9”不對,那“9+8”吧(見圖4),好像有點意思了,
|
“101011111000”換數成十進制就是2808,完美!
再次驗證其他的數,剛好都能對上,就是這樣了,
安排:橫坐標為8的“E8”、橫坐標為9的“03”,保存,打開游戲,金幣如愿成為了10000,
再看關卡,大概是游戲里的解鎖要求,不能直接到“5-2”,改成“26”,后退4關,到“4-8”關,打2局,解鎖5-1關,就能如愿改成“5-2”了,至此任務完成,
總結一下,整個程序前后花了兩天時間,當然不是一直趴在電腦上,但是真的花了大量的時間來思考二進制資料結構問題,主要是那個金幣的精準修改問題,因為自己對于二進制資料的了解有限,只能嘗試摸索,雖然我現在依然覺得了解不多,但是至少這款游戲我能搞定,應該來說,不同的開發者開發的軟體對于資料的存放設計是不同的,要想弄清楚,只能一個個去找規律,只要思路清晰,頭腦清醒,愿意付出時間,應該都能成功,關鍵是這個緩慢的進步程序,要能夠堅持得下去,我很期待,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/271893.html
標籤:其他
