RPGMakerMV探秘03-讀檔
????上篇文章我們了解了下存檔,本文我們了解下讀檔。
????說干就干,直接找讀檔的入口,一般情況(無插件),我們會在游戲標題界面,看到“繼續(xù)游戲”的字樣,這里就是進入讀檔頁面的入口。

????代碼504行就是“繼續(xù)游戲”綁定的處理器,實際的動作就是516行的commandContinue方法,通過SceneManager(場景管理器)加載了Scene_Load(讀檔界面)。
????
????好的,接下來看看Scene_Load,其中onSavefileOk方法就是根據(jù)存檔文件編號,讀取對應的檔位。

? ? 1764:讀取成功后的后續(xù)處理。
????1763行代碼就是讀取游戲的方法,繼續(xù)看看這個方法。
????

????384:加載全局信息,也就是save目錄下global.rpgsave中的信息。
????386:StorageManager.load判斷是本地存儲還是WEB存儲,然后存檔讀取文件數(shù)據(jù)。
????387:創(chuàng)建游戲數(shù)據(jù)對象。
????388:從讀取的數(shù)據(jù)中提取至對象中。
????我們選擇loadFromLocalFile大致看下讀取文件的過程。

????實際上就是一個本地文件的讀取過程,最后在返回數(shù)據(jù)時,對讀取的數(shù)據(jù)進行了解壓解碼,這樣就形成了明文完整數(shù)據(jù)對象。
? ? 對比上一篇文章的存檔過程,我們不難發(fā)現(xiàn),其實就是存檔過程的一個反向操作。
????最后我們看下,讀取完數(shù)據(jù),形成完游戲數(shù)據(jù)對象之后,還做了什么處理。

????1772:首先音效管理器播放加載音樂。
????1772:場景淡出過程。
????1773:如果版本更新,重新加載地圖。
????1774:場景管理器切換至地圖場景。
????上文所有操作就是讀檔后進入游戲地圖的過程。
????
????PS:有些小伙伴把存檔文件解碼出來后自行修改,再反寫回去,也就達到一刀99999傷害的效果。