MPQ

by Danny

MPQ是什麼?

MPQ 是 Blizzard 公司將遊戲資料包裝在一起的一種檔案格式,內容放置採取 Joliet 檔案格式 (MS-DOS 路徑型態+長檔名),與 Unix/Linux 路徑型態不同。內部採取可壓縮設計,但對於不同檔案型態,其壓縮方式也不同。

後來據說某位國外的天才,將 MPQ 檔案格式解碼後,利用星海爭霸任務編輯器staredit.exe 搭配 storm.dll 檔案,配合他自行製作的幾個 MPQ 功能,成為 MPQ2000 軟體。之後又陸續出現了很多新的MPQ軟體,例如MPQ View、WinMPQ、MPQ Editor、MPQ Workshop、……,軟體的使用範圍也從DOS模式延伸到Windows。

這些軟體最主要的功能是可以解出MPQ檔案下的東西(就像使用WinZip解開.zip檔案一樣),甚至可以壓入檔案到.mpq中。它可以用來解出魔獸爭霸III中的圖檔、動畫、戰役地圖、原始資料等。此外,也可以用在星海爭霸(Strcraft)及暗黑破壞神(Diablo)中,以及製作特別版(但是製作出來的版本原則上無法與正常的版本在b.net上連線遊戲,只能自high)。本文只討論基本的解檔 和加檔功能,其他進階的功能請大家自行研究。

此外,對於某些MPQ程式,為了要開啟MPQ檔案,你必須提供該MPQ檔內部的路徑表(listfile),才打的開這個檔案。有些比較高級的程式如WinMPQ,可使用該檔案內部的listfile開啟,但是如果該檔案沒有附listfile,則無法順利開啟。listfile為.txt文件,如果需要的話,可以使用附錄的War3 All Listfile

MPQ程式也可以加入檔案,但是處理MPQ的檔案和處理一般檔案的情形有些不同。當你刪除檔案(或者用同名稱的檔案覆蓋)時,它的空間不會被釋放,換句話說,刪除檔案後,檔案不會變小,只是不會被讀到而已。就筆者所知,目前只有最難操作的MPQ2K可以釋放空間,所以大家最好不要隨便用MPQ程式刪檔或重複加檔,不然該檔案會越變越大。

魔獸的MPQ檔案

  1. war3.mpq:主程式的資料

  2. War3x.mpq:資料片的資料

  3. War3Patch.mpq:改版的資料,想找最新版本的新東西就解這個

  4. War3xlocal.mpq:中文化(或者其他國家的語言)的資料

MPQ檔案提取範例

使用MPQ View提取戰役地圖:

  1. 下載附件War3 All listfile

  2. 開啟MPQ View

  3. File => Open dada file,選擇步驟1儲存的listfile.txt

  4. File => Open archive,選擇war3xlocal.mpq﹝由於戰役地圖牽涉到語言化,所以放在這裡﹞

  5. 到右下角的Filter,選擇.w3x,可以過濾檔案,才不會列出太多不想要的東東

  6. 現在你應該會看到很多檔案,例如HumanX01就代表人類第一關

  7. 假設你要把所有檔案一次全部偷出來,就選取所有檔案,然後File => Save,指定你想放的位置,電腦會問你要Keep Structure或是All in one,選keep structure,等電腦解好,就大功告成了!

魔獸MPQ內常見的檔案格式

格式 說明
.ai AI文件,可以用記事本編輯,WE內建的AI編輯器也能製作AI,但是功能差多了。
.blp 大部分魔獸圖示所使用的壓縮圖檔,很多模組檔也會用到它們。必須用特殊的程式製作(請見轉檔程式一篇)。
.j JASS資料庫,魔獸的JASS常數和函數在此定義。可用記事本編輯。
.mdx 模組(model,部隊整體外形動件指令)檔案。目前市面上大都用3dsmax編輯,但是那個程式對技術和金錢的需求相當高。
.mp3 音樂檔,如遊戲背景音樂。
.pld 預讀檔案,AI和觸發可能用到。可用記事本編輯。
.slk 魔獸表格資料,用Excel編輯即可。
.tga 另外一種在魔獸中常用的圖檔格式。
.txt 魔獸資料,用記事本編輯。
.w3m 魔獸主程式的地圖。
.w3x 寒冰霸權的地圖。
.wav 音效檔。

地圖中的MPQ檔案


war3map.w3e 地形資料
war3map.shd 地層資料
war3map.mmp

war3map.w3c WE中攝影機的放置情形
war3map.w3r WE中區域的放置情形(遊戲所需資料會被轉成JASS放在war3map.j,因此刪掉不影響遊戲)
war3map.doo WE中可毀物的放置情形
war3mapUnits.doo WE中部隊的放置情形(遊戲所需資料會被轉成JASS放在war3map.j,因此刪掉不影響遊戲)




war3map.w3b 記錄可毀物資料(Destructible Editor)
war3map.w3 記錄飾物資料(Doodad Editor)
war3map.w3a 記錄技能資料(Ability Editor)
war3map.w3h 記錄增幅資料(Buff Editor)
war3map.w3q 記錄科技資料(Upgrade Editor)
war3map.w3t 記錄物品資料(Item Editor)
war3map.w3u 記錄部隊資料(Unit Editor)
以上這些檔案可以用MPQ程式或WE匯入物件編輯器進行編輯。

war3map.wtg 記錄WE中觸發編輯器中的內容
war3map.wct 記錄WE中已轉換成JASS的觸發資料
以上二個檔案是WE中的觸發資料,遊戲要用的觸發會被轉成JASS放在war3map.j,因此刪掉這兩個檔案的地圖還是可以玩。如果缺少這兩個資料,用WE讀地圖就會出錯。一般加密程式會把這兩個檔案刪除,因此地圖一但加密,就沒辦法百分之百還原成原始的資料。

war3map.j JASS資料庫。這是地圖的核心,為遊戲必需資料,包含所有地圖擺放的建築物、角色、觸發事件的指令、…..等等。懂JASS的人可藉由修改這個檔案改動大部分的地圖內容(當然,你要有神級的技術)。此檔案移到Scripts\war3map.j也可以用,有些加密程式會把此檔案移到該處 ,讓不知道路徑的人找不到它。
war3map.wts 記錄字串資料。觸發編輯器、物件編輯器等的文字資料都會被存放在這裡。如果要中文化一張加密的地圖,只須修改此檔案再匯回原地圖即可。
war3map.blp 小地圖的圖檔。WE本身就有匯出此檔案的功能
war3map.w3i 記錄遊戲一開始資訊(名稱、幾打幾、簡介、作者…)、種族設定、玩家設定、……
war3map.w3s 記錄聲音編輯器(Sound Editor)的資料
war3map.imp 記錄匯入管理員(Import Manager)中的資料。加密程式通常會把它刪掉使解密者不容易找到它們額外匯入的模組和圖片。
war3map.wpm 記錄.mp3、.wav多媒體文件
war3mapmap.blp 遊戲中顯示的小地圖圖片
war3mapMisc.txt 記錄遊戲常數(Gameplay Constants)的資料
war3mapSkin.txt 記錄遊戲介面(Game Interface)的資料
war3mapPreview.tga 預覽圖片
研究資料/mpq.txt · 上一次變更: 2008年01月18日 8:12 pm 來自 wasabi
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0