写一个魔兽争霸3Maphack
- 格式:doc
- 大小:101.00 KB
- 文档页数:11
魔兽争霸Ⅲ》地图制作入门教程WarCraftⅢ World Editor(简称WE),是暴雪巨作《魔兽争霸Ⅲ》所附带的功能强大的地图编辑器。
世界上很多地图制作高手已利用WE创作出了类似《反恐精英》、《暗黑破坏神》、《雷电》、《大富翁》等经典游戏的魔兽版,可以说用WE只有想不到,没有做不到。
WE功能如此强大,其实不难掌握,因为暴雪已将它做得再“傻瓜”不过了。
当你决定使用它创造地图时,摆在你面前的不过是一大堆“积木”,你只要发挥自己的创造力,就能将其摆放出一个自己想象中的世界来。
是不是已经等不及了?让我们赶快启动WE来制作属于你的一部舞台剧!WE由四个主编辑器还有个功能强大的物件管理器(Object Manager)组成。
四大编辑器分为地形编辑器(Terrain Editor)、单位编辑器(Unit Editor)、触发编辑器(Trigger Editor)、音效编辑器(Sound Editor),四者关系如图,其中要属地形编辑器和触发编辑器功能最为强大。
本文将以四大编辑器为主线介绍WE,并以官方RPG地图WarChasers的制作方法为例,由浅入深地讲解构建一幅魔兽地图的思路。
(注:本文使用的软件为英文版WarCraft World Editor 1.05版)搭建舞台场景——地形编辑器WE基本元素之一。
光用地形编辑器就能制作出简单的对战地图。
由于它被设计得“傻瓜化”,就算是新手操作起来也非常容易,仿佛Windows画板一样。
通过魔兽争霸快捷程序组运行World Editor之后看到如图1界面,这便是最基础的地形编辑器。
①上方为菜单栏,与其它的Windows软件类似,在这里可进行WE的所有指令操作。
②WE的主编辑视窗,通过它看到所编辑地图的全貌。
③辅助视窗,对你编辑地图有一定帮助,不过会影响到速度。
④工具面板,相当于一个巨大的素材库,能很方便地添加物件到地图。
⑤状态栏,记录了包括鼠标位置、鼠标所选物件的名称等附加信息。
魔兽争霸3:冰封王座战术大全HUM战术集1.万金油战术此战术从ROC时代就开始风行,而且经久不衰,在经历了版本更新削弱后,改进战术层出不穷。
基本部队组成:大法师(以下称AM)山丘(MK)火枪(RM)牧师女巫(男女)适合争对种族:ORC NE UD(所以称万金油)适合地图:基本上所有的SOLO地图简介:开局3农采金(随你喜欢)→放下BF(造完第一个刚好能放下第二个)和BA →生产2个农民(连续生产7个就等钱升基地)→第一个出来放下BB →BA好就出AM →BB好产FM(一个接一个,三个最好)→这个时候最好放下一个塔→钱够就升基地→有足够的钱放下BS (好了就出RM,大概4-5个,记得要升射程)→二本后出MK (有酒馆出中立英雄也行)和放下两个BR →BR好先出3个女巫,再男人。
大概有55人口就算成型了,去对手家练油吧。
这个配置对UD不是很好,拆建筑太慢。
UD有腐地和蜘蛛塔,基本上是攻不下的。
优势:拥有移动肉盾-水元素,秒杀工具-MK,高攻击输出-RM,战术辅助补给-男女,水元素的存在使HUM从一开始就拥有优秀的MF能力,当2级水元素出现后,HUM可以MF任何普通的CREEP点;战斗中,水元素可充当强力肉盾,高HP使敌手无法快速的解决掉,而同时水元素的强大穿刺伤害也让无甲部队望而生畏,女猎手(HT)更是最大的受害者,后期驱散的出现使水元素威力减小,但AM用不完的MANA仍使水元素发挥出及至MK 的出现使前期脆弱的HUM一下子翻身,超高伤害的飞锤成为所以英雄的噩梦,而雷霆一击却让HP稀少的初级兵种完全成为MK的经验值。
在AM辉煌光环的照耀下,MK逐渐成为HUM的灵魂,火枪一直是HUM玩家的最爱,较高的HP,不俗的攻击力,较快的攻击速度,配合MK的飞锤,简直是英雄的末日,配合女巫的减速,火枪也可以玩类似UD喜欢的ZZ 流的HIT&RUN。
火枪的高攻输出也是这个战术的核心之一,成规模的他们可以几乎点杀所有单位。
魔兽争霸3战役全攻略--最全《魔兽争霸3》战役全攻略《魔兽争霸3》共有五大战役,玩家必须依次进行人类联盟、不死亡灵、兽人族、暗夜精灵四个种族的战役。
除训练关外其他每个战役都有8到9关,这使整个游戏共有34关之多。
对于第一个战役属于训练关,由于非常简单,这里就不作介绍了,我们就从人类联盟开始。
一人类联盟第一章:Strahnbrad的防御主线任务:保卫Strahnbrad。
Arthas顺利到达Strahnbrad城。
支线任务一:打败绑架者Gnoll支线任务二:杀死Meng,将地契归还给Gerard过关提示:此关一开始我方出现在地图的左上角,沿路前进即可到达Strahnbrad。
在地图左下角的村庄中会有士兵加入,在村庄的下方与村民Alicia 对话即接到支线任务一,沿她旁边的路口前进便可找到Gnoll,打败他即可得到保护指环。
在路右方得的空地中会遇到敌军,打败他们,可以得到康复卷轴(全体加生命值150)。
在大桥附近与村民Gerard对话,即可接到支线任务二。
消灭地图右下的敌人便可找到Gerard丢失的地契。
到达Strahnbrad后,任务又增加了打败SlaveMaster和他的卫兵,将SlaveMaster和他的卫兵打败即可过关。
第二章:黑石部落主线任务一:建造一个兵营和两个农场并训练六个步兵主线任务二:打败Bladermaster支线任务:打败黑龙Searinox,并带Searinox之心到猎龙人处过关提示:本关一开始我方出现在的图的左下角。
你可以将ScoutTower升级为GuardTower来防守以击退敌军进攻。
同时我们还有一个9级的友军帮助防守,因此你可以放心进攻。
在基地右上方有一铁匠铺,访问此处后便可以在兵营中生产火枪手,这是一种远距离兵种。
在铁匠铺处还可接到支线任务。
黑龙在地图右下角,利用几个火枪手即可将其消灭。
完成任务一后触发剧情并接到任务二,Bladermaster在地图右上方,将其打败就可过关。
1.写一个魔兽争霸3 1.24d的maphack [mAsm]一场正在进行的暴风雪,使得所有快餐店都关了,看来无法摆脱我的宿舍了,正是如此,我再没有藉口去逃避写这篇教程了,该开始了:在我谈论之前,我想有必要提出以下要点:这也是我首次hacking魔兽3,同时也是首次写maphack,因此所有出现在这篇文章的要点完全规定-我鼓励你去指出任何我可以制造的错误,因为我有时不像1337那样。
带着这些不碍事的,让我们在这里开始。
有需要提出的是你的地址可能会不同,因为Game.dll是一个可装载的dll,它伸请了6F000000H的空间,然而,它会意想不到地重新分配它自己,所以要记住。
如果它真的做了(重新分配它自己),你有两个选择:重新开始游戏,或者简单地离开你的地址,把所有的在这个教程中的地址作为Game.dll+偏移的组合。
哈哈,从每个地址中减去6F000000H,并把结果加入你的基址里。
这篇教程是基于魔兽争霸3 版本1.24.3.6384(即1.24d)。
如果你使用一个不同的版本,偏移很可能会改变,但是这个方法仍然可行。
去尝试阻止人们hacking他们的游戏,暴雪公司放入了一些反调试的代码,主要以调用SetSecurityInfo()形式,这个函数修改Game.dll的DACL(任意访问控制表),并且不允许从外部修改。
然而,知道这个我们通过修改SetSecurityInfo的能数可以很容易地修正这个行为,而这个参数不过是一些代表安全描述的位的组合罢了。
现在我们怎么着手去找这个?好吧,我们知道Game.dll必须导出一个函数到主执行文件,所以最好开始在那个地方。
最好的方法去着手调试魔兽争霸3是将它运行于窗口模式。
你可以通过在它的快捷方式上点击右键,选属性,并在目标这个方框后面加上“-window”(没有引号,但有个空格),打开魔兽争霸3使它在主屏幕里空闲,并用OLLY附加到它上面(文件->附加)。
《魔兽争霸3》地图编辑器教学《魔兽争霸3》地图编辑器教学1有朋友反映魔兽争霸III 地图编辑器不太会用,我想也是,因为它比SC的地图编辑器要难的多(但是要好玩过),因此找了一些教学手册放上,希望会对大家有所帮助!World Editor 的集成界面各位好:)World Editor(以下简称WE)界面可分为以下几个部分:一、菜单栏:这是多数应用程序都有的部分,大多数的命令在这里被分门别类的放入菜单。
可以说,熟悉了一个程序的菜单,你就掌握了这个程序基本功能的一半以上了:)二、工具栏:相信多数人対这个也很熟悉。
一般都把最常用的功能做成工具栏上的按钮,让用户随时都以方便地选取。
WE的工具栏从左向右数过来分:1、文件操作功能 - 新建,打开,保存2、剪贴板操作功能 - 剪切,复制,粘贴3、步骤操作功能 - 撤消,重做4、选取工具。
程序默认是你想在地图上添加内容,只有点了这个以后才由添加变成选择,这样就能点选地图上当前层面的元素了。
(很多朋友都问过这个问题)5、其它编辑模块功能 - 除了最基本的第一个地形编辑窗口,还包括了触发器编辑器,声单编辑器,兵种单位编辑器,已存在对象浏览器等。
当点击他们中的一个时会打开相应的编辑窗口。
6、测试地图。
有些鸡肋的功能,必需在WARCARFT 3没有运行时才能用,点击后会将当前地图保存到MAPS/TEST/WorldEditTestMap.w3m,然后自动运行WAR3并建立一个名为WorldEdit的单机账号,使用此账号进入CUSTOM GAME读取该地图。
问题是在测试完退出后还在WAR3里,也就是说不能再用这个功能了(必需在WAR3没运行的情况下使用),还是要到游戏里选~~~~实在没什么意思。
三、缩略图预览即时显示当前地图的MINI地形图,对于绘制地图很有用的东东。
两个复选上面那个是是否显示中立建筑,下面一个是是否对小地图的显示使用和游戏中一样的设制,效果不是很明显。
四、角色预览窗口当你选中某个3D角色如某个兵种或是某个装饰物(Doodade)时会有所显示。
您正在使用“单页浏览模式”,请点击这里切换到“框架模式”登录→X娱乐娱乐首页|论坛排行|新建论坛|频道导航当前位置:胡同口 > 娱乐 > 电子竞技BAR > 看贴收藏[冰封王座]魔兽地图制作教程,改地图,加密解密,压缩工具,模型讲解分享到:∙QQ空间∙新浪微博∙人人网∙豆瓣网∙腾讯微博∙MSN[复制帖子地址] 返回[电子竞技BAR]关闭窗口| 隐藏边栏05046429神秘X发表于:06-07-09 12:52[第3版 07-10 20:51↓] [只看该作者]先发布魔兽-冰封王座地图编辑器最强版(免CD,全简体中文,带半解密的工具,能打开大量加密地图)(解压密码统一为本版域名;)DND地图编辑器.rar(1,978 KB)改地图对于没加密的就直接用DND改,但对于加了密的话就用这个,以后再发布更好的!物品,技能,单位修改工具.rar(68 KB)压缩地图通常步骤如下:1、用论坛里的we修改地图的单位物品技能(这个地图是不能删了wtg的或是优化了wts的)2、用mpq或w3m来解压单位物品技能文件3、重新用mpq打开没修改过的地图,先删除要压缩进来的文件,再把你刚解压出来的文件压缩进去4、在重新压缩,完成mpq步骤5、打开w3m来装载地图,修改地图信息中的任意地方就会完成地图压缩效果(变小了)以上的动作都会和j有关联,突然出现非法操作之类都会影响地图的不可玩性,如想更好请修改j之类的。
嫌麻烦的就用地图优化工具Wc3 Map Optimizer3,或用mpq删去后缀为wtg的文件(用mpq开别的地图,看它少什么,你就删什么)地图优化工具Wc3 Map Optimizer 3[1].7b汉化版.rar(292 KB)MPQMaster.rar(638 KB)什么是地图加密地图加密就是通过特殊方法破坏地图文件,使它可以在魔兽中运行,却不能被World Editor读取。
目前有哪些加密方法现在已有很多种加密War3地图的方法。
魔兽争霸3秘籍代码大全在战役模式下(多人游戏不可),敲回车,会出来对话框,然后把下面字符输入即可无敌并一击必杀: whosyourdaddy无限能量: thereisnospoon任务模式里即使失败也继续游戏: strengthandhonor地图全开: iseedeadpeople立即胜利: allyourbasearebelongtous立即失败: somebodysetusupthebomb禁止任务默认的胜利条件: itvexesme加黄金: keysersoze [黄金数量](如果未指定数量默认增加500)加木材: leafittome [木材数量](如果未指定数量默认增加500)加黄金和木材: greedisgood [数量](如果未指定数量默认增加500)快速建造: warpten无人口上限: pointbreak快速研究技能: whoisjohngalt快速升级: sharpandshiny解除科技树限制: synergy将时间直接设定到白昼: riseandshine将时间直接设定到夜晚: lightsout设定具体时间: daylightsavings [小时数]让时间永远停留在白昼: daylightsavings等级选择: motherland [种族] [等级]Fast death(?): iocainepowderCool down时间为0。
即放完一个魔法立刻可以放第二次。
thedudeabidesmotherland (race) (level) 选关RiseAndShine : 黎明LightsOut : 黄昏hoIsJohnGalt : 搜索在游戏中按下Enter键叫出对话框后输入密技如果输入正确会出现Cheat enabled 字样greedisgood =黄金木材各加500单位KeyserSoze =加黄金LeafItToMe =加木材PointBreak =加人口上限whosyourdaddy =无敌且拥有一击必杀iseedeadpeople =显示全部地图allyourbasearebelongtous =立即获胜somebodysetupusthebomb =立即战败ItVexesMe =不会被判定获胜StrengthAndHonor =不会被判定战败thereisnospoon =法力无限WhoIsJohnGalt =研发加速WarpTen =快速建筑SharpAndShiny =建筑物升级Synergy =科技全开RiseAndShine =黎明LightsOut =黄昏DaylightSavings =调整时间Motherland =跳关(如human 04) IocainePowder =fastdeath TheDudeAbides =cooldown。
创建地图和单位在地图初始打开的情况下.会默认新建一个64*64大小的.以"洛丹伦的夏天"地型为主的地型.1.15版本新增加了最小32*32的大小.以及原来就有的96.128.160.192.224.256的各种大小组合.可以在其中随意选择.如果我们需要创建不同类型的地型及大小.只需要点击地图左上方的图标就会弹出选择窗口然后会弹出以下窗口.其中宽度和高度就是地图的尺寸.像上述的可以自己设计多种组合.实用区域是指可放置单位的区域.因为地图边沿都会空出一些地方的.尺寸描述在对战的时候会看到.就好像地图的简略说明一下.而地型设置其实就是地型的风格.像洛丹伦的有土地.草地.岩石等.而城邦等就会出现一些砖瓦的地表.看下图:[右边还有一个海拔高度的设定.可以理解为层面.每一个高度就好像不同层一样.如果高度只有2的话.我们后面讲到的降低地面的时候只能降2层.就降不下去了.而初始水位有三个选择.一个是一般地表.就是无水的.另一种是浅水.虽然有水但也是陆地的一部分.单位可以在上面行走.而另一个是深水.普通单位就不可以在上面移动了.除了水生物以及船只等.下面有一个钩选栏.如果打个钩.就会产生凹凸不平的地面效果.看下图:这是关于新建地图的部分.新建完以后.大家会看到第一课所讲的那个界面.对地型等可视效果的大部分操作都在这里进行.昨天晚上也说过在地图上放置单位.选择菜单栏的层面选项可以看到下拉菜单.现在我们需要设置的是单位.选择其中单位一栏.然后会弹出如下的对话框:在这里我们可以选择所需要的单位.和单位所属.看"玩家 1 (红色)" 部分.这个是选择单位所属玩家.可以选择十二个玩家以外还有"中立敌对"和"中立无敌意"玩家.其中"中立敌对"就是一般地图上的供大家狩猎升级的单位.会主动攻击.而"中立无敌意"就是常用的中立NPC.不会主动攻击.另外还有一个"物品"选择.这个是选择在地图上放置各种类型的物品.然后看下面"人族"部分.是种族的选择.除了默认的四个种族以外.还有"中立"和冰峰王座新加入的"中立-娜迦".不同种族有不同类型的单位.后面的"对战"下拉单里分为"对战"."战役"和"自定义".其中对战就是大家在对战中常用的一些单位.而"战役"就是暴雪官方任务中出现的单位."自定义"就是自己设计的新建单位.选择好单位的类型和所属以后.我们点击单位的头像.然后鼠标会带个一个透明的单位.大家看下图:[这个看起来透明的就是鼠标所带有单位了.而另一个实体样式的就是在鼠标带有单位以后点击主视窗地面而产生的单位.改变地形外貌首先在菜单栏的层面选择"地型面板"或者在已经打开的单位面版里的单位部分点击选择.然后就会出现以下界面:大家看到.地型面板主要分为四个部分.第一部分是"纹理".纹理的作用就是地表.就好像我们在地面上涂上一层自己指定的颜色一样.而且不同地型所拥有的纹理也是不一样的.右边有三个比较特殊的选项.从上到下第一个是"荒芜之地".也就是亡灵族的地表.第二个是"边界".作用是在指定区域划出不可通行的黑色地表.而第三个就是擦除边界用的:[第二部分"悬崖".这个选项就是抬高或者降低地表.看到那些箭头了吗?红色向下的就是向下降低地面.而蓝色向上的就是向上提升地面.带有水的就是设置水面.有浅水和深水.这个和新建的时候作用一样的.不过不同的是可以选择指定区域来制作.而新建的时候选择就是整张地图都是这一地形.还有可以制作和上层地面连接的斜坡:第三部分就是"高度".可以调整地形的高度来制作一些山丘或者降低高度制作洞穴.还有随机高度就会自动产生不平整地面.第四部分就是控制尺寸.大家可以看到.有1 2 3 5 8等五种面积.这个就是一次控制的范围.尺寸越大.一次可控制的地方就越多.而下面的形状分圆形和正方形.可以依需要选择不同的样式.我们现在这个是默认的洛丹伦地型.如果大家需要选择其它地表的话.除了利用辅助工具(不推荐)之外.还可以在新建的时候选择.如果已经建好了.而且在上面做了一些改变而希望直接转变地型的话.可以在菜单栏的"高级"选项里找到"修改地型设置".如下图:然后会打开如下的对话框:在其中挑选自己需要的地型.比方如果需要雪地的就可以挑冬天如果要沼泽等昏暗地型的可以使用"费尔伍德"等等.可以自己选择试地区的划分和使用本节课的内容是浅淡如何划分和使用区域.区域:就是划分一定的范围.然后可以针对这个范围进行操作.并且可以划分多个区域.和上节课一样.我们的内容还是在"工具面版"中操作.大家点击工具面版的最上面一个选项.选择"地区面版".大家可以看到.现在这个面版里面是空的.因为我还有没划分出区域.地区面版现在只有一个功能.就是划分区域.看那个黑色的网状图标.点击一下.然后就可以在主视区里划区域了.和我们在WINDOWS里面进行拖动选取一样.画面一个区域以后.在地区面版中就会出现一个区域名.默认名字是"地区 000".在地区名上双击.就会选中这个区域.然后鼠标放到四个角上面然后点击并拖动可改变大小.如果点击中间的话.可以移动区域.鼠标右键点击区域名.会弹出一个菜单.其中察看地区就和双击的名字的功能一样.物体管理器是对地图所有物体进行查看管理.重命名就是对地区改名字.删除就是把划分的这个区域删除.排序是在多个区域的时候进行分类排列.比较常用的是编辑地区属性.点击以后会弹出一个对话框.第一个就是输入名字.和重命名功能一样.然后就是大小.也就是地区的上下左右的距离.颜色就是划分的地区的颜色.可以自定义.方便分类.气候效果是可选项.如果在前面打上钩的话.就会在地区中显示出指定的气候效果.我是打上了"日光"的效果.而且把地区颜色改成了绿色.场景配音默认是不可使用.设定好以后.点击确定.就完成了.镜头的应用和调整大家都知道摄影机吧.通过摄影机镜头照出来的就会显示在MTV中.而WE的镜头就是显示在游戏中了.和前面几节课一样.镜头也是使用工具面版来管理.点击最上面的下拉单.选择"镜头面版".和区域一样.在没有创建镜头的情况下.面版也是空的.所以我们需要来创建一个镜头.大家看面版的上部有三个选项.其中创建镜头是可以点击的.作用就是新创一个镜头.而这个镜头就是我们当前的视角.[为了看起来更直观一些.我对镜头做了一点调整.大家可以按住CTRL键.然后拖动鼠标右键调整视角.观看选择的镜头就是把当前视角转换成指定的镜头视角.和区域一样.双击镜头名字也会有一样的效果.设置镜头到当前视角.就是改变这个镜头的视角.转换成当前正在使用的视角.和创建一样的.不过这个是改变.创建了镜头以后.在下面就会出现默认的镜头名字"Camera 001".大家可以看到镜头是以一个虚拟摄像机的样子放置的.然后在下面有一个绿色的圈.这个就是镜头的范围.点击圈的内部并且拖动的话.就可以实现对镜头的移动了.双击绿圈中间的镜头部分.就会弹出属性框.和右键在镜头名上点击一样.其中观察镜头的功能上面已经讲过了.物体管理器和重命名也跟区域也一样.不过多了一个"复制镜头".选择复制镜头.就会产生和源镜头重叠的另一个镜头.为了可视我将新建的镜头移动了一下.这个功能和新建差不多.但好处是在进行一定角度的旋转镜头使用的时候会有方便很多.然后查看镜头属性.选择"编辑镜头属性"或者双击镜头的绿圈中间就会弹出属性框.前面也是重命名.目标XY是对地图中心点的偏移量.Z就是直角的偏移.旋转是很常用的功能.可以做360度转动.在指定角度和距离以后.如果我们需要拍摄一个物品的全景.最好是围绕这个物品转动.利用触发和镜头的结合就可以实现这个功能.水平角度也是以360度转动.不过不是左右.而是上下转动.可以拍出从下向上的特殊效果.距离就是镜头到指定范围的距离了.越远镜头就越高.下面的东西看起来也就越小了.站得高看得远嘛.滚动就是在原地旋转镜头.默认是0的角度.如果改成180度的话.就好像把摄影机翻过来拍摄一样.一切是倒着的.观察区域是镜头和目标区域的距离.和上面的距离的区别在于这个就像是把整个摄影机移近一样.而距离就是调整摄影机而已.远影剪裁.因为是3D的.所以就有远近之分了.这个数值越大.可见的范围也就越广.否则可见的就越少.还有一个"在主窗口中预览值"的选项.如果钩上的话.在调整的过程中就会自动跟据调整的数值变动镜头.最后.当我们完全做好以后.我们的镜头已经被转动得乱七八糟了.所以.按一下CTRL+SHIFT+C键恢愎到正常视角.。
war3地图制作初级教程(War3 map production tutorial)RPG map making tutorialWhat you have to do is a character selection function in 3C, that is, when the wizard enters the circle of energy, select the corresponding hero, which is the most common candidate function of 3C. Well, hands on.First, find the map editor, editor in Warcraft directory, called WorldEditor.exe (World Editor), double-click open. The first use of the map editor, the system will automatically create a 64*64 the size of our environment for the new map, the summer Luo Danlun. If you want to create a new map manually, you can create it by clicking on the file in the menu bar - the new map /File - New Map. If you want to create a new map in the closed open at the same time the editor can have the same function, select the file parameter settings - General - open to create a new map of /File - Preferences - General - Create a new map on start_up, will be in front of the hook removed to achieve.After the map was created, the map editor was made up, and the coordinates of the grid were displayed under 2 G. In the production of the above mentioned functions, let's do some preparatory work. First, since it is the choice of a hero, so the hero is naturally essential, press U to open the editing panel unit, here you can choose what we want to place units on the map, I chose a demon hunter (Demon Hunter), blood (Blood Mage) and the wizard of the Lich King (Lich King), of course, if you saw the other please feel free to make this hero, and will not affect the later. By the way in the unit panel switchingrace is in the extended menu to choose the third lines of the inside of the race, because the hero of the time saw the hero is not controlled by us, must choose to control, so the general practice is to be changed to neutral hero units, change method double click placed on the map hero, select the general game player - - Neutral hostile /General - Player - Neutral Passive. Pay attention to the hero not too far apart, or let the fairies ran a lot of trouble. After the hero is made, of course, an energy circle is put in front of the hero as a sprite, and the energy circle can be found in the Neutral hostile branch of the unit panel. Finally, put on the elf chosen for the hero, because the principle of the choice of multiple players is the same, so here we only choose 3 players, so only to belong to the 3 forces of the elf player. asEven if the work is finished, and then began to do the function part, to use the trigger.The first is introduction, in order not to disrupt our thinking, so I'm on the trigger principle not to do too much, we only need to know the role is to trigger events in the way to realize some functions can. Open the Trigger Editor /Trigger Editor by F4 and delete the default trigger, which is prepared for MEELE. You can see in the Warcraft map editor, a trigger is event (Events), environment (Conditions), (Actions) the three part is about the action, the relationship between the three parts can be illustrated with a simple example: "contact the fire after the explosion of gunpowder". Here, the gunpowder and fire contact is contact events, only two will occur after the action; and the object must be fire will contact the gunpowder explosion, so the fire here as the environment, restrict the gunpowderexplosion requirements; gunpowder explosion is in action, and after the fire caused contact action. In the trigger, we can modify the events, the environment, the action of these three parts according to the need, for example, the gunpowder and fire contact explosion can be changed into contact with water explosion. Then the above concept, to look at the selection method of making the hero, the hero must first after the occurrence of an event will be selected, and this event here is: elf into the energy circle; but here must be limited to be selected into the energy circle when only the elf hero,Other types of units into what will happen, so the whole environment is triggering constraints there, is entering the unit type: energy circle is "elf"; the last is the action, the hero is selected, actually choose action hero is to change the unit from the neutral power control game player hero units. The above mentioned steps to trigger the way it was written like this:Event (Events)A unit goes into the circle of energyEnvironment (Conditions)The unit of entry is "elf""Action (Actions)The control of energy circle corresponding hero to choose the hero of the game playerNow according to trigger written to find the corresponding in map editor options.Create a new /New Trigger method is in the trigger, the Trigger Editor window, right click the right mouse button to select the new "trigger /New Trigger>, new tentaculum hair will be automatically named" named trigger 00X ", the name of the trigger can be triggered in the choice of after the press F2 to modify. Then click on the new trigger, in the lower right of the trigger in the edit window right mouse button, select the new event /New Event, appear in the menu selection unit - unit enters Region /Unit - Unit Enters Region, and then click the red font selection part - / - Select Region, this window will automatically switch to the big map, requirements we select a region, here to explain in Warcraft, we usually see as into energy circle, or enter the garden, into the cave and so on "into a place", in fact, did not enter into our sight, but into the pre placed in the energy circle, garden, an area such as the location of the cave (Region). And now what we're going to do is to place such an area and select the area where he enters as a sprite in the event, and you can see it on the big mapThe panel is automatically switched to the Regional Panel (shortcuts directly open region of the panel is R), click on the panel button to coordinate sample in the pressed state, press the right button drag the mouse to draw a circle in the energy and energy circle regions of similar size, again click on the button on the panel. In the pop-up, just choose the area to place then, will automatically switch back to the TriggerEditor window, red font will be just part of the selected area name instead of continuous, determined the 2 events, they do a good job.Then the environment /Condition, select the new environment unit type to judge /New Conditions - Unit Type Comparison>, the unit type into the region is limited to "elf""Entering Unit means "entry unit", which refers to the unit entering the region. "Equal to" means "equivalent to"".The last action is /Actions, here to sort out what action to perform:1, after choosing a good hero, the elf disappears, so remove the sprite from the game at the beginning of the action.2, change the selected hero belongs to the forces of power control game player.3, the selected hero moves to the specified location, also is the base in 3C.4, because the hero can only be selected once, so at the end of the action, the whole trigger should be closed so that it can no longer be executed.The action corresponding to the above 4 is respectively:1, new action unit removed - removed from the game into the unit /New Action - Unit - Remove - Unit - Remove (Entering unit) fromthe game2, "new action - unit - change owner - change the demon hunter to have entered the unit owner and change the color of /New Action - Unit - Change - Unit - owner Change ownership of Demon Hunter 0002 <gen> to (Owner of (Entering unit) and Change color)3,The new action - unit - Mobile - Mobile demon hunter at the /New center of Action - Unit - Move region 001 Hunter 0002 Demon <gen> instantly to (Center of Region 001 <gen> 001) of course is to create their own regional area;4, the new action trigger off this trigger /New Action - Trigger - Turn off (This trigger)The trigger is complete, this will trigger control again choose another 2 Heroes is complete. Finally save the map, save the time will remind you to each place the starting point, if there is no place for you automatically placed on the map to any area, manual methods is placed in the unit panel select start point icon and then placed. Save the map after the press Ctrl + F9 to test it. Also, don't forget to set the controller of force 2 and 3 to player /User in the menu set - player /Scenario - Player>, otherwise you can't choose force 2 or 3 in the game.Brush soldiers (in some places, this is called to, I can't understand............). The simple explanation is that some units are produced near the base every time, so the nonsense is not much.We all know that in 3C will be at a certain time will be automatically generated, in the trigger, we will automatically occur once the event is the fixed time intervals called "periodic events" in general, often through the following two ways to realize the cycle of events:========================== method1=========================================The first one is realized by the event trigger cycle (also called the loop), a new Action in the trigger (action), to find such a sentence: For Each Integer A in the drop-down menu, Do Multiple Actions (for the integer value A, all the implementation of a number of actions). Click OK after see in Actions (action) in this category has added a Action like (action):For each (Integer A) from 1 to 10, do (Actions)Loop - Actions(for integer A, all from 1 to 10, execute action cycle of action)I explained in detail the role of this Action, For each (Integer A) from 1 to 10 (for all integer values A, from 1 to 10), which means repeating the 10 Loop - againActions (loop action) specifies the Actions (action), the same reason, if the following from 1 to 10 (from 1 to 10) changed to from 1 to 20 (from 1 to 20), thenThe 20 action will be repeated, assuming that from 5 to 10 will only perform 5 actions, and why not directly use from 1 to 5 instead of from 5 to 10, which is sometimes necessaryThe functions used, as well as the timing of the specific use, in order not to make everyone confused, now temporarily do not explain, wait until the actual use of similar circumstances to do instructions.-------------------------- example similiarlyNow, to illustrate this function more effectively, let's take a simple example of opening a trigger editor by F4, a new key, a Event (event): Player - Player 1 (Red)Skips a cinematic sequence "player player 1 (red) skip a movie sequence", the event is created by the right mouse button - New Event (new event) -Player (player) - Cinematic Skipped (the movie is skipped), the event's effect is that when player 1 presses the ESC button, it triggers the action. Then add an actionFor each (Integer A) from 1 to 10, do (Actions)Loop - ActionsThis number will need to repeat the action for 10 times,These are then added action in Loop - Actions below:Game - Display to (All players) the text: (String ((Integer A)))(game - game player to all display information: A as integer values of the loop sequence is converted to a string type on the data types, there is no further explanation, we only need to know only the string type data can be displayed as information can be. Here, "the integer A", which is a cyclic sequence, is actually a value that records how many times the action has been repeated The order of adding this action is New Action (new action) - Game (game) - TextMessage (Auto-Timed) (display information, automatic adjustment of information display time)Wait 1 seconds(wait for 1 seconds, so that the next action will take one second after each action). The order of action added is New Action (new action) - All (all) - Wait (wait).Then, after the entire loop Action (action), (note that after the entire For Each Integer, don't add it to Loop - Actions), add thisAction (action):Game - Display to (All players) the text: (finish)Is after the whole cycle end display a word to indicate the end of cycle. Of course, you can finish with their love of change.The Melee Initialization (map initialization) this trigger removed, placed on the map to start game player, press Ctrl + F9 into the game to test, can be seen in the game when pressing the ESC key will be divided into 10 times a second in order to display digital 1~10, finally will display finish. Through this example we can see clearly. For each (Integer A) from 1 to 10, do (Actions) this action can make at Loop - Actions below 1 to from action repeated 10 times in the back of digital +1 minus in front of numbers, and when the number of repeat all has been executed, will continue the cycle behind the action. It is very simple and convenient to realize the periodic execution of the event, but with the Action (action) periodic event has two drawbacks, the first is the implementation of a finite number of cycles, we can see, in this Action in any case also requires to determine the execution times of the 2 digital input; second is between each action time interval has a minimum limit, in the example above, we will Wait 1 seconds (for 1 second) to Wait 0 seconds (wait 0 seconds) after entering the game, will find that even 0 seconds, there will be little waiting time (about 0.1~0.4 seconds, depending on configuration and computer), so that when the periodic events perform some repetition time interval is very small, could not be realized at all, for the periodic event must exclude the above two kinds of restrictions, it shall be There must be another method, periodic event (cycle event), unlike For each Integer, which is a Event (event) rather than a Action (action).========================== method2=========================================Method to add the event: New Event (new event) - Time (time)- Periodic Event (periodic event), add after the completion of the Event can be seen in the following Event class (event):Time - Every 1 seconds of game time(time - 1 seconds per game) is very obvious, that is, every second will perform a Actions (action) contains all the action, Every 1 seconds in the number of seconds to specify the execution of action. For this event, we can still use 1 simple examples to illustrate.-------------------------- example similiarlyA new trigger, Event (event) with the events above, 1 to 0.50, which is 1 times every 0.5 seconds, and then press Ctrl+B to open the edit panel (due to variable variables, are the first contact, I am not in detail, you do what I say is, will make a detailed introduction of variables and data types). Click on the green button panel above the fork, the drop-down menu select Integer at the bottom of the window that appears in the (integer) and then enter the bar at the top of this variable as just a name, [map: var.gif] I use the name I1 for the introduction, it established a type "integer type variable. Put this variable here temporarily, back to the trigger you just created, and add the following action in the Actions (action) class:Set I1 = (I1 + 1)The order of addition of Action: New (new action) - All (all) - Set Varible (set)The function of this Action (action) is to make the value of I1 equal to its current value +1, such as the current value of I1 is 5, so the value of I1 is the value after the execution of the action5+1, that is, 6.Then add:Game - Display to (All players) the text: (String (I1))Add the same way, function is to display the value of i1.Then entering the game test, you'll see that in the game will automatically display the number at 0.5 seconds speed, the value of the last display of digital +1. Summed up the Periodic Event (cycle event) is characterized in the activation trigger by Event (events) in the specified time interval to repeat Actions (action) contains all actions, and as long as the trigger is not closed, would have been to perform.=========================================================== =============These are the two most common ways of implementing periodic events. Then, on this basis, I briefly describe the principle of trigger.Brush trigger is a periodic event, and its action is to create units in the specified location. Here I simply write this trigger and add a little explanation. I believe you shouldunderstand the truth immediately when you understand what is said above.Untitled Trigger 003EventsTime - Every 3 seconds of game time [this is the periodic event mentioned earlier, where the interval of the cycle is set to 3 seconds]Conditions(Farm 0009 <gen> is alive) Equal to True Farm <gen> 0009 [here is a farm, the entire Condition (condition) means that if the Farm 0009 still survive, continue with Actions (action) method of instruction] add this Condition is New Conditions (new condition) - Boolean Comparison (judge that is the logical judgment) - select the icon position [map: boolean.gif] - Unit-Unit is Alive (unit - the unit was still alive)ActionsUnit - Create 1 Giant Wolf for Player 1 (Red) at (Position of Farm 0009 <gen>) facing Default building facing degrees[unit - create a wolf for player 1 (red) on the farm where 0009 is in the direction of the system defaultThe whole trigger, if expressed in words, is that every 3 seconds as long as the Farm 0009 is still alive, it creates awolf on the farm where it is.After entering the game to test, we should find that this trigger has such a drawback: create an unlimited number of units, even on the map have hundreds of thousands, wolf, as long as 0009 farms are still alive,There will always be new wolves, and in this case, we can impose restrictions by adding a simple condition as follows:(Number of units in (Units in (Playable map area) matching) ((Unit-type of (Matching unit)) Equal to Giant Wolf) and (((Matching unit) is alive) Equal to True)) Less than 5The sentence condition means that if the map number of all surviving wolf is less than 5, continue with Actions (action) class actions specified in the. The units in Units in (Playable map area) refers to the entire map units (Unit-type and of (Matching unit) Equal to) Giant Wolf refers to "all accord with the unit type for this condition, wolf (Matching unit) is alive) Equal to True refers to all units are still alive." the. Due to the complicated conditions listed below, add detailed method:New Conditions (new condition) - Integer Comparison (integer judgment)In the drop-down menu, select "Unit in Region Matching Condition" (the unit within the matching condition)"In the drop-down menu, select "And" - click "Condition1(condition 1)" - select "Unit-Type Comparison" (unit type judgment) in the drop-down menu"Click on the "Triggering Unit (triggering unit)" will be changed to "Matching Unit (matching unit) - continuous determine 2 times, click on the" FootMan (Bu Bing) "will change for you in Action (action) specified in the production units, I choose here is the next" wolf "click on the" Condition2 (2) - click on the icon position [figure bolc.gif] in the drop-down menu, select "Unit is Alive (still alive)" - click "Triggering Unit (triggering unit)" will be changed to "Matching Unit (matching unit), determined the 2 consecutiveFinally click OK back to the first menu will be the "Equal (equivalent to to) to Less Than (less than)", then click the last 0 will be changed to their maximum number of troops you want, this whole Condition (condition) is completeThe above is a limit to the maximum number of brush soldiers trigger the basic principle, but in practice is not so simple, many corresponding adjustments need to be made, interested can go to study.。
1.写一个魔兽争霸3 1.24d的maphack [mAsm]一场正在进行的暴风雪,使得所有快餐店都关了,看来无法摆脱我的宿舍了,正是如此,我再没有藉口去逃避写这篇教程了,该开始了:在我谈论之前,我想有必要提出以下要点:这也是我首次hacking魔兽3,同时也是首次写maphack,因此所有出现在这篇文章的要点完全规定-我鼓励你去指出任何我可以制造的错误,因为我有时不像1337那样。
带着这些不碍事的,让我们在这里开始。
有需要提出的是你的地址可能会不同,因为Game.dll是一个可装载的dll,它伸请了6F000000H的空间,然而,它会意想不到地重新分配它自己,所以要记住。
如果它真的做了(重新分配它自己),你有两个选择:重新开始游戏,或者简单地离开你的地址,把所有的在这个教程中的地址作为Game.dll+偏移的组合。
哈哈,从每个地址中减去6F000000H,并把结果加入你的基址里。
这篇教程是基于魔兽争霸3 版本1.24.3.6384(即1.24d)。
如果你使用一个不同的版本,偏移很可能会改变,但是这个方法仍然可行。
去尝试阻止人们hacking他们的游戏,暴雪公司放入了一些反调试的代码,主要以调用SetSecurityInfo()形式,这个函数修改Game.dll的DACL(任意访问控制表),并且不允许从外部修改。
然而,知道这个我们通过修改SetSecurityInfo的能数可以很容易地修正这个行为,而这个参数不过是一些代表安全描述的位的组合罢了。
现在我们怎么着手去找这个?好吧,我们知道Game.dll必须导出一个函数到主执行文件,所以最好开始在那个地方。
最好的方法去着手调试魔兽争霸3是将它运行于窗口模式。
你可以通过在它的快捷方式上点击右键,选属性,并在目标这个方框后面加上“-window”(没有引号,但有个空格),打开魔兽争霸3使它在主屏幕里空闲,并用OLLY附加到它上面(文件->附加)。
一旦它被附加了,查看Game.dll(右键->查看->Game)并按Ctrl+N弹出一些导入导出函数的列表。
马上你会注意到Game.dll仅导出两个函数,只有一个我们感肖趣:代码:Names in Game, item 0Address=6F009870Section=.textType=ExportName=GameMainNames in Game, item 1Address=6F7E1CE8Section=.textType=ExportName=<ModuleEntryPoint>在GameMain上面按Enter,你应该到这里:代码:6F009870 > 81EC 08010000 SUB ESP,1086F009876 A1 6041AC6F MOV EAX,DWORD PTR DS:[6FAC4160]6F00987B 33C4 XOR EAX,ESP6F00987D 898424 04010000 MOV DWORD PTR SS:[ESP+104],EAX6F009884 56 PUSH ESI6F009885 8BB424 10010000 MOV ESI,DWORD PTR SS:[ESP+110]6F00988C E8 1F2F0000 CALL Game.6F00C7B06F009891 E8 7ABC6B00 CALL <JMP.&KERNEL32.GetTickCount>这个函数调用一些函数,在Game.dll及在Kernel.dll里。
但它看起来是最好的开始这些函数的地方,因为它有意义在于它们会保护这些模块,并在继续执行前使这些反调试弄到一边去。
所以知道这些,进入到6F00C7B0H的调用:代码:6F00C7B0 81EC 20020000 SUB ESP,2206F00C7B6 A1 6041AC6F MOV EAX,DWORD PTR DS:[6FAC4160]6F00C7BB 33C4 XOR EAX,ESP6F00C7BD 898424 1C020000 MOV DWORD PTR SS:[ESP+21C],EAX没有感兴趣的东西在这里,只是个开始的函数;然而,如果你向下滚动一些,你会这个宝贵的函数调用:6F00C852 B8 A484886F MOV EAX,Game.6F8884A4 ; ASCII "SetSecurityInfo"6F00C857 8BCE MOV ECX,ESI6F00C859 E8 32FFFFFF CALL Game.6F00C790这个有趣-想知道为什么它们把字符串传到EAX中,跟随到6F00C790H的调用,马上你可以见到为什么了:代码:6F00C790 50 PUSH EAX6F00C791 51 PUSH ECX6F00C792 FF15 BCF2876F CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd>; kernel32.GetProcAddress6F00C798 85C0 TEST EAX,EAX6F00C79A 75 03 JNZ SHORT Game.6F00C79F6F00C79C C2 0400 RETN 46F00C79F 8B5424 04 MOV EDX,DWORD PTR SS:[ESP+4]6F00C7A3 8902 MOV DWORD PTR DS:[EDX],EAX6F00C7A5 B8 01000000 MOV EAX,16F00C7AA C2 0400 RETN 4看来这个函数没有做什么只是取会这个传给EAX的地址。
虽然我们知道这个,我们但我们也可以假定SetSecurityInfo很可能会在我们现在的函数中调用,所以回到6F00C7B0H,向下滚动直到你到了这里:6F00C8AB 53 PUSH EBX6F00C8AC 8D4424 30 LEA EAX,DWORD PTR SS:[ESP+30]6F00C8B0 50 PUSH EAX6F00C8B1 53 PUSH EBX6F00C8B2 53 PUSH EBX6F00C8B3 68 04000080 PUSH 800000046F00C8B8 6A 06 PUSH 66F00C8BA 55 PUSH EBP6F00C8BB FF5424 34 CALL DWORD PTR SS:[ESP+34]6F00C8BF 85C0 TEST EAX,EAX6F00C8C1 75 03 JNZ SHORT Game.6F00C8C6好了马上烦挠我的是在6F00C8B3H行的内容-我们在处理WIN32 API时知道大部份位标志通常以一些8XXXXXXX的形式派生。
另一样事情是跳过这个调用。
因为SetSecurityInfo是现在这个函数最后的调用API,它看起来应该属于栈帧的顶部。
现在我们怎么处理这个?转换到C,这个函数看起来像:SetSecurityInfo(ebp,6,0x80000004,ebx,ebx,eax,ebx);在MSDN查这个函数,你可以看到第三个参数代表安全信息,如果我们简单地也一个NULL位标志入栈,函数会什么也不做。
所以改变PUSH 80000004H成为PUSH 0,你很轻松到这里:6F00C8B3 6A 00 PUSH 06F00C8B5 90 NOP6F00C8B6 90 NOP6F00C8B7 90 NOP所有都完成的时候,最后我们可以设置断点了,开始hacking这个游戏了。
在我们开始做之前,我们应该给这一个想法,因为写一个maphack不是像搜索一个显示了的数值那么容易。
所有我们真正可以继续下去的事实就是作弊码“iseedeadpeople”让我们查看全地图,并且自从我过去研究过星际争霸的引擎,我们可以假定设定地图可见的状态为0,然而搜索0 及未知值将会是一个错误的方向去处理很多地址,所以我们无论如何也要削减它们。
然而我们也知道另一个事情,地图数组在地图开始时必须被初始化,所以我们可以用Olly找出那些内存段是从那里改变的。
在魔兽争霸3里,转到单人游戏,开始自定义游戏,从那里,向动到列表尽头并选择Ice Crown作为你的地图(这个会在后面解释),现在,在你开始前,切换到Olly,按Alt+M弹出内存映射,并刷新它(右键->刷新),这所做的是基本上保存一个现时内存状态的参考指针,并且一旦我们再选择刷新,会比较这些内存段,并标出哪些被改变的。
我们的参考指针设置了,切换到魔兽争霸3,开始你的游戏,并等待它装载。
当最后你的单位出现在屏幕前,切换到Olly,并再次刷新内存并放大内存的方框,看看成堆的红和黄的地址。
那些红色高亮的是我们感兴趣的。
因为它们代表着改变的内存段。
然而你会注意到它们混合着,所以现在开始分开它们两部分这个有趣的任务。
不要在你排序时,在任何环境下给予魔兽争霸3焦点。
所有的内存会被重刷新,而你会失去所有。
我建议你有时间才去做这件事,因为这会耗费一些时间并确保你做一些吸引你的事去使你的思想得到休息。
例如:我在洗衣服。
我计厌洗衣服。
我建议的最简单的方法去做这件事就是按大小来排序这些地址(右键->排序->按大小),并复制整个表到记事本,并从底部(通常大小是1000H)到大小是9000H的我们可以删除。
为什么?记得我是怎样选“Ice Crown”作为我们的地图?好,一个在GOOGLE 上快速搜索会告诉你地图的大小是192* 192.假定地图是一系列的一字节元素组合到一个数组(不是一次坏的假定),我们知道魔兽争霸3需要申请最小36864字节内存,在十六进制中就是9000H。
余下黄色的,你不得不手动把那些去除,但超过列表的3/4是在9000H大小以下的,这个不会用太多时间。
一旦你拥有所有已排序的地址,是时候拿出便利的十六进制计算器,ArtMoney(或者任可内存搜索工具),并且有一些空余时间,开始搜索。
当在搜索时,确保你的搜索在一个范围内,通过Option->Searching,并选择“Search in address range”方框里。
我们也想确保我们减小我们的搜索甚至通过只搜索一字节的值。
要做这个,当你弹出搜索框时,确保你选择的椭圆框下一个类型,并选择“Integer 1 byte”。
不同于那个,所有我们知道的是当作弊激活,值是0,当作弊取消,它们会是未知的值。
在一些搜索后你会遇到一个范围的值会在作弊激活时变换为0 ,在作弊取消时是1,128.典型地我这里弹出接近大小9000块内存,所以我会建议从底部开始。