查看: 2137|回复: 5
魔兽争霸3地图载入画面制作完全手册
载入画面简介:
魔兽争霸3 地图的游戏载入画面背景是一个 *.mdx 文件. 所有魔兽3的单位3D模型都是这种文件。
这种模型由两部分组成, 一是存储模型坐标动画等各种信息的MDX文件, 还有就是BLP或者TGA贴图文件(或者叫蒙皮,就是包裹模型的皮肤).
两部分都得正确才能显示出模型来.
注: BLP是暴雪开发的一种模型贴图压缩格式, TGA是一种常见的图片格式. 可以用ACDsee或者PhotoShop来转换格式.
用PhotoShop保存为TGA格式的时候一般选为24位,若是需要透明效果则选32位. 建议勾上&压缩RLE&以减小文件大小.
若希望制作自己的载入画面, 有两种办法:
一种是下载现成的载入画面模型,将其中的贴图文件修改成自己想要的样子.
另一种就是用3DMAX来完全自己制作, 当然这个比较复杂. 仅适合有制作过魔兽模型的朋友.
制作魔兽3模型只能是3DMAX4或5。需要*** WarcraftIIIArtTools1.01 这些常识就不说了。
讲一下地图载入画面和一般模型区别的特殊之处:
3DMAX中仅仅很小一部分区域显示为地图载入画面的屏幕。
他们是从坐标: X=0, Y=0, Z=0,&&到&&X= 0.6 , Y= -0.8, Z=0。也就是第4象限靠着原点一个很小的矩形。
(有点奇怪的是3DMAX中的坐标和MDL文件中的坐标方向不一样, 当然我们不用管他)
贴图同一般的魔兽贴图,但贴图材质必须要勾上&Unshaded&才能显示出来。否则是看不到的。
可以加个轨迹还有动画片段:如 Birth。也可以不加。建议加上吧。
1.gif (56.25 KB, 下载次数: 29)
16:06 上传
&&自己路过下啦
& && && && &&&{:6_327:}& &
& && && &{:6_306:}
{:soso_e192:}
{:soso_e202:}
{:soso_e199:}
谢谢了,很给力了网友自制《魔兽争霸3》神级RPG地图 LOL、DOTA终极一战
日 来源:易竞技 编辑:提莫队长
& &作为当下最受欢迎的游戏,《LOL》和《DOTA》的部分玩家互相看不起对方,认为自己玩的游戏才是高大上,别人玩的是一坨那啥,因此一些互喷甚至真人PK事件频发。那么两款游戏的英雄在一起交战会是怎样的一番景象?现在就有网友通过《争霸3》的地图编辑器实现了&关公战秦琼&的壮举,一起来感受下吧。
亚索E+Q技能展示
亚索多段Q技能展示
亚索风墙阻挡技能展示
亚索风墙阻挡技能展示
亚索风墙阻挡技能展示
亚索击飞配合大招展示
& &在我们欣赏地图制作者带来的精美作品时,也不仅感叹《魔兽争霸3》地图编辑器的强大!
1 友情提示:支持键盘左右键← →翻页
魔兽争霸3:冰封王座你感兴趣吗?
看完这篇文章有何感觉?
游迅小编微博
相关阅读:
48小时热门评论
一周热点资讯
灌篮高手、龙珠未进前五,第一名是喜羊羊!
迪士尼告赢山寨动画获得135万赔偿,善恶终有报!
2016年市场占有率暴跌一半,曾经的大佬为何沦落至此? 中国游戏制作者获得认可,精品佳作也越来越多。
CopyRight&2004年-年 < 游迅网 All Rights Reserved
备案编号:沪ICP备号-611372人阅读
以前在网上找过一些魔兽外挂的代码,都是很简单的读魔兽进程,修改内存。但是修改那里的内存,修改为什么,为什么这样修改,那些外挂文章完全没有提及。
其实那分析过程才是做外挂最重要的,也是最难的。
今天我也自己试着分析,想自己从头到底分析,怎么做个魔兽外挂。
当然我也有参考网上的唯一提及分析魔兽争霸的文章:
果子林的:(由于果子林的文章链接年久失修,这个是国内一位魔兽外挂作者转的)
首先本次制作这个外挂的目的是在大地图上显示所有单位。我会把所有分析过程记录下来。
我的魔兽版本是 1.24E,系统是XP(最好用xp,win7下很多DLL都重定位到别的地址,分析起来不方便)
我按照果子林的文章所讲作基础,猜测当单位能显示为1,不显示为0.(这个只能由经验判断吧)
打开war3 ,现在盯上一个野怪。猜测存在这么一个内存地址,当我能看见它,为1,当不能看见时为0.
用cheat engine 打开war3,将Value值设为1,Value Type值设为Byte,点击First Scan开始搜索。
1,搜索完毕后,切换到WC3,拉开小兵使那个野怪不可见,返回CE,将Value值改为0,点击Next Scan。
2,搜索完毕后,再回到游戏,移动小兵,使那个野怪可见,返回CE,搜索1
从复1,2步操作最后可以找到一个代表这个小兵是否可见的内存地址:
果断打开OD,附加上去。
在CE搜索得到的内存0x95206c8加上内存访问断点,运行
发现有两处地方对该地址进行读写:
6F2846F3 & &0 &
mov dword ptr ds:[esi+0x264],edx & & & & ; 赋值给该地址
6F284748 & &83BE &cmp dword ptr ds:[esi+0x264],0x0 & &&
通过观察,这个赋值操作后,也没看出干了什么有用的东西,而最重要的决定该单位是否显示的edx的值,通过观察原来是通过函数第一个参数传过去的,野怪内存地址的值为第一个参数的值。
那样就只能往回找。看哪个函数调用它的。查看调用栈可很容易知道谁调用的。