MPQ是什么文件类型.该怎么打开

MPQ是什么文件类型.该怎么打开

MPQ是什么文件类型.该怎么打开

文章插图
想要掌握这个技巧,你必须对MPQ文件有一定的了解 。MPQ文件是暴雪公司专门为它的游戏产品而开发的一种压缩文件格式 。
和zip格式很类似 。
你可以在暴雪的很多游戏里找到这种格式的文件 。星际争霸里所有的图片,动画,声音和音乐还有AI脚本啦,游戏模式啦什么的通通都是放在StarDat.mpq、BroodDat.mpq和Patch_rt.mpq文件里的 。深入了解MPQ文件我们可以使用MPQViewer来浏览并导出MPQ文件所包含的文件 。好,我们现在先研究一下星际的开始画面究竟放在哪里 。
我们知道,星际争霸和母巢之战的开始画面是不一样的 。而BrooDat.mpq则是母巢之战新添加的MPQ文件 。所以,我们先拿BrooDat.mpq开刀 。
用MPQViewer打开BroodDat.mpq,我们看到了好多文件 。开始画面是图片,而MPQ文件里图片格式只有pcx一种 。所以我们把文件按文件类型排序,就可以很容易地找到了一个名叫title.pcx的文件 。
解出来瞧瞧,呵呵,果然就是开始画面!请注意,这个文件在BrooDat.mpq里还附带有路径:gluetitletitle.pcx 。不要小瞧这个路径,为什么?下面我们会接触到的 。
MPQ是什么文件
MPQ是什么文件类型.该怎么打开

文章插图
第一章 关于MPQ的历史MPQ,也称MoPaQ,是Mike O'Brien发明的一种压缩文件格式 。在1996作为,MPQ应用在Diablo(暗黑破坏神)游戏中 。
然而它的版权属于 Blizzard 的父公司 Havas Interactive,并且在Mike O'Brien离开暴雪后继续使用 。
正是MPQs由于在Diablo(暗黑破坏神)中的出色表现,使其继续应用在Starcraft(星际争霸), Warcraft 2(魔兽争霸2), Diablo 2(暗黑破坏神2), Lords of Magic(魔法大帝)中 。第二章 关于MPQ的介绍MPQ内部包含了许多文件,包括坐标算法、声音、动画、字符串、数字数据和故事情节信息 。明显地,MPQ的潜力很大 。要想利用MPQ,那么您就需要了解它 。
在有MPQ格式之前,一直使用的是WAR格式,在Warcraft 2,甚至在Warcraft1中存放游戏数据 。然而WAR格式是简单的,不精制的,是由缺乏经验的程序员所编写的文件格式(相信我,我知道) 。文件在档案中仅使用参考序数和是否被压缩做为唯一可选择调用的方法 。
尽管如此它仍然完成了它的任务 。它提供了压缩格式下的文件调用 。但是,很快缺点开始出现 。
调用时使用参考序数,意味着一长传文件接口的名单必须被保留和被咨询,当程序员需要使用其中一个文件,那么则需要级长的时间,工作变得越来越繁琐 。当时这些问题并没有那么严重,所以有人坚持使用WAR格式,但是一切在使用Battle.net(网络对战)后,问题变得不能接受 。MPQ的特点如被提及以前,MPQ格式一直被用做修正WAR的设计缺陷 。
但是现在他们也想增加一些全新的特点到MPQ 。在暴雪的游戏中,MPQ格式的特点总结为以下几点:Security. 安全暴雪一定不希望在游戏中玩家可以修改数据 。或许他们提早知道MPQ格式可以为Starcraft使用 。不管怎样,安全是最重要的,由此他们显然做了级大的努力去维护游戏的安全性 。
Efficiency. 效率MPQs要求执行时先简单预先输入的各种各样的任务数据然后实时放出 。对于预先输入数据,时间并不重要 。但是实时放出就是另一件事了,其中的数据必须快速地被解压使用 。Multilinguality.多语言的计算机处理在最开始的时候,暴雪就计划发布其游戏在全球游戏市场,因此他们尽可能的做到多语言 。
在创新时,他们决定设计多语种能写入MPQ格式 。Expandability.扩展显然的,在游戏中需要使用独立的数据 。太大的数据不仅是效率低并且减慢游戏速度,如果补丁修改了,也是很麻烦的 。
暴雪明白这个道理,因而MPQ格式的要求就是有能力完全,高效率的,从多个档案数据中调用需要的数据 。什么是strom相比在程序模块中复制函数,多数程序员喜欢把相同代码放到shared libraries(共享程序库)里 。shared libraries是包含了任意程序功能的函数模块 。
不仅能避免多余,并且能缩小程序大小 。正因为如此,暴雪使用一个称为Storm的共享程序库(PC机上为Storm.dll,MAC机为Storm.bin) 。所有现代的暴雪游戏中都使用strom存放重要功能,比如读取MPQ,Battle.net和一些图形化例程 。
当暴雪要发布新版本的游戏,只需要增加功能到strom,无需改变原有功能 。这意味着旧版本的游戏只用升级新版本strom就可以了,这就是我们俗称的安装补丁 。就像所有共享程序库,任何想使用它的程序都可以访问到它的函数 。这就是为什么strom只包含MPQ读取功能 。