监理工程师学习看书的顺序与进度?
2021-06-13
更新时间:2022-11-15 14:20:42作者:佚名
2011-09-24 21:16
[教程][简述]关于魔型修改常识的一些简述及问答录(时不时更新)
魔兽世界模型修改真 真 真 真 真 真 真 真 真 言:
修改前请备份客户端,以免不测,改模有风险,对抗暴雪请谨慎!
如有不测,先看教程排查,再询问老鸟。实在不行,请出备份档!
MPQ
MPQ是一种文件格式,MPQ文件位于魔兽世界客户端“魔兽世界/Data”文件夹内,
是暴雪(下面简称:BLZ)专用格式,包含了游戏所需的几乎所有数据,例如:模型、贴图、声音、皮肤、地图、备份等等等等。
“MPQ”详细解释
MPQ
MPQ 是 公司将游戏数据包装在一起的一种档案格式,内容放置采取 档案格式 (MS-DOS 路径型态+长文件名),与 Unix/Linux 路径型态不同。内部采取可压缩设计,但对于不同档案型态,其压缩方式也不同。
关于MPQ的历史
MPQ,也称MoPaQ,是Mike O'Brien发明的一种压缩文件格式。在1996作为,MPQ应用在(暗黑破坏神)游戏中。
然而它的版权属于 的父公司 Havas ,并且在Mike O'Brien离开暴雪后继续使用。正是MPQs由于在(暗黑破坏神)中的出色表现,使其继续应用在&2(星际争霸一&二), 2/2X/3/3X(魔兽争霸2/3及其资料片), 2(暗黑破坏神2), Lords of Magic(魔法大帝)和World of (魔兽世界)中。
关于MPQ的介绍
MPQ内部包含了许多文件,包括坐标算法、声音、动画、字符串、数字数据和故事情节信息。明显地,MPQ的潜力很大。要想利用MPQ,那么您就需要了解它。在有MPQ格式之前,一直使用的是WAR格式,在 2,甚至在 1中存放游戏数据。然而WAR格式是简单的,不精制的,是由缺乏经验的程序员所编写的文件格式。文件在档案中仅使用参考序数和是否被压缩做为唯一可选择调用的方法。
尽管如此它仍然完成了它的任务。它提供了压缩格式下的文件调用。但很快缺点开始出现。调用时使用参考序数,意味着一长传文件接口的名单必须被保留和被咨询,当程序员需要使用其中一个文件,那么则需要极长的时间,工作变得越来越繁琐。当时这些问题并没有那么严重,所以有人坚持使用WAR格式,但是一切在使用(网络对战)后,问题变得不能接受。
MPQ的特点
如被提及以前,MPQ格式一直被用做修正WAR的设计缺陷。但是现在他们也想增加一些全新的特点到MPQ。在暴雪的游戏中,MPQ格式的特点总结为以下几点:
1.. 安全
暴雪一定不希望在游戏中玩家可以修改数据。或许他们提早知道MPQ格式可以为使用。不管怎样,安全是最重要的,由此他们显然做了极大的努力去维护游戏的安全性。
2.. 效率
MPQs要求执行时先简单预先输入的各种各样的任务数据然后实时放出。对于预先输入数据,时间并不重要。但是实时放出就是另一件事了,其中的数据必须快速地被解压使用。
3..多语言的计算机处理
在最开始的时候,暴雪就计划发布其游戏在全球游戏市场,因此他们尽可能的做到多语言。在创新时,他们决定设计多语种能写入MPQ格式。
4..扩展
显然的,在游戏中需要使用独立的数据。太大的数据不仅是效率低并且减慢游戏速度,如果补丁修改了,也是很麻烦的。暴雪明白这个道理,因而MPQ格式的要求就是有能力完全,高效率的,从多个档案数据中调用需要的数据。
什么是storm
相比在程序模块中复制函数,多数程序员喜欢把相同代码放到 (共享程序库)里。 是包含了任意程序功能的函数模块。不仅能避免多余,并且能缩小程序大小。
正因为如此,暴雪使用一个称为Storm的共享程序库(PC机上为Storm.dll,MAC机为Storm.bin)。
所有现代的暴雪游戏中都使用storm存放重要功能,比如读取MPQ,和一些图形化例程。
当暴雪要发布新版本的游戏,只需要增加功能到storm,无需改变原有功能。这意味着旧版本的游戏只用升级新版本storm就可以了,这就是我们俗称的安装补丁。
就像所有共享程序库,任何想使用它的程序都可以访问到它的函数。这就是为什么storm只包含MPQ读取功能。
什么是 MPQ API DLL
虽然 Storm 没有包含任何编写MPQ的功能。但是 包含,因为 SCM/SCX 文件也是 MoPaQ文件。但是这些函数被加密了,所以只有知识渊博的黑客们才可以使用。对于 来说不幸的是,有一个这样的黑客,他的名字是 (aka Lelik)。他发现了一种访问这些宝贵的函数的途径,并把这个复杂的过程封装在.DLL(Lelik's MPQ API DLL)文件中。该文件自动破解,将这些函数展示在所有的程序员面前。
==========
MPQ临时补丁/非关键性更新/本地Cache缓存
BLZ为了完成一些比较小的更新或者比较小的修复(修复BUG之类),会让所有玩家自动下载更新一个MPQ临时补丁。
或 者为了快速读取常用资源,减小卡死现象,也从本地 Data 文件夹下的 MPQ 中提取常用资源,在缓存文件夹中,生成新的本地缓存 MPQ文件,也可看作是 MPQ临时补丁。
“MPQ临时补丁”文件会按照“BLZ临时补丁命名规则”进行命名,并且客户端会识别读取。
在4.0版本后由于“MPQ与WAV”的一些原因(以后详解),BLZ无奈举措:
在游戏运行是新加入一个步骤,在新客户端用登录器“.exe”运行时,在本地Data下MPQ中提取常用资源,例如登陆界面以及其他必须常用的资源,然后生成新MPQ,放入 DataCache 中,称为本地缓存。
这些本地缓存文件简单来说是为了快速提取,防止游戏卡死的鸡肋解决办法。不过生成的本地缓存同为MPQ格式文件,也可利用来做魔型修改。同样也会有一定的命名规则。
客户端每次运行的时候会优先读取这些“MPQ临时补丁,”从而让BLZ完成一些小的更新或者修复。
“MPQ临时补丁”详细解释
其实,虽然MPQ的算法以及设计,无论是加密还是压缩都是无可比拟的!
但是由于现在MPQ格式的局限以及相关WAV音频的替换性,现在暴雪无奈之举措:
(关于MPQ和WAV之间的问题,在以后的贴子中会详细解释魔兽世界改模型,简单就是WAV非常适合在MPQ中存储提取,但是现在WAV逐渐被其他音频格式替换,现在客户端中出现ogg格式音频,以后解释。)
会在用登录器“.exe”运行时,在本地Data下MPQ中提取常用资源,例如登陆界面以及其他必须常用的资源,然后生成新MPQ,放入 DataCache 中,称为本地缓存。即提示“正在进行非关键更新。将需要一些时间。”。这段时间内你会发现DataCache下文件体积会不停增加。完成后会提示“魔兽世界是最新版本。”。如果没有完成非关键性更新,就登陆游戏,会在游戏中界面中上部分出现 绿/黄/红/转圈,其实也就是在进行非关键更新,即生成本地缓存,跟网络下载无关。
当然客户端没有下载完整的时候出现 绿/黄/红/转圈,也有可能是在下载。
==========
自制MPQ补丁
我们通过工具制作出MPQ文件,并且按照BLZ设定的“BLZ临时补丁命名规则”去对“自制MPQ补丁”命名,
就可以让客户端优先读取我们自制的MPQ文件。
“自制MPQ补丁”详细解释
举个例子:
客户端内定义了游戏中名为“希尔瓦娜斯”的妹仔的模型为“上层精灵”/“特殊亡灵”。
我们“自制MPQ补丁”中却定义这个叫“希尔瓦娜斯”的妹仔的模型为“人类女”。
虽然对同一个妹子的模型做了两个不同的定义,但是因为“自制MPQ补丁”采用了“BLZ临时补丁命名规则”,
所以,客户端会优先读取“自制MPQ补丁”中对“希尔瓦娜斯”的模型的定义,即,“人类女”。
我们进入游戏会发现这个本身是“上层精灵”/“特殊亡灵”的“希尔瓦娜斯”妹仔变成了“人类女”
至于本身客户端对“希尔瓦娜斯”的妹子模型的定义则会被忽略,本身客户端不会被修改和破坏。
因此,魔兽世界模型修改,并不会破坏和修改客户端本身,只是加载一个新的文件,这个文件采用了“BLZ临时补丁命名规则”而已,
“自制MPQ补丁”简单说算是制作了一个假的“MPQ临时补丁”,并且采用了“BLZ临时补丁命名规则”,从而欺骗客户端和服务器,让服务器优先读取“自制MPQ补丁”。
当然,为了更完美的欺骗客户端和服务器和玩上纯粹的BLZ魔兽世界,我们一般用“反和谐登录器”登陆游戏。
==========
BLP
“BLP”详细解释BLP为一种图片压缩格式,体积小,不能直接编辑,是游戏中模型贴图的应用格式。
==========
反和谐登录器
此工具作者为 ,一直潜伏着,每到版本一更新,就冒出水面为大众服务更新登录器,是大家的好盆友,造福WOWer多年,鼓掌。
功能有很多,对玩家来说一般有两大功能。
一、简单反和谐
由于我国特殊国情,很遗憾但是某些方面来说又是必要的一项措施就是,删除、修改或替换原版美服的一些过于暴力血腥的模型和贴图。
(以上内容不必讨论,非要废话的,请在你能够改变他的时候再废话。)
反和谐登录器就是还原为美服版本,当然不是全部,这对于普通玩家来说已经足够了,例如:坟墓还原为骷髅,亡灵肉身还原露骨等等。
(除非你是对比着美服客户端挨个看墙上、地上贴图的牛B党,否则对于一般玩家来说,反和谐功能已经足够了。)
二、绕开服务器检测
上面所提到“自制MPQ补丁”,并不是每一个版本都可以用官方登录器登录并且自行载入的。
在有些版本,例如:3.5以及之前的某个版本。
服务器与客户端在运行没有强制检测,至少说没有强制检测MPQ的官方性,只要是DATA文件夹下所含的MPQ包,无论是自制的还是官方的,只要都是按照命名规则命名了的MPQ包都会正常去载入。
但大多数版本不是这样,例如3.1、3.2、4.1、4.2等等版本。
服务器与客户端在运行采取强制检测,这个时候我们就必须要绕开服务器检测,让客户端加载我们按规则命名好的“自制MPQ补丁”。
至于如何绕开服务器检测,怎么绕开,很简单,就是用反和谐登录器登录即可。
当然有部分版本的反和谐登录器是需要修改设置文件的,如果想了解,本模型板块区顶置了“大 反和谐登录器”的帖子。
注:一些注意事项
在大发布帖中写得很详细,这里再次废话。
一般情况下,我们可以无视掉“.ini”,直接诶删除他!
不要让“.ini”和“.exe”同文件夹!!(这点很重要)
当然如果是特殊情况,且你熟悉设置文件,可以如下设置“.ini”
运行之前,最好用干净客户端(即客户端内没有包含非官方补丁)正常登录游戏一次。
登录器设置文件为“.ini”或“.ini.”,都可以用记事本方式打开编辑。
如果是“.ini.”,请更名为“.ini”
作为改模型来说,设置最好如下(教程所用反和谐登录器版本为 ):
#如果你不需要修改下面的参数,可以直接删除这个文件
#这个文件只有和使用相同的文件名,才会被读取
#启动时指定的命令行参数优先生效
[]
#以只读方式读取WOW配置文件
=0
#指定wow文件夹,留空则自动搜索
=
#指定默认进入的服务器名,留空则使用客户端现有设置
=
#禁用游戏音效
=0
#以静默方式运行登录器,自动启动游戏和自动退出
=0
#加载游戏后自动退出
quit=0
#河蟹
=1
#不要修改wow进程可执行代码,如设为1魔兽世界改模型,则下面三个功能会被禁止
=0
#增加客户端允许的patch包文件名到65000
=1
#屏蔽客户端文件签名验证
=1
#屏蔽客户端的在线验证
=0
#锁定Scan.DLL
=0
==========
MPQ命名规则:
4.1/4.2 自制MPQ补丁 命名规则(同样也是“BLZ临时补丁命名规则”):
A类
如果你的“自制MPQ”替换修改的内容,是“魔兽世界/Data 目录中(不含子目录)”的MPQ文件中的内容,
一般此类“自制MPQ”中包含M2、BLP、SKIN等文件。
那么你的“自制MPQ”命名为:wow--base-*****.MPQ
注:此类“自制MPQ”,如果想多个并存,只需要如下所述,修改*****为不同即可。当然,数字越大越优先读取。
B类
如果你的“自制MPQ”替换修改的内容,是“魔兽世界/Data/zhCN 或 魔兽世界/Data/enCN 目录中(不含子目录)”的MPQ文件中的内容。
一般此类“自制MPQ”中包含“DBC”等文件。
那么你的“自制MPQ”命名为: “wow--zhCN-*****.MPQ”或“wow--enCN-*****.MPQ”
注:此类“自制MPQ”,如果想多个并存,首先要看包含修改的“DBC”文件有没有重复冲突,如果有,那么只能是读取“*****”数字大的“自制MPQ”。
如果包含修改的“DBC”文件有没有重复冲突。只需要如下所述,修改*****为不同即可。当然,数字越大越优先读取。
特别注明:
修改DBC的“自制MPQ”,一更新(即便是小版本更新)运气好不报错,游戏中各种问题;运气不好,游戏都进不了,直接报错。
请先确认是不是DBC类的修改包且能不能使用。(各种傻瓜一键修改器基本上做的MPQ补丁包都是DBC修改方法做成的)。
问如何解决,方法有三,看教程自己学自己修改,坐等傻瓜一键修改器更新,删除且远离补丁。
“MPQ命名规则”中“*****”为
*****为五位数字
其中的*****为五位数字,其值应大于当前客户端版本号,小于65000,建议用尽量大的值,以免和后续补丁冲突。
客户端版本号请在输入游戏账号密码的界面左下角查看。教程所用客户端版本号为:14769
当然推荐改成比较好记的数字,例如老几的补丁包数字习惯修改为22222。
==========
新手问答录
一些常问的问题,如果不看,然后又弹别人QQ视频问别人是怎样怎样,多半时候会碰灰哦~
新手问答录(回帖更贴集中更新)
问:怎么样才能用魔盒/精灵/六魔包/大脚插件,又能用反和谐登录器?
答:魔盒、精灵、六魔包、大脚这些插件客户端,仅仅只是一个更新插件的工具,平时没有更新的情况下可以不用打开,至于那上面“启动游戏”的按钮只是方便玩家快速登录游戏,不必再打开官方登录器登录。
所以并不是非要用这些插件客户端登录。平时用 反和谐登录器 登录即可。
问:我有多个模型包,请问怎么才能让他们同时生效呢?
答:如果你的魔型包是B类,那么你只能自己学习修改,重新自己做包。
如果你的魔型包是B类,那么参照B类包的命名方式,用不同的五位数字即可让多个包同时生效。
注意:如果是多个B类包,如果包内的有重复的部分,对于重复部分,系统只读取数字较大的那个B类包中重复部分的内容。
问:请问游戏过程中屏幕正上方为什么会有红色/黄色/绿色的小光圈时不时的转一下,感觉游戏卡卡的是为什么?
答:现在客户端的下载可以设置为先下载重要的文件,然后在游戏中在下载不太重要的文件。此举措是为了更新的时候大家能够尽快的进入游戏。所以显示红/黄/绿圈有可能是在下载。
如果你的客户端是完整的,那么基本上是在生成缓存文件,以前的缓存文件只是一些缓存数据,很小。现在为了更流畅的运行游戏,客户端会自动把你常用到的游戏数据解压出来生成缓存文件,方便快速读取。
所以即便是完整的客户端也有可能出现这个,小卡一会儿就好了。生成的缓存文件存放在“魔兽世界Cache”以及“魔兽世界DataCache”,可以任意删除,当然,是在退出游戏后删除。
==========
其他报错和弹框以及其他问题
[教程][报错]由于补丁或者反和谐登录器引起的各种报错、各种弹框问题集中贴
点我进入
==========
注:教程所述为 CWOW客户端,原理上同理适用于其他客户端。
其中:“zhCN”为国服简体中文、“enCN”为国服英文,
同理:“zhTW”为台服繁体中文、“enTW”为台服英文,请自行同理理解教程。
改动