偶久网

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索

网站魔兽热门地图

查看: 43791|回复: 369

基本知识:新手的福星(文字说明)通俗易懂!+视频,物品ID查找

  [复制链接]
博bó
发表于 2009-8-19 17:18:58
本帖最后由 博bó 于 2009-8-19 17:59 编辑 地形编辑器


地形编辑器是地图编辑器的主要模块。在这里用户可以设计和编辑地形放置单位和装饰物。

地形面板

要想修改地形,首先使用"T"键或者"窗口"菜单中选择新建地形面板,打开地形面板。一旦地形面板被打开,则可以使用四个工具.


地形面板上的第一个工具是应用质材。通过点击任何一种场景样式,选择它并放置在您的地图中。甚至您可以在地图上放置荒芜之地和边界质材。边界是一种特殊的地形,任何单位都无法穿越它。它类似于地图边缘的黑色区域。荒芜之地是不死族建筑周围延伸出来的地形。通过随机放置变量(预览中)允许编辑器自动从选择的类型中随机放置地形,而不是固定一种的效果。


第二个工具是放置峭壁选项。这个选项允许用户添加和删除地图上的峭壁、浅水、深水和斜坡。用户不但能够通过画笔增加/减少峭壁区域,而且能够改变已经放置的峭壁。


第三个工具是改变高度选项。这部分包括:


圆形山脉 -
允许用户制造圆形的山脉,按住Shift键,左键点击可以制造出圆形的山谷。
高原 - 允许用户制造圆形山脉和山谷之间的高地。
碎裂工具 -
这个工具可以制造破裂的地面。
光滑工具 - 这个工具可以进行平滑地面。

最后一个选项用来改变画笔的形状和大小。



修改地形
用户可以通过修改地形,修改所选择的地形,甚至是创建新的地形。



在创建自定义地形之前,您必须首先知道地形被归结为一种质材。有些地形在质材页中占用一页,有的则占用更多的页面。用户最多能够设置12页的地形。而且在开始的时候这些质材页都是被占满的。所以在创建新的地形之前,请首先删除足够的地形。但是无论如何您不能够删除标有红框的地形




单位面板

为了在地图上放置单位,您可以通过键盘上的"U"键或者在打开的面板上拖动下拉列表选择单位面板


单位面板的第一个菜单是用来决定单位所有者的:


玩家 X -
这里有玩家的列表,玩家1,玩家2一直到地图允许玩家的最大上限。这个玩家的最大上限可以在玩家属性中调整。
敌对中立单位 -
敌对的中立单位无视你所属的阵营。它是地图上所有玩家的敌人。甚至包括电脑控制的阵营。但是它们之间并不敌对。
友好中立单位 -
这些单位甚至在受到攻击的时候仍然不会反击。有些单位玩家是无法攻击的。
物品 -
这里您可以选择一个物品并直接放置到地图上。但是不能够决定野外生物掉落的物品。如果您想设定掉落的物品,请双击所放置的单位,然后在单位属性中设置。


第二个菜单是种族选项,允许用户选择要防止的单位所在的种族。


第三个菜单是单位的分类:

对战 -
设定单位在对战模式中出现。
战役 - 设定单位在战役模式中出现。
自定义 - 单位是在对象编辑器中创建的。




第四个选项是决定在什么地方能够遇到单位。

玩家的单位(兽族,人族,暗夜精灵族和不死族)被分为了五类:


单位 - 这类是每个种族的非英雄单位。这里要注意一点。比如不死族的石像鬼,它具有两个状态。所以你将有两个图标代表石像鬼的正常状态和石像状态。

建筑 - 这里包括每个种族能够建造的建筑,包括起始位置。如果选择暗夜精灵族,则在这部分只能够放下扎根版本的建筑。
英雄 - 每个种族拥有的英雄。

拔起建筑 - 这个选项只针对特定的种族暗夜精灵族。在这里能够放置拔起的建筑。
特殊 - 这部分是战役中的特殊单位。



就象前面的分类一样,中立单位被分为两类。这些单位根据等级和所属地貌,被分为若干组。


物品面板也具有一个菜单,能够通过选择,依据等级分成若干组。



单位属性


在放置一个单位之后,你可以进一步修改它。双击你所放置的单位,或者选择它之后点击编辑菜单中的编辑属性。你能够编辑的单位属性有:


通用

玩家 - 通过这项,你能够调整该单位所属的阵营:玩家X,敌对中立,友好中立。
面向 -
你可以通过手动点击肩头或者输入数字,调整单位所面对的方向。
生命值 -
调整该单位的初始生命值。注意,这里通过百分比表示,而不是具体数字。就象魔法值一样。
魔法值 -
调整该单位的初始魔法值。注意,这里通过百分比表示,而不是具体数字。就象生命值一样。
等级 - 调整英雄的初始等级。这将会影响单位的最大魔法和生命值。

目标获取距离 - 设置单位能够获取对象的距离。这将会影响单位攻击敌对单位时的效果。
使用默认属性 - 允许英雄拥有不同的力量、敏捷和智力值。

魔法技能 -
这个选项决定单位所具有的魔法能力。而且可以设定拥有技能所需要的条件。并且可以设定英雄升级时能够选择的能力。注意:英雄的终极技能在英雄等级达到六级之前是无法修改的。例如:你如果想圣骑士拥有复生技能,就必须将他的等级提高到六级。

物品栏 - 设定英雄开始时拥有的物品。点击物品槽旁边的按钮,就可以进行选择。


掉落物品


在这里你可以设定单位被杀死时掉落的物品。可以通过在物品掉落部分分配实现。

新建设定 -
为了能够设定物品掉落。必须首先创建一个物品设定。这些设定之间能够相互的影响,分配掉落几率。你如果想能够掉落多个物品,就必须设置多个物品掉落设定。

删除设定 - 删除一个已经完成的设定。
新建物品 - 选择一个新的物品加入到物品掉落设定中。
删除物品 -
删除一个已经加入物品掉落设定中的物品。
编辑物品 - 将已经设定好的物品和其他物品进行交换。




随机分组

随机分组将会在一个特定的区域内随机设定一组野外生物,这些生物能够固定的选择某个等级物品掉落,并且能够保持一个稳定的能力。野外生物的具体情况在地图被读入的时候决定。


如果想设定随机分组,首先在工具--高级菜单中选定随机分组。然后选择添加分组来设定所创建的第一组怪物。最多能够设定十组。然后再设定哪种怪物能够被选中,和出现的几率。


然后选定随机分组出现的位置。并且可以通过随机单位属性对话框进行属性设置。


在随机分组的随机单位中,你可以设定每个单位的属性和可能出现的位置。



装饰物面板

要放置装饰物,可以使用"D"键,或者在面板菜单中选择装饰物。装饰物是所有不能够在游戏中控制的对象的统称。但是树木并不属于这个类别,因为树木是一种能够消耗的资源。


装饰物通过所属的场景不同被分成若干类别。虽然每个场景拥有的装饰物的样子并无差别,但是并不是每个场景都包含所有的装饰物。


接下来介绍装饰物面板上的一些按钮:


随机旋转 - 设定装饰物随机朝向某个方向。
随机放大 - 对称 -
当这个按钮被按下时,所放置的装饰物将会被随机放大一定的比例。但是仍然保持对称:所有变量(X,Y和Z轴)都增加相同的程度。
随机放大 - Z轴 -
当这个按钮被按下时,所放置的装饰物将会被在Z轴上随机放大一定的比例。
随机放大 - XY轴 -
当这个按钮被按下时,所放置的装饰物将会被在XY轴上随机放大一定的比例。
防止随机属性的装饰物 -
绝大多数装饰物都不只具有一个样子。这个选项被选定的时候,编辑器将会随机设定一个样子。

菜单中的最后两项是能够使用的装饰物和画笔菜单。



装饰物属性

当装饰物被放置好之后,你可以象对单位一样编辑它。这个操作可以通过双击它,或者在编辑菜单中选择编辑属性进行。之后你可以进行以下选项的设定,但是这些选项不是对于所有的装饰物的。


形状变化 - 一些装饰物拥有不止一个外观,你可以选择一个新的外观。
旋转 - 一些装饰物能够面向多个方向,可以在这里设定。
缩放
(%) - 你可以修改一些装饰物在X,Y,Z轴上的缩放程度。
生命值 (%) - 你可以设定装饰物的起始生命值。甚至可以设置成零。
物品掉落 -
你可以设置装饰物被摧毁之后能够小略的物品。就象普通单位一样。



镜头面板

通过键盘上的"M"键或者在面板菜单中选择镜头来选择镜头菜单。这个面板将依附触发器而存在。如果你在触发器中没有设置有关观看镜头的动作,那么用户甚至将无法知道镜头的存在。


在镜头面板上有以下的选项:

创建 - 创建一个新镜头,并设置镜头观看你所有的地图。


下面的选项在你没有创建镜头之前是不能使用的。

观看地图 - 通过当前的镜头查看地图。
设置观看 -
改变所选查看地图的镜头。

下面就是镜头的列表,你可以通过双击所选镜头,更改镜头的名字。还可以在右键弹出菜单中删除和创建镜头。



镜头属性

在放置一个镜头之后,你可以修改放置的位置,名称和焦点。下面是你能够通过镜头属性对话框改变的镜头属性:


镜头名称 - 这个文本框允许你修改所选镜头的名称。
目标X坐标 - 将镜头移至X坐标位置。
目标Y坐标 -
将镜头移至Y坐标位置。
Z轴移动 - 将镜头在Z轴上下移动。
旋转 - 将镜头关于Z轴旋转。
攻击角度 - 将镜头关于地面旋转。

距离 - 调整镜头和目标之间的距离。
观看区域 - 调整镜头能够看到的区域。
远剪辑 - 增加从地平线上看到的距离。

在主窗口中预览 - 这项选定将会实施你对当前镜头的修改。


区域面板

区域和镜头一样,需要触发器的引用才能实现价值,否则将会在游戏中没有任何效果。它可以在触发器被引用或者被影响。这些内容我们将在触发器部分详细讨论。区域内可以实现对天气,传送门和环境声音的控制。


区域面板比较简单。在需要加入区域的时候点击添加按钮。然后在地图上画出一个区域即可。画出的区域将以白色显示。当你双击划出的区域的时候,你可以设定它的属性,查看它,或者删除。



区域属性

在地图上或者在区域面板上双击某个区域就会出现区域属性对话框。这个对话框包括以下选项:


第一个文本框允许你修改区域的名称。修改文本框中的内容就修改了区域的名称。文本框下方的Region XXX是原有的名称。


名字区域下面的四个数字区域代表区域的大小。你可以通过这四个数字修改区域的大小。


选择颜色选项,允许用户修改区域在地图上的识别颜色。这个选定能够使几个相邻的区域更加容易区分。


天气效果选项允许用户在区域内添加天气效果。这是唯一能够在对战地图上添加天气效果的方法。如果使用触发器,地图将会变成非对战地图。


环境音效选项允许用户在区域内加入环境音效。当然,这个声音首先必须在地图编辑器中有效。注意,如果你在区域内添加了天气效果。则就不需要添加环境音效。天气效果中包含了相关的环境音效。



传送门


传送门是一种特殊的和区域配合的友好中立单位。你可以在地图上放置一个传送门,并且在单位属性中指定这个传送门将单位传送到的区域。如果你不在地图上放置传送门,将无法实现单位的传送。

地图创建与设置

创建一张新地图
你可以在文件菜单中选择"新建"选项创建一张新地图。你将会得到以下几个可选项目:
宽度 -
决定你的地图x轴方向的长度。此数字可以是从16到256的任意整数。
高度 - 决定你的地图y轴方向的长度。此数字可以是从16到256的任意整数。

可玩区域 - 你的地图实际可玩的区域。这些数值不可以直接调整;它们是由宽度和高度决定的,负区域保留边界。
尺寸描述 -
你的地图相关尺寸。可以是:微小,细小,中等,巨大,庞大和壮丽。
地形设置 - 这一栏允许你修改当你创建地图时的初始地形设置。
初始地形 -
此栏告诉你开始时什么样的地形将覆盖你的地图表面。默认的地形可以通过在"地形设置"中点击任意一种地形而加以改变。
初始悬崖层 -
设置你的地图表面的开始层。比如,你的地图以第14悬崖层开始(最高层),地表就无法再做提高。如果你以第0悬崖层开始地形就无法再降低。
初始水位 -
设置你的地图的初始水位。如果选中了某一级别的水位,你的地图就会被该水位的水域所覆盖。使用此标题下的三个按钮可设置默认水位为无,浅水或深水。
随机高度区域
- 此项将使地面自动抬升和下降,在地图新建时将会创造一个不平坦的表面。

对战与非对战

魔兽争霸中的混战地图,就是在游戏开始时玩家只拥有放置在起始点的单位,而且没有自定义的触发器,声音或单位。你的地图的科技树资料和升级资料也不被修改;如果有,该地图就是非混战地图。但是,你却可以放置装饰物和中立单位。从右下方的状态条上,你可以立即得知,你的地图是否混战地图。


可通行与不可通行
当创建战役和混战地图时,通行性和建造性是你必须理解的两种概念。

通行性是指那些单位可以通过的区域。比如,兽族英雄牛头人酋长的体形要比一个兽族苦工大的多,因此需要比一个苦工更多的空间才能通过或越过物体和地形。苦工能够穿过一些牛头人酋长无法通过的地方。你可以从查看菜单或者按p键看见通行性。

建造性是指单位和建筑可以放置的地方。在某些地形中,建筑是不可放置的,比如岩石地形。但是,其他单位却可以放置下去。比如一个拔根的暗夜精灵建筑可以被放置在岩石地形上,但是扎根的暗夜精灵建筑却不可。


调整地图属性
你的地图道具可以通过选择情节菜单下的以下四个选项:地图描述,地图尺寸和镜头范围,读取场景以及序言场景来显示和修改。

地图描述
名称 - 在此给你的地图起名。
建议玩家数 - 列出游戏类型以及地图最佳运行配置。(例如: 2v2, 2v2v2v2).

描述 - 在此你可以告诉玩家由你的地图可以玩到些什么。
作者 - 给出你的名字。
资料片需求 -
列出所有你在地图中所运用的所有仅在资料片中可用的内容。
重设地图描述为默认 - 该选项重设所有四个文本框为各自的默认值。
地图选项

在预览窗口中隐藏小地图 - 这将关闭在预览窗口中观看已打开的地图。当此项选中时,在聊天或者当它被选中并创建为多人/单人游戏时,其小地图将不会显示。

被遮盖的地区部分可见 - 玩家尚未到达过的区域将会对玩家呈半透明状态,而不是完全的不透明(黑色遮盖),虽然要比战争迷雾要灰暗的多。该选项涉及到暗影遮蔽。

显示悬崖的水波- 当水面碰到尖锐突起的陆地,将会显示水波。
在海岸上显示水波 - 当水面碰到平滑的倾斜陆地,将会显示水波。

使用物品分类系统 - 激活物品分类系统的使用。 这将使物品按以下逻辑分类:永久的,可充的,强化的,人造物,可购买的,战役的和混杂的。

使用物品分类系统 - 激活物品分类系统的使用。 这将使物品按以下逻辑分类:永久的,可充的,强化的,人造物,可购买的,战役的和混杂的。 .

使用地形迷雾 - 激活迷雾资料。不同的迷雾类型,形状,密度和色彩都可设置。
使用全球气候 - 激活整张地图的天气状态。
自定义声音环境
- 激活游戏中常规全3D声音的修改。
自定义光线 - 激活整张地图光线条件。
重设到默认选项 - 该选项重设所有四项文本框到各自的默认状态。

地图尺寸和镜头范围

该部分允许你修改地图的尺寸和镜头范围。在对话框的中心你将看到一张小地图。小地图周围的箭头组可以从各自方向修改地图。在标题镜头和地图下,每个箭头旁的数字各指示你的地图可视区域尺寸,并以小方格指示你的地图的总尺寸。

两个复选框,修改地图范围和修改镜头范围,分别允许你修改你的地图的总尺寸以及你的地图可视区域尺寸。如果两个框都未选中,你就不能点击任一个箭头。如果其中一项选定,则只可修改那一项。

在复选框右方的两项统计数字,可播放和全部,各以中等方格给出你的地图的可玩区域和实际尺寸。
读取场景
使用默认场景 -
使用默认的读取场景。
使用战役场景 - 使用所选的战役场景作为读取场景。
使用输入的文件 -
允许输入的文件被用做读取场景。选择使用战役场景或此选项的话将会激活以下内容:
读取场景标题 - 在你的读取场景上所显示的标题。
读取场景子标题
- 在你的读取场景上所显示的子标题。
读取场景文本 - 可为你的地图增加更多描述文本的区域。
重设读取场景到默认设置 -
设置读取场景到默认状态。
序言场景
使用默认场景 - 使用默认的"混战"序言场景。
使用战役场景 -
允许你使用所选的战役场景作为序言场景。选中该选项将会激活以下内容:序言场景标题,序言场景子标题,和序言场景文本。
序言场景标题 -
在你的序言场景上所显示的标题。
序言场景小标题 - 在你的序言场景上所显示的子标题。
序言场景文本 - 可为你的地图增加更多描述文本的区域。

重设序言场景到默认状态 - 重设序言场景到默认状态。
玩家属性
玩家姓名 - 在此可设置玩家姓名。
颜色 -
此项是每个玩家的颜色;这些颜色不可修改也不可重定义。
种族 - 选择每个玩家的种族。
控制者 -
该选项允许你选择一方是由电脑来操纵,玩家操纵,中立还是可营救的。 一个可营救的角色将会效忠于第一个与他接触的玩家。
固定开始点 -
该选项使编辑器给一个玩家以固定的开始点。
重设玩家到默认状态 - 重设玩家到其默认设置。

结盟优先权属性

此部分允许你修改游戏所设置的谁在哪个起始点的优先权。它允许你将团队放在一起。比如,如果你的地图被设计为2v2作战,那么你会希望每一组的两名玩家的起始点彼此接近。为了确保这一点,将同一团队的玩家放置在各自的高优先权区域,并将所有其他玩家移动到无优先权区域。低优先权的一类将在高优先权之后取得,而在无优先权之前取得。要修改这些属性,请先选中修改结盟优先权的选框。


组队属性

一支部队与一个团队类似。你可以放置几个玩家在同一组部队中,使他们一开始就是结盟的,并且使用结盟胜利,甚至互相共享视野。要修改你的玩家部队,请先选中使用自定义部队选框。你可以对同一部队的玩家指定如下:结盟,结盟胜利,共享视野,共享单位控制,共享高级单位控制。

使用固定玩家设置有以下效果。它将取消一个玩家在玩家道具中修改种族和颜色的能力。并取消玩家修改任何结盟,视野,单位共享设置的能力。同时还能担保用户在使用测试地图时,被指定到第一个玩家栏。


科技树属性

此部分允许你修改哪些玩家可以建造哪些单位。如果在标题下某个单位名称旁的选框可用,则该单位可以建造。如果该选框空白,则此单位不能建造或训练。要修改默认科技树设置,你必须首选选中使用自定义科技树选框。(请注意,修改此选框将会使你的地图变成非混战地图。)


技能属性

此部分允许你防止玩家使用某种特定的技能。比如,你可以允许一个玩家建造女巫,但是取消缓慢,隐形或变羊魔法的使用。要修改这些属性,你必须选中使用自定义技能选框。(请注意,修改此选框将会使你的地图变成非混战地图。)


升级属性

此部分允许你决定一个玩家在游戏开始时的升级状态。如果一项升级被列为对某玩家已升级,则该玩家在游戏开始时就已经升级了此项技术。如果一种升级别列为不可用,则无法被升级。如果为可用,则可以升级。要修改这些属性,你必须先选中使用自定义升级选框。(请注意,修改此选框将会使你的地图变成非混战地图。)触发器编辑器


触发器编辑器是地图编辑器中最高级和最强大的部分。在触发器控制器中,用户可以控制游戏中所有的效果。这是一种非常容易理解的简单语言。但是却足够强大到足够高级用户使用。它可以通过使用键盘上的"F4"或者在模块菜单中选择触发器编辑器打开。


一个触发器包括三个部分:事件、条件和动作。一个触发器的动作在触发了事件,并满足了条件之后执行。

事件


事件是开始处理触发器的导火线。当一个触发器的事件发生的时候,如果满足条件,则就会产生动作。在一张地图中默认的触发器是"地图载入"。这个触发器的默认条件是"地图载入"也就是这个事件将发生在地图载入完毕的时候。如果没有条件需要满足,则就会产生相应的动作。如果你想加入条件,就可以加入条件"时间
--时间经过",然后设置10秒。则动作就会发生在"地图读入"的10秒之后。


条件


条件是触发器执行动作必须满足的条件。只有在这个条件为真的时候才能产生动作。但是如果这样设置条件"False Equal to
False"将不产生任何的效果,因为它永远是成立的。默认的触发器"地图载入"是没有条件的。让我们来添加一个。按下Ctrl+D,选择"游戏速度比较
",则会弹出一个有蓝色文本的对话框。"(Current game speed) Equal to
Normal."如果保持这个条件,则"地图载入"触发器将会正常工作。但是如果你将条件中的"Normal"改为"Fastest"。则这个触发器将无法在地图编辑器中触发,因为编辑器将地图的速度设定为普通,条件变成了"Normal
speed equal to Fastest speed",这个条件不为真。


一些触发器中,事件发生后条件不一定能够满足。这样的触发器可以设定为多个事件,只有某个事件发生的时候才能够触发。


触发器真正需要的是动作(事实上,这么说并不准确。也就是说没有动作,这个触发器将对游戏没有任何的影响)。也就是说一个触发器可以在没有事件和条件的情况下运行。这可以通过设定动作"Trigger
- Run (Ignoring Conditions)"来实现。触发器将在没有条件和事件的情况下进行。


动作


动作是触发器的结果。这可以是让移动镜头、播放电影或者是让一个单位攻击另一个。动作允许被设计成完全控制游戏中的一切。



创建触发器
首先点击"F4"或者选择模块菜单中的触发器编辑器项,打开触发器编辑器。


在创建触发器之前,必须选择触发器放置的类别。通过在菜单中选择创建类别来创建一个类别。然后你就可以在左边的列表中看到你刚刚创建的类别。类别拥有图标,你可以在创建的时候选择类别的名字,或者之后点击"F2"进行更改。


选择你刚刚创建的类别,然后在新的菜单中选择触发器,就可以创建一个触发器。选择你刚刚创建的触发器,你就会发现触发器的右边有两个复选框:



允许 - 如果这个复选框没有被选定,则这个触发器将不产生作用。
原始打开 -
如果这个复选框没有被选定,则这个触发器开始是被关闭的。只有通过动作"Trigger - Turn On"才能够打开。


在触发器的右边还有几个选项。

注解 -
这个文本区域可以填写有关处发起的注释信息。这些信息将不会影响触发器的功能,只是用来提醒您触发器的功能等信息的。
触发器函数 -
这里将显示你的触发器的内容。你可以看到触发器的事件、条件和动作。你也可以在这里添加触发器的事件、条件和动作。


你可以在触发器之间,甚至是地图之间对触发器的事件、条件和动作进行复制和粘贴。你可以通过双击已经设置的事件、条件和动作,对他们进行编辑。


还有一些关于触发器的常见内容是变量、函数和预先装置。



变量

你可以通过按下Ctrl+B或者在触发器编辑器的菜单中选择变量打开变量部分。这里的变量和BASIC或者C语言中的变量有些类似。变量是编辑者用来存放数据的一些空间。但是这里的变量只能用来存放一种数据。你不能够将整数放入这种变量中。


让一个触发器引用你预先放置在地图上的单位。也就是你想让某个单位执行动作。首先开打你想执行的动作。点击动作文本中能够被改变的部分。也就是红色或者蓝色的带下化线的文本。然后点击选择单位按钮,选择你放置在地图上的单位。你所选单位名字将会显示在变量列表中。


尝试一下这样:打开一张空白地图,放置一个兽族的苦工。然后打开触发器编辑器。使用Ctrl+G创建一个新的类别,再使用Ctrl+T创建一个新的触发器和使用Ctrl+R新的动作。然后点击"U"键选定动作"Unit
- Kill"。则触发器的语法文本将显示"Unit - Kill (Triggering unit)"。点击蓝色下画线文本"(Triggering
Unit)"点击按钮选择一个单位(在编辑变量按钮的左边)。选择苦工。恭喜你!你已经为地图上的苦工设置了一个触发器。所有预先放置在地图上的单位都有一个名字。


如果你对变量还有疑问,我们推荐你阅读相关的计算机书籍(C++版)。



函数

触发器编辑器包含有很多的函数,允许用户灵活进行更加灵活的控制。函数通常和变量一起使用。一个常用函数的例子是 "Last Created
Unit"。这个函数允许你访问通过"Unit - Create"最后创建的单位。它是两个能够引用最后创建单位的函数之一(另一个是:"Last Created
Unit
Group")。这些函数可以用来代替放在单位变量中或者用来代替已经放置在地图上的单位。注意,虽然这些函数返回值,但是你不能够让函数等于变量。但是可以让变量等于函数。


例如:你通过一个事件检测到一个英雄升级了。"Event Response - Leveling
Hero"函数将会引用到那个英雄。你不能让这个函数等于其他的英雄。如果你想让某个英雄升级。可以使用这个方法:使用其他的方法检测这个英雄(例如:事?quot;Unit
- Player-Owned Unit Event" 或者条件"Unit-Type Comparison"),然后对这个英雄设置动作,诸如:"Hero -
Set Level."


预先设置


预先设置是编辑器内建的一种数据。你不需要知道,除了使用它门。而且无法改变它们。例如:"Player 1 (Red)."



数值
还有一种你经常能够修改的区域是数值区域。这些区域允许你直接输入信息。例如这些区域会出现在动作"Game - Text
Message
(Auto-Timed)"中。如果你点击蓝色的下画线文本。你就可以打开一个字符窗口。窗口的最后一个选项是数值。如果你想输入一个简单的信息,直接输入即可。无需再新建一个变量或者函数。


声音编辑器


声音编辑器允许用户输入和输出声音文件(.wav)和音乐文件(.mp3)。并且可以通过触发器编辑器中的触发器进行播放。使用"F5"键或者模块菜单中的声音编辑器选项,打开声音编辑器。


你想在玩《魔兽争霸III》的时候听Beethoven's Ninth
Symphony?好的,你可以。但是要注意Battle.net不允许传送超过4M的地图文件。但是在地图中导入音乐很容易使地图文件超过这个大小,从而无法在Battle.net上传输。因为导入的音乐是打包在地图文件中的。(使用内部音乐和声音将不增加地图文件的大小)。


声音和音乐被分为两部分。左边的部分(就像地形编辑器画笔列表)列出了全部的内部声音。在触发器中使用内部声音只需要简单的选择文件并选择使用内部声音或者内部音乐就可以了。则这个声音或者音乐就会出现在右边部分。
右边的部分列出你所导入的声音或者正在使用的内部声音。


你可以通过双击文件或者在工具条上点击播放声音按钮播放内部声音列表上的声音或者音乐。并可以通过点击工具条上的停止播放所有声音按钮停止播放。


如果想编辑声音或者音乐的属性,可以在右侧的列表上双击该声音或者右键点击他,并选择声音属性。声音属性包括以下选项和信息。



文件 - 声音或者音乐的文件名。
格式 -
声音的最大千赫,Mp3文件的比特率或者WAV文件的采样率。以及WAV文件的声道数和Mp3文件的压缩方法。
长度 - 声音或者音乐播放时间。

变量名 - 在触发器编辑器列表中显示的声音的名称。这个选项只对Mp3文件有效。
选项- 循环 - 声音文件将重复播放,直到被命令停止。

3D音效 - 声音文件播放的时候具有3D效果。
超出范围则停止 - 在玩家离开有效范围的时候播放停止。
音量- 增加声音播放的音量。

淡入率 - 声音淡入的速度。数值越高,淡入速度越快。默认是直接。
淡出率 - 声音淡出的速度。数值越高,淡出速度越快。默认是直接。

播放速度 - 增加数值则会增加声音播放的速度。
效果 - 声音上还可以添加一些特殊的效果,这些效果只能对于特定的声卡有效。
最小距离 -
声音能够被听到的最小距离。
最大距离 - 声音能够被听到的最大距离。
淡出距离 - 声音开始淡出的距离。



使用这些声音必须通过触发器编辑器,当你导入声音或者音乐文件到右侧列表,或者选择内部声音或者音乐之后。进入触发器编辑器,选择"播放声音"或者"播放音乐"。

战役编辑器


战役编辑器允许用户自定义和管理通用战役选项。包括读入画面,屏幕界面,自定义对象和导入文件。



通用

名称 - 为你的战役命名。
推荐玩家数量 - 列出游戏类型和如何才能较好的使用。
作者 -
地图的作者信息。
描述 - 在这里你可以告诉玩家战役的内容。
使用不同难度 -
当这个选项可用时,你的战役可以通过触发器编辑器中设定的"游戏难度比较"选择不同的难度。
地图文件 - 显示战役中所包含的地图文件。



读入画面

用户可以设定战役地图之间的画面。可以设定背景画面和环境音效。并可以设定特殊的地图描述。



ID - 触发器编辑器中的"显示/隐藏自定义战役按钮"需要引用的数字。
可见度- 决定战役第一次访问时能否看到按钮。

读入的文件- 按钮引用的地图名称。
章节- 在这里可以命名章节的标题。
副标题- 这里可以命名章节的副标题。
背景屏幕-
选择读入战役时的背景屏幕。
环境音效- 选择读入战役时的环境音效。


自定义数据


战役中的每张地图都会集中访问对象编辑。这里的所有单位、物品、装饰物、能力和升级都可以在战役中随意使用。关于这部分内容请参看物体编辑器文档



Imported Files


战役中的每个地图都可以访问输入管理器中的输入文件。这里的每个文件在战役中也可以随意使用。关于这部分的详细内容请参看输入管理器文档。

物体编辑器



对象编辑器允许自定义单位、物品、装饰物、技能和升级。这些对象可以被放置到地图上,或者导出并被用于战役编辑器或者AI编辑器。每个对象都能够修改11项不同的设定。



单位

技能 - 修改单位在游戏中所具有的技能,技能可以是技能面板上的任何技能。
外观 -
修改单位的视觉外观,比如包括:模型、颜色、大小和界面图标。
战斗 -
修改单位如何战斗。比如包括:它的攻击看起来像什么,什么时候可以进行攻击,攻击的伤害是多少,它的攻击听起来像什么,攻击的射程是多少,等等。
编辑器 -
修改编辑器如何处理这个单位。比如:在编辑器的菜单中这个单位如何显示,或者当这个单位被杀死的时候掉落什么物品等等。
移动 -
修改单位如何移动。例如?单位是如何在队伍中行动的,单位的移动速度如何,转向速度如何,能否飞行等等。
道路 -
修改单位的道路属性。例如:单位是如何计算目标地点的移动路线的。
声音 - 修改单位的声音。比如:单位的移动、死亡和选择的声音。
状态 -
修改单位的状态。比如:单位的的生产花费,所占用的人口、生产时间、单位的分类(是否是城镇),单位的维修花费,单位的生命值和魔法值。
科技树 -
修改单位在科技。包括单位拥有的升级选项和生产这种单位所需要的升级。
文本 - 修改单位相关的文本信息。包括单位的名称,描述和介绍信息。



物品

能力 - 修改物品所具有的能力。这种能力可以是技能面板上的任何一种能力。
外观 -
修改物品的视觉外观。比如:物品的颜色,所使用的模型,当物品掉落在地面上的时候所使用的图标。
战斗 - 修改物品在被攻击时的反映。
状态 -
修改物品的状态。比如:物品的等级,是否能够被扔下或者卖掉,商店中存货的数量,多长时间物品能够在商店中出现。
文本 -
修改物品相关文本信息。比如:物品的名字,描述和介绍。


能够被破坏的

外观 -
修改能够被破坏的单位视觉外观。包括:模型、颜色、大小和射角。
战斗 - 修改破坏的单位在受到攻击时的反映。
编辑器 -
修改修改破坏的单位在编辑器中的处理方式。比如:在编辑器的菜单中如何显示和破坏能够被放置的位置。
道路 -
修改修改破坏的单位的道路情况。比如:其它单位能否通过它。
声音 - 修改修改破坏的单位的声音。在这里可以决定它被摧毁时的声音。
状态 -
修改修改破坏的单位的状态。比如:生命值,建造时间,建造花费等等。
文本 - 修改修改破坏的单位的名称。


装饰物


外观 - 修改装饰物的视觉外观。包括:模型、颜色、大小和高度。
编辑器 -
修改装饰物在编辑器中的处理情况。比如:在编辑器的菜单中的位置和装饰物能够被放置的地方。
道路 - 修改装饰物的道路情况。比如:单位能否通过装饰物。

声音 - 修改装饰物的声音。在这里可以决定装饰物所具有的声音。
文本 - 修改装饰物的名称。


技能

外观
- 修改技能视觉外观。比如:技能所使用的图标,技能产生的效果以及技能效果使用的模型。
数据 -
这个修改区域只对于技能有效。在这里可以修改例如:驱散技能对于召唤单位的伤害,技能的治疗效果或者是技能所召唤出来的单位是什么。
声音 -
修改技能所产生的声音。包括最初的声音和持续播放的声音。
状态 - 修改技能的状态。比如:技能的有效范围,施法间隔,持续时间,魔法消耗和施法的目标类别。

科技树 - 修改技能所需的科技树。包括技能所需要的单位和升级选项。
文本 -
修改技能的文本属性。包括技能的名称,技能的描述和介绍,以及技能使用的快捷键。


升级

外观 -
修改升级选项的视觉外观。包括升级选项在面板中所使用的图标。
数据 - 这个修改区域只对升级有效。其中包括:类似于攻击升级效果,防御等级升级效果等等。

状态 - 修改生机状态。比如:升级所需的金矿和木材,升级能够进行的等级数,升级研究所需要的时间等等。
科技树 -
修改升级所需要的科技树。包括升级所需要的科技等级。
文本 - 修改升级相关的文本信息。比如:升级的名称,升级的描述和简介
战役编辑器



战役编辑器允许用户自定义和管理通用战役选项。包括读入画面,屏幕界面,自定义对象和导入文件。


通用


名称 - 为你的战役命名。
推荐玩家数量 - 列出游戏类型和如何才能较好的使用。
作者 - 地图的作者信息。
描述 -
在这里你可以告诉玩家战役的内容。
使用不同难度 - 当这个选项可用时,你的战役可以通过触发器编辑器中设定的"游戏难度比较"选择不同的难度。

地图文件 - 显示战役中所包含的地图文件。


读入画面


用户可以设定战役地图之间的画面。可以设定背景画面和环境音效。并可以设定特殊的地图描述。


ID -
触发器编辑器中的"显示/隐藏自定义战役按钮"需要引用的数字。
可见度- 决定战役第一次访问时能否看到按钮。
读入的文件- 按钮引用的地图名称。

章节- 在这里可以命名章节的标题。
副标题- 这里可以命名章节的副标题。
背景屏幕- 选择读入战役时的背景屏幕。
环境音效-
选择读入战役时的环境音效。


自定义数据


战役中的每张地图都会集中访问对象编辑。这里的所有单位、物品、装饰物、能力和升级都可以在战役中随意使用。关于这部分内容请参看物体编辑器文档



Imported Files


战役中的每个地图都可以访问输入管理器中的输入文件。这里的每个文件在战役中也可以随意使用。关于这部分的详细内容请参看输入管理器文档。

AI编辑器

在AI 编辑器中你可以创造人工智能来指挥部队的发展和进攻战略。


通用

名称 -
命名你的AI。
种族 - 选择你所要创建AI的种族。自定义种族选项允许综合使用自定义单位,技能和升级科技。记得要输入自定义数据。

选项


设置玩家名字 - 激活此项以设置游戏中玩家的名字为所输入的AI名字。
对战 -
为标准对战游戏使用混战AI。混战AI趋向于与同盟玩家共同进攻和防御。
目标英雄 - 激活此项后,AI将在战斗中以更高的优先权攻击英雄。
修理建筑
- 激活此项以使工人在需要的时候自动修理建筑。
英雄逃跑 - 激活此项后,英雄在受重伤或无法攻击时将会试图逃离战场。
单位逃跑 -
激活此项后,非英雄单位在受重伤或无法攻击时将会试图逃离战场。
组队逃跑 - 激活此项后,攻击组在失去优势时将会试图撤离战场。
决不仁慈 -
激活此项后,AI会寻找敌人显得脆弱或劣势的机会发动进攻。这种进攻符合敌人-主攻进攻优先权。
受伤忽略 -
激活此项后,在集结进攻力量的时候,忽略生命值低于50%的单位
去除受伤者 -激活此项后,会周期性的把受伤的单位送回家(或者送到生命之泉)回复生命。

拾取物品 - 激活此项后,英雄会拾取他们碰到的任何有用的物品。
慢速采矿 -
激活此项后,一个工人一次只允许采集一个单位的金子或者木材,而不是通常的采集数量。这给AI的经济发展带来了巨大的障碍。
允许基地变换
-这个选项允许AI潜在的选择一个新的地点来作为采矿和部队撤退的基地。
聪明的炮火 -
激活此项后,炮火单位会在可能的情况下冲上前用攻城模式攻击敌人的基地。

自定义数据

输入 -
输入由对象编辑器输出的包含你的AI的自定义数据。
输出 - 输出自定义数据以检测对象编辑器中他人的自定义AI数据。
清除 -
从你的AI中清除所有自定义数据。

环境 -
环境可以在此配置,其形式与开关编辑器相似,但专用且仅用于AI编辑器。在此创建的环境可以通过AI编辑器使用。

在创建AI环境时一种有帮助的概念是AI首领,分为两种类型,进攻和防御。首领是无形的单位,扮演领导AI的角色。进攻AI首领停留在基本建筑处(城镇大厅等),等待一轮攻击的组建。一旦组建完毕,攻击AI首领领导攻击组进攻当前优先攻击目标,然后返回基地。防御首领停留在基地和首个金矿之间,除非基地遭到进攻。防御首领然后会领导防御力量进攻入侵者。



英雄

英雄使用 - 选择你想让AI训练的英雄。可用英雄基于你在一般标签中所选择的种族。
训练顺序 -
修改AI将运作的训练顺序。训练顺序与与英雄使用一项中所选的英雄相符。
技能选择 - 修改AI英雄将要学习技能的顺序。




建筑

基础建筑 - 选择哪个单位会被用来建造AI的基本建筑。在此可用的选项与在一般标签中所选的种族相符。

采矿建筑 - 选择哪个单位会被用来建造AI的采矿建筑。着通常只被不死族使用,但其他有废弃金矿技能的单位也可在此选择。
建筑优先 -
AI的建造,研究和升级顺序在此指定。当一个单位死亡,它会被AI所代替,除非AI资源不足或是某种状况阻止了它。在此建造优先权共有五项:



建造 - 将会建造,研究和升级什么。
全部 -
记录同类型建筑的优先权数。没有括号的数字表示所有AI的总和。在括号内的数字只表示指定城镇内的总和。
食物 -
记录食物数量以及食物上限。当一种优先使食物使用超过了食物上限,该优先权为红色。
城镇 - 指定建筑顺序执行的处所。
环境 -
如果没有遇到在此指定的环境,AI将会跳过该建造优先权而进行下一项。环境可以在一般标签下创建,或者自行创建为该优先权专用。

采钱工人 -
选择哪个单位被AI用做采矿单位。该此可用的选项符合一般标签中所选择的种族。
伐木工人 -
选择哪个单位被AI用做伐木单位。该此可用的选项符合一般标签中所选择的种族。
采集优先权 - AI的采集顺序在此指定。采集优先权有以下四项:


采集 - 你想让工人收集的资源。
工人 - 共享同一优先权的工人数量。
城镇 - 工人在哪采集。
环境 -
如果没有遇到在此指定的环境,AI将会跳过该采集优先权而进行下一项。环境可以在一般标签下创建,或者自行创建为该优先权专用。


攻击



攻击组 - AI的攻击组在此创建与列出。
当前组 - 攻击组在此得到定义。每个攻击组有3项条目。

单位类型 -
单位的类型。可用单位取决于一般标签中所选择的种族。
数量 - 匹配特定所选单位类型的单位数量。
环境 -
如果没有遇到在此指定的环境,当前组将不会包含此条目。环境可以在一般标签下创建,或者自行创建为该优先权专用。

攻击轮次 -
你的攻击轮次顺序在此指定。每个攻击组有3项条目。

# - 轮次数,这可以由整数对比环境中参考。
攻击组 - 被分配到该轮次的攻击组名称。

延迟 - 下一攻击轮次开始前间隔的时间。

最小力量 - 一次进攻轮次所必要的最少单位数。
初始化延迟 -
第一轮进攻所需要的时间。
重复轮次 - 从上一轮结束后,还会重复多少轮。
目标优先权 - 各轮进攻的目标。这里有两个项目。



目标 - 选择AI的进攻目标。列表中越高的目标就有越早的优先权。
环境 -
如果没有遇到在此指定的环境,AI将会跳过该目标而进行下一项。环境可以在一般标签下创建,或者自行创建为该优先权专用。


测试设置


此标签是专用来为AI测试混战地图的。对于自定义地图,输入一个输出的AI文件到你的输入管理器并使用测试地图命令。

游戏速度 -
修改测试AI时所使用的游戏速度。
游戏选项 - 取消战争迷雾,允许显示全图。取消胜利/失败条件以避免不必要的中断。
地图文件 -
设置所要测试AI的地图。
玩家 - 在此进行单个玩家设置。每个玩家都有以下选项: :

控制 - 选择玩家栏的控制者。
种族 -
选择控制者的游戏种族。
队伍 - 选择控制者所在组。
颜色 - 选择控制者的组颜色。
障碍 - 选择对控制者的障碍。
AI -
如果电脑被选为控制者,可在此选择AI。
AI难度 - 如果电脑被选为控制者,可选择AI难度。AI难度可参考你的AI环境。
AI脚本 -
如果电脑被选为控制者且AI选择了自定义,一个导入的AI将使用该玩家栏
文件导入管理器


就象使用对象管理器连接游戏中的对象一样。你可以使用文件导入管理器管理导入到游戏中的文件。

文件导入管理器中会记录导入文件的名称、类型、大小和路径。当地图存盘的时候,文件导入管理器中的文件会被打包在地图文件中。

好多希望能给新手朋友点帮助



[size=4><FONT][color=blue>新手制图的一些常见问题解答</FONT]

[size=2><FONT]☆☆☆怎么让英雄可以超过10级啊?★★★★
高级-游戏平衡常数-英雄最大等级



☆☆☆怎么修改游戏读取时显示的小地图图片即预览图啊?★★★★
做好一张128×128 24/32bit(不能是16
bit的)tga图,导入到地图中并更名为右上角 预览图 路径为war3mapPreview.tga



☆☆☆怎么修改游戏地形的图片(就是地图左下角的图片)?★★★★
导入war3mapMap.blp
路径也是war3mapMap.blp
大小为256X256

☆☆☆怎么做loading图呀?★★★★
有两种方法
1
做好一张1024×768的tga格式的图
将其分割为左上512×512 右上512×512 左下 512×256 右下512×256

下载图片转换分割器V1.2
并分别保存为LoadingScreenTL.tga左上 LoadingScreenTR.tga右上
LoadingScreenBL.tga左下 LoadingScreenBR.tga右下
下载下面的loadingscreen.mdx
将这5个
全部导入到地图中 并将四张tga图的 路径 去掉前面的war3mapImported\
接着
菜单-情节-载入画面--使用导入文件--选择loadingscreen.mdx





2
下载War3ModelEditor模型查看工具
运行-Extras-Loading screen creater
做好一张512×512的图片

载入你的图片-导出Generate -保存
将保存得到的loadingscreen.mdx转为mdl
用TXT修改其中的路径为
XXXX.blp(保存的文件名)
将这两个导入到地图中 loadingscreen.mdx 路径不变 XXX.blp 路径为XXX.blp


此方法优点文件小 缺点画面不是很清晰 不过效果还不错 推荐使用这个




☆☆☆怎样导入模型?★★★★

导入模型 最关键的是贴图路径 即BLP文件的路径(别跟我说不知道什么是路径) 而mdx的路径则无关紧要 可改可不改

怎么确定BLP的真实路径呢:--一般下载下来的模型包 解压出来 都会包含几个文件 两个mdx(路径不用改)
其它的BLP视其的目录而改 如
BLP与mdx在同一目录下 那么BLP的路径即为文件名(即去掉前面的war3mapImported\) 如 BLP在子目录下(mdx所在目录为主目录)例:
解压出来的是 model.mdx Textures\model.blp 那model.blp的路径即为Textures\model.blp


☆☆☆为什么我导入图标是绿色的?★★★★

正常图片名为BTN加你的图片名.BLP.路径为ReplaceableTextures\CommandButtons\BTN加你的图片名.BLP

阴影图片为DISBTN加你的图片名.BLP.路径为ReplaceableTextures\CommandButtonsDisabled\加你的图片名.BLP


☆☆☆怎样在同一幅图中设置不同的地型?比如有草地也有岩浆★★★★
高级-修改地形设置-勾选自定义地形设置或可用windows按钮突破专家

下载此工具 解除地形限制工具


☆☆☆怎样做小精灵进入能量圈选英雄?★★★★
分析下过程
小精灵进入能量圈--小精灵死亡(可能还有英雄死亡)--镜头转移--创建英雄
在能量圈上划一个大小相近的区域编写触发
事件:单位进入区域

条件:进入的单位是xx(如典型的绵羊)
动作:单位-删除/杀死-触发单位(单选英雄)
单位-创建一个 英雄(该能量圈对应的英雄)为了
(触发单位)的所有者 在 某某区域(英雄出生区域) 并 面向默认的角度(即270度)
英雄-创建物品 XX(如重生十字章)给 最后创建的单位

触发-删除当前触发(单选英雄)


☆☆☆怎么做一个刷怪的触发?★★★★
刷怪的原理 从一个地方创建一些怪物
让他们攻击-移动到老家
首先,在地图上要出怪的地方划一块区域(几个出怪点就划几个区域)编写触发
先创建一个怪物数组(单位型数组)
并对该数组赋值即
设置变量(可在地图初始化中编写该赋值语句) 如set Enemy(0)=农民 set Enemy(1)=步兵 . . . set
Enemy(x)=... 其中X取决于你要怪物的波数
创建一个计时器变量和一个计时器窗口变量,及一个整数变量 LV(波数)
1

事件:游戏开始X秒
动作:计时器-开启计时器;计时方式;一次性; 时间设置:XX(等待出怪时间)
计时器-为最后启用的计时器
创建计时器窗口
2
事件:计时器到期
动作:For 循环数A 1 到 X(怪物数)

|_单位-创建一个Enemy(LV)在。。。。。。。
set LV=LV+1(设置变量)
3
事件:单位进入X区域(出怪区域)

条件:触发单位的所有者=玩家X
动作:单位- 对触发单位发布 攻击-移动 命令到 。。。(目的地) 详细请见演示



☆☆☆如何在 物体编辑器里输入负数?★★★★
按住shift 双击设置即可或文件-参数设置-允许在物体编辑器里输入负数



☆☆☆怎样做多重箭?★★★★
使用人族坦克的弹幕技能 记得要改目标允许及科技树



☆☆☆怎么让杀怪获得金钱?★★★★
触发里 玩家-开启玩家参数-设置-给予奖励 打开 为了玩家X



☆☆☆如何设置初始金钱和木头?★★★★
玩家-设置属性-现有金钱/木头



☆☆☆怎样可以让一波怪被杀完才继续刷下一波?★★★★
可用玩家所用食物判断即 触发中 条件为:玩家X的 使用人口数 =0或
用单位组判断 原理相同


☆☆☆怎样让英雄像死了一样躺在地上??★★★★
触发 动画-播放单位动画 Death // 注
动画播放完 如果不重置的话 单位就会保持播放完动画完的状态 如像死了一样躺在地上
一般有 stand walk victory attack death
等 具体可放置单位在地图中 用左边的预览 查看动画名


☆☆☆我想做一个像风暴之锤一样的技能,但伤害是自己的力量的3倍?★★★★

原理 用一个无伤害的技能 用触发里 单位-伤害目标 来确定伤害值的多少
首先 将风暴之锤的 伤害数据 清0
触发编写

事件:单位-任意单位发动技能效果
条件:技能=风暴之锤 //即所要改的技能
动作:单位-命令 触发单位 对 目标单位 造成 力量×3
的伤害 //敏捷 智力 同 与属性有关的伤害基本上都是这个原理


☆☆☆物品叠加简化版★★★★
原理 即获得物品 判断
该物品与身上物品 同类 不同物 设置使用次数即可 //注使用次数即下标不同 即不同物
事件-任意单位获得物品
环境-((被操作的物品)的分类)
等于 可充的
动作-对于循环整数X从 1 到 6 做动作
-如果-(((操作物品的单位)的物品栏的(循环整数X)格的物品)的类型) 等于
((被操作物品)的类型)
-((操作物品的单位)的物品栏的(循环整数X)格的物品) 不等于 (被操作物品)

-物品-设置(操作物品的单位)的物品栏的(循环整数X)格的物品) 的使用次数为 ((((操作物品 的单位)的物品栏的(循环整数X)格的物品) 的使用次数) +
((被操作物品)的使用次数))
-物品-删除(被操作物品)
否则-无动作


☆☆☆为什么打不开图,老提示错误?★★★★

这有两种情况:
1 地图被加密了 一般加载到最后 会提示 数据错误
2 该地图是用不同的增强UI做的(由于该UI使用了新函数
而你不没有这些函数 而导致打不开) 一般提示 缺少RemoveLocation 函数之样



☆☆☆我下载了演示,请问如何用到我的地图里?★★★★
PS 如果你想用别人的技能 请征得作者同意!
下载的演示
直接复制到你的地图中 会因为缺少未知变量而无法运行 故
可开启WE自动创建变量的功能
菜单--文件--参数设置--勾选
当复制触发器数据时自动创建未知变量
复制触发到你的地图中
双击无效的语句 点确定即可



☆☆☆请问怎样把单体技能改为全体?★★★★
原理 单体改群体流程
单位施放技能---在触发单位位置创建几个辅助单位--命令辅助单位对敌人施放技能(与英雄相同的)
也即一个单体改群体 要用到两个技能 一个是英雄的
一个是辅助单位的
事件:任意单位-发动技能效果 条件:技能==XXXX(比如风暴之锤)
动作:单位组 选取 技能施放目标 256 范围内 的
所有单位 满足 选取的单位 的所有者 不是 触发单位的所有者的盟友
|_单位创建 1 个 辅助单位 在 触发单位的 位置 并面向 默认的角度
//单位-创建 单位 在点
|_隐藏最后创建的单位 //把辅助单位 隐藏起来 即所谓的障眼法 //单位-隐藏 。。
|_设置最后创建的单位的
生命周期为 2 秒 //让辅助单位施放技能后 消失 不然 嘿嘿 保准你卡死 原因自己想想 单位-设置生命 周期
|-单位-对 最后创建的单位 发布
人族风暴之锤 对 选取单位 //施放技能 都是用 单位-发布命令 对 。。。(目标 点 无目标 由 技能决定 如风暴之锤就要用 单位-发布命令 对 目标)



☆☆☆怎么设定玩家英雄的经验获得率呀?★★★★
触发里英雄-设置经验获得率更多内容可查看老狼的“具体经验值计算”



☆☆☆如何限制玩家英雄数呀?★★★★
如果是生产英雄的话 则可触发 玩家-限制英雄数量另单位编辑器里 科技树-需求-等级X
其中X对应第X个英雄所需科技

如果是通过 进圈等方式选的话 可通过食物来判定 是否激活选英雄触发



☆☆☆如何让普通单位像英雄一样有光晕效果?★★★★
修改单位光晕 一般有两种办法
第一种是用人族的球体技能

第二种是修改模型------不推荐
球体:
1
首先下载下面的Aura.zip文件--解压--将Arua.mdx导入到地图里(不懂导入的看六楼)
2 新建一个自定义的“球体”技能---显示-效果-目标
改为 导入的Arua.mdx--显示-效果-目标附加点1 改为origin-其它的无关项改0或删除3 对要修改的单位 添加该技能--现在测试下
你会发现光晕都是红的 并不会随玩家的颜色而改变接着4 进行必要的触发设置--使用 单位-改变队伍颜色(UI不同有可能翻译的不同)--改变单位的颜色为 玩家颜色

PS 这个方法麻烦的就是 单位复活要设一次颜色或也可直接写个触发
事件-单位进入 可用地图区域
动作-单位-改变 触发单位 的颜色为
触发单位的所有者的 颜色


Aura.zip (1.22 KB)
Aura.zip (1.22 KB)
下载次数: 147

2008-2-21 23:00


☆☆☆如何让英雄持有武器?★★★★
同样也只是一个球体技能而已技能编辑器

显示-效果-目标 改为 武器的模型
显示-效果-目标附加点 改为hand,left 或是 hand,right(逗号隔开表示两个字符串)



☆☆☆坐骑的方法?★★★★
一般坐骑都采用两种方法
1 找一个有坐骑的单位 替换 当然这仅局限于 采用农民身英雄的 图
像生存RPG类 方法:使用技能替换单位

2 另一种也是球体---------为什么又是球体呢 说明这个技能就是一个做效果的模板技能编辑器

显示-效果-目标 改为坐骑模型----看起来像是坐骑的 像马 飞龙呀
显示-效果-目标附加点 改为origin(即脚底) 当然这种方法做出来
你就会发现 英雄的脚还在走。。。

当然方法并不局限于此 所谓的坐骑也不过是低等的模拟而已另有种方法 就是 有坐骑 替换为 坐骑单位(马,龙等
龙语:为什么又是我!) 该单位附一球体技能
显示-效果-目标 为英雄单位(比较有局限性了)
显示-效果-目标附加点 为头顶
overhead这也只是一种方法 你也可自己发挥 像用触发控制单位的移动等
总而言之,言而总之 真正的坐骑是不可能实现的 其它的自己看着办



☆☆☆怎么弄 随机数 呀?★★★★
一般说的随机数都是 整数系列的设置一个整数变量设置 n = 随机整数(1 到 X)
从下拉列表 一直往下看 看到了没
数学-随机整数
英文版的就是 Math - Random Number



☆☆☆修改官方自带对战地图问题?★★★★
为什么有些是2本出现的 改完后就变成了3本才有了
这是由于游戏数据 对不上号

解决--菜单-情节-地图选项-游戏数据 改为 对战-最新 即可

为什么小酒馆的英雄变少了
还是由于游戏数据问题

但为什么修改了对战最新还是不行呀--自己添加出售的单位


☆☆☆常用的附加点有哪些呀?★★★★
附加点:
hand
手 foot 脚 real 后肢(四足生物) weapon 武器
left right 修饰手脚等附加点,添加在前面和后面都可以
head 头部
overhead 头顶 chest 胸部 origin 脚底
turret 炮塔头部 mount 坐骑头部 eattree吃树时树的附加点所在位置

rally 聚集点(设置聚集点在该单位身上时的聚集点附加位置)
sprite 只有血法和建筑物有该附加点
first second
third fourth fifth sixth 修饰sprite的后缀
博bó
 楼主| 发表于 2009-8-19 17:21:10
RPG地图制作教程
教你如何做自己的RPG-----制图教学
说到魔兽争霸3大家肯定不会陌生,那么各位在玩过特色各异的地图以后有没有想过自己动手做一张地图?摇头拒绝的家伙们听我把话说完,其实做一张地图并不是各位想象的那么困难。下面我将会简单介绍一下集合了几种常见功能的地图的制作方法,有兴趣的朋友不妨跟着做做。

这次要做的是一个3C中的人物选择功能,也就是当小精灵进入能量圆的时候选择对应的英雄,这是一个3C最普通的选人功能。那么动手了。

首先找到地图编辑器,编辑器位于魔兽目录下,名为WorldEditor.exe(世界编辑器),双击打开。第一次使用地图编辑器,系统会自动为我们创建一张64*64大小,环境为罗丹仑的夏天的新地图。如果想要手动创建新地图,可以通过点击菜单栏的文件
- 新地图/File - New Map来创建。如果想要关闭在打开编辑器的同时创建新地图的功能,可以同过选择文件 - 参数设置 - 常规 -
打开时创建新地图/File - Preferences - General - Create a new map on start_up,将前面的勾去掉来实现。

地图创建完毕以后看见的就是这个地图编辑器的组成了,按2下G关闭坐标格的显示。在制作上面提到的功能以前,让我们先做点准备工作。首先既然是选择英雄,那么英雄自然是必不可少的,按U打开单位编辑面板,在这里可以选择我们所希望的单位放置到地图上,我选择了恶魔猎人(Demon
Hunter),血巫师(Blood Mage)和巫妖王(Lich
King),当然各位如果看上其他英雄请随意,这并不会影响后面的制作。顺便说说在单位面板中切换种族的方法是在第三行左边的那个扩展菜单里面选择希望的种族,由于选择英雄的时候所看见的英雄是不被我们控制的,必须选择了以后才能控制,因此一般的做法是将英雄更改为中立单位,更改的方法是双击放置在地图上的英雄,选择常规
- 玩家 - 中立无敌意/General - Player - Neutral
Passive。注意各英雄之间不要间隔太远,否则让小精灵跑来跑去的很麻烦。放好英雄以后当然还要在英雄面前放个能量圆作为小精灵进入选择用,能量圆可以在单位面板的中立敌对分支中找到。最后再放上选英雄用的小精灵,由于多个玩家的选择英雄的原理是相同的,所以这里我们只做3个玩家的选择,因此只放属于
3个势力玩家的小精灵。如
工作就算是完毕了,接着开始做功能部分,要用到触发器。

由于是初次介绍,为了不扰乱大家的思维,所以我对触发器的原理不做太多的介绍,大家只需要知道触发器的作用就是可以以事件的方式来实现一些功能就可以了。按F4打开触发器编辑器/Trigger
Editor,删除默认的那个触发器,那是为MEELE准备的。可以看见在魔兽地图编辑器中,一个触发器是由事件(Events),环境(Conditions),动作(Actions)三部分左右,这三个部分之间的关系可以用一个简单的例子说明:“火药接触火以后爆炸”。在这里,火药与火接触就是事件,只有二者接触才会发生以后的动作;而火药接触的对象必须是火才会爆炸,所以火在这里作为环境,限制火药爆炸需要的条件;火药爆炸就是动作,是在与火接触以后引发的动作。在触发器里面我们可以根据需要自己修改事件,环境,动作这三部分的内容,比如可以将火药与火接触爆炸改为与水接触爆炸。那么有了以上概念,来看看选择英雄的制作方法,首先英雄必须在发生了一个事件以后才会被选择,而这个事件在这里就是:小精灵进入能量圆;但是在这里必须限制只有小精灵进入能量圆的时候英雄才会被选择,其他种类的单位进入则什么都不会发生,于是整个触发的环境
-
也就是限制条件也有了,就是:进入能量圆的单位类型是“小精灵”;最后就是动作了,英雄被选择,其实选择英雄的动作就是把英雄的从中立单位更改为玩家势力控制的单位。把上面所说的步骤以触发的方式写出来就是这样的:

事件(Events)
一个单位进入能量圆范围内

环境(Conditions)
进入的单位的类别是“小精灵”


动作(Actions)
把能量圆对应的英雄的控制者改为选择英雄的玩家


现在再按照写出来的触发在地图编辑器中寻找对应的选项。
创建一个新的触发/New
Trigger,方法是在触发编辑器右方的窗口中按鼠标右键选择新<触发器/New
Trigger>,新触器发会被自动命名为“为命名触发00X”,触发器的名字可以通过在选择触发以后按F2来修改。然后点击新建的那个触发,在右下方的触发编辑窗口中鼠标右键,选择
新事件/New Event,在出现的选单中选择 单位 - 单位进入区域/Unit - Unit Enters Region,接着点击红色字体部分 -
选择区域/- Select
Region,这时候窗口会自动切换到大地图,要求我们选择一个区域,这里要解释一下在魔兽中,我们平时所看见的例如进入能量圆,或者进入花园,进入洞穴诸如此类“进入某个地点”的情况,其实并不是进入了我们看见的地方,而是进入了事先放置在能量圆,花园,洞穴等位置上的一个区域(Region)。而现在我们要做的正是放置这么一个区域并且在事件中选择他作为小精灵进入的区域,在大地图上可以看见


面板已经自动切换到区域面板(直接打开区域面板的快截键是R),点击面板上坐标样的按钮使之处于按下的状态,按住右键拖动鼠标在能量圆上画一个和能量圆大小差不多的区域出来,再次点击面板上的按钮使之处于弹起的状态,然后点选刚才放置的区域,会自动切换回触发编辑窗,红色字体部分也会被刚才所选的区域的名字取代,连续确定2次,事件便做好了。

接着是环境/Condition,选择<新环境 - 单位类型判断/New Conditions - Unit Type
Comparison>,将进入区域的单位类型限制为“小精灵”

其中Entering
Unit的意思是“进入单位”这里指进入区域的单位,Equal to的意思是“等同于”。
最后是动作/Actions,
在这里先整理一下有哪些动作需要执行:

1,由于选择好英雄以后小精灵会消失,所以在动作的开头要从游戏中移除小精灵。

2,更改被选英雄所属的势力为玩家操纵的势力。
3,将选好的英雄移动到指定位置,也就是3C中的基地。

4,由于英雄只能被选择一次,所以在动作的最后要关闭整个触发使之不再执行。
对应以上4条的动作分别是:
1,新动作 - 单位 - 移除 -
从游戏中移除进入单位/New Action - Unit - Remove - Unit - Remove (Entering unit) from the
game
2,<新动作 - 单位 - 改变拥有者 - 改变恶魔猎人的拥有者为进入单位的拥有者并且改变颜色/New Action - Unit -
Change owner - Unit - Change ownership of Demon Hunter 0002 to (Owner of
(Entering unit)) and Change color
3,新动作 - 单位 - 移动 - 移动恶魔猎人到区域001的中心/New
Action - Unit - Move Demon Hunter 0002 instantly to (Center of Region 001
)当然区域001也是自己创建的区域;
4,新动作 - 触发 - 关闭此触发/New Action - Trigger - Turn off (This
trigger)


这样整个触发就完成了,对照这个触发再将选择另外2个英雄的也完成。最后保存地图,保存的时候会提醒你为每个势力放置开始点,如果没有放置,会自动为你在地图任意区域放置,手动放置的方法是在单位面板中选择开始点的图标然后进行放置。保存地图以后按Ctrl
+ F9测试一下吧~。另外别忘记在菜单栏设定 - 玩家/Scenario -
Player>中将势力2和3的控制者设置为玩家/User,否则在游戏里就不能选择势力2,3了。



刷兵(有的地方把这个叫做孵蛋,我完全不能理解…………)。简单解释就是每隔一定时间产生一些单位在基地附近,那么废话不多说,下面开始介绍怎样制作。


大家都知道在3C中兵是每隔一定时间就会自动产生的,在触发器中,我们将这种每隔固定时间就会自动发生一次的事件叫做“周期性事件”,一般来说经常通过以下两种途径来实现事件的周期发生:

==========================方法1=========================================

第一种是通过触发器中的循环事件来实现的(也有将这个叫做回圈的),在触发器中新建一个Action(动作),在下拉菜单中找到这样的句子——For Each
Integer A,Do Multiple
Actions(对于所有的整数数值A,执行若干动作),点击确定以后会看见在Actions(动作)这个类下面已经增加了这样的一个Action(动作):


For each (Integer A) from 1 to 10, do (Actions)
Loop - Actions

(对于所有的整数值A,从1到10,执行动作 循环 - 动作)

我详细解释一下这个Action的作用,For each (Integer
A) from 1 to 10(对于所有的整数值A,从1到10)的意思是重复执行10次Loop -

Actions(循环 -
动作)中指定的Actions(动作),同样的道理如果将后面的from 1 to 10(从1到10)改成from 1 to 20(从1到20)那么就


会重复执行20次动作,假设是from 5 to 10则只会执行5次动作,至于为什么不直接用from 1 to 5来代替from 5 to
10,这是在某些时候必须

用到的功能,至于具体使用的时机,为了不使大家头脑混乱,现在暂时不做解释,等到实际使用中遇到类似情况再做说明。

--------------------------范例-------------------------------------

现在为了更形象的说明这个功能,我们来做个简单的范例,按F4打开触发器编辑器,新键一个Event(事件):Player - Player 1 (Red)


skips a cinematic sequence“玩家 - 玩家 1(红色)跳过一段电影序列”,这个事件的建立方法是鼠标右键 - New
Event(新事件) -

Player(玩家) - Cinematic
Skipped(电影被跳过),这个事件的作用是当玩家1按下ESC键的时候就会触发动作。接着增加一个动作

For each (Integer A)
from 1 to 10, do (Actions)
Loop - Actions


这样就将需要重复执行动作的次数定为10次,然后在Loop - Actions下面依次添加这些动作:
Game - Display to
(All players) the text: (String((Integer A)))
(游戏 - 向所有玩家显示信息
:将作为循环序列的整数A的值转换为字符串类型[关于数据类型,这里不多做解释,大家只需要知道只有字符串类型的数据才能被作为信息显示出来就可以了]。在这里“作为循环序列的整数A”其实就是用来记录已经重复执行了多少次动作的一个数值。)添加这个动作的顺序为New
Action(新动作) - Game(游戏) - TextMessage(Auto-Timed)(显示信息,自动调整信息显示时间)
Wait 1.00
seconds
(等待1.00秒,这样在每次执行动作以后都会间隔1秒才执行下一次动作)添加这个动作的顺序为New Action(新动作) -
All(所有) - Wait(等待)。
然后在整个循环Action(动作)的后面(注意,是在整个For Each
Integer的后面,不要添加到Loop - Actions下面去了)添加这个

Action(动作):
Game - Display
to (All players) the text: (finish)

作用是在整个循环结束以后显示一句话以标明循环结束了。当然其中的finish大家可以随自己爱好随意更改。

最后将Melee
Initialization(地图初始化)这个触发删除掉,在地图上放置玩家开始点,按Ctrl +
F9进游戏测试,可以看见在游戏中当按下ESC键以后会分10次每秒一次依次显示数字1~10,最后则会显示finish。通过这个例子可以很清楚的看出。For
each (Integer A) from 1 to 10, do (Actions)这个动作可以让位于Loop - Actions下面的动作重复执行from
1 to
10中后面数字+1减去前面数字的次数,而当所有的重复次数被执行完毕以后,则会继续执行整个循环后面的动作。这样就很简单方便的实现了周期性事件的执行,但是用这个Action(动作)实现的周期性事件有两个弊端,第一是循环执行的次数有限,大家也看见了,在这个Action中无论如何也要求输入2个数字以确定执行次数;第二是每次执行动作之间的时间间隔有最小限制,在上面的例子中,大家将Wait
1.00 seconds(等待1秒)改为Wait 0.00
seconds(等待0秒)以后进入游戏测试,会发现即使是0秒,也会有微小的等待时间(大概0.1~0.4秒左右,视电脑配置而定),这样在执行某些重复时间间隔很小的周期性事件的时候,就完全无法实现了,对于必须排除以上两种限制的周期事件,就必须用到另外一种方法,periodic
event(周期循环事件),和For each Integer不同的是,这是一个Event(事件)而不是一个Action(动作)。



==========================方法2=========================================

添加这个事件的方法:New Event(新事件) - Time(时间) - Periodic
Event(周期事件),添加完成以后可以看见在Event这一类下面出现了这样的Event(事件):

Time - Every 1.00
seconds of game time

(时间-每1.00秒游戏时间)作用很明显,就是每1秒都会执行一次Actions(动作)中包含的所有动作,Every 1.00
seconds中的数字用于指定每多少秒执行动作。对于这个事件的功能,我们仍然可以用1个简单的范例来说明。

--------------------------范例-------------------------------------

新建一个触发器,Event(事件)就用上面那个事件,将1.00调整为0.50,也就是每0.5秒执行1次,然后按下Ctrl+B打开变量编辑面板,(由于变量是第一次接触,所以我暂时不详细说明,大家按照我说的做就是了,以后会对变量和数据类型做详细介绍。)点击面板上方的绿叉按钮,在出现的窗口中下方的下拉菜单选择Integer(整数)然后在上面的输入栏中为这个变量随便起一个名字,[图:var.gif]这里我用的名字是i1便于下面统一介绍,这样就建立好了一个类型为“整数”型的变量。暂时将这个变量放在这里备用,回到刚才建的触发,在Actions(动作)类中添加如下动作:

Set i1 = (i1 + 1)
添加顺序:New Action(新动作) - All(所有) - Set Varible(设置变量)

这个Action(动作)的作用是每次循环执行动作的时候让i1这个整数的值等于它当前的值+1,比方i1当前的值是5那么执行动作以后i1的值就是


5+1,也就是6。
接着添加:
Game - Display to (All players) the text:
(String(i1))

添加方法同上,作用是显示i1的值。

然后进入游戏测试,会看见在游戏中将自动以每0.5秒的速度显示数字,数值为上一次显示的数字+1。由此总结出Periodic
Event(周期循环事件)的特点是会在激活触发以后以Event(事件)中规定的时间间隔来重复执行Actions(动作)中包含的所有动作,并且只要该触发没有被关闭,就会一直执行下去。

========================================================================


以上就是两种最常见的周期性事件的实现方法,那么在此理论基础上我简单叙述一下刷兵触发的原理。

刷兵触发就是一个周期事件,其动作的内容就是在指定位置创建单位,下面我简单的将这个触发写一下,并且加上少许说明。相信大家在对上面所讲的内容理解了的情况下应该立刻明白其中的道理。

Untitled Trigger 003
Events
Time - Every 3.00 seconds of game time
[这个就是前面讲到的周期事件,在这里将周期的时间间隔设置为3秒]
Conditions
(Farm 0009 is alive) Equal
to True [这里Farm 0009
是一个农场,整个Condition(条件)的意思是,如果农场0009仍然生存,则继续执行Actions(动作)中的指令]添加这个Condition的方法是New
Conditions(新条件) - Boolean Comparison(布尔判断,也就是逻辑判断) - 选择图示位置[图:boolean.gif] -
Unit-Unit is Alive(单位 - 单位仍然生存)
Actions
Unit - Create 1 Giant Wolf for
Player 1 (Red) at (Position of Farm 0009 ) facing Default building facing
degrees
[单位 - 为玩家1(红色)创建一只狼在农场0009所在的位置面向系统默认的方向]

整个触发如果用语言表达的意思就是,每隔3秒钟只要农场0009依然存活,就创建一只狼在农场所在的位置。

进入游戏进行测试以后,大家应该不难发现这个触发有这样一个弊端:创建的单位没有数量限制,哪怕地图上已经有了几百,几千只狼,只要农场0009仍然存活,就会不断有新的狼产生,对于这种情况,我们可以通过加入如下的一个简单条件来给予限制:

(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 5

整句条件的意思是,如果地图上所有存活的狼的数量小于5只,则继续执行Actions(动作)类中指定的动作。其中units in Units in
(Playable map area) 就是指整个地图上的单位,而(Unit-type of (Matching unit)) Equal to Giant
Wolf是指符合“单位类型为狼”这个条件的所有单位,(Matching unit) is alive) Equal to
True是指所有“仍然存活”的单位。由于这个条件比较复杂,下面列出详细的添加方法:
New Conditions(新条件) - Integer
Comparison(整数判断)

- 在下拉菜单中选择“Unit in Region Matching
Condition(区域内匹配条件的单位)”

- 在下拉菜单中选择“And” - 点击“Condition1(条件1)” -
在下拉菜单中选择“Unit-Type Comparison(单位-类型判断)”

- 点击“Triggering
Unit(触发单位)”将之改为“Matching Unit(匹配单位)” -
连续确定2次,点击“FootMan(步兵)”将之改为你在Action(动作)中所指定的生产单位种类,在这里我选择的是“狼”
接下来点击“Condition2(条件2)” - 点击图示位置[图bolc.gif] - 在下拉菜单中选择“Unit is Alive(单位仍然存活)” -
点击“Triggering Unit(触发单位)”将之改为“Matching Unit(匹配单位)”,连续确定2次


最后一直点击确定回到第一层菜单将中间的“Equal to(等同于)”改为“Less
Than(小于)”,再点击最后那个0将其改为你所希望的最大出兵数量,到此整个Condition(条件)就完成了

以上就是一个限制了出兵最大数量的刷兵触发的基本原理,但是在实际制作中并不是这么简单,对应很多情况需要做出调整,有兴趣的可以自己去研究研究。



Q:什么是Object Editor?

Object
Editor就是对象编辑器,其中包含了单位编辑器,技能编辑器,装饰物编辑器,科技编辑器等,可以允许地图制作者修改已有的上述对象或者建立新的对象。

打开对象编辑器的方法是在地图编辑窗口按F6或者点击快截工具栏中的头盔样按钮。



Q:什么是Trigger?


Trigger就是触发器,在地图编辑窗口按F4或者点击快截工具栏中的带有a字的按钮即可打开Trigger Editor(触发器编辑器)。

触发器是地图编辑器中用于控制地图中所发生的事件的工具,一个基本的触发器由Event(事件),Condition(环境/条件),Action(动作)三部分组成。下面用一个简单的例子来说明这三部分之间的关系:“你在此论坛提出的有价值的问题都会得到解答”

如果将上面这句话看做一个触发器,那么“你提出问题”就是整个触发器的Event(事件),接下来要发生的一切,不管是“我们为你解答问题”或者“我们不理会你”,都是在“你提出问题”之后发生的。

而限制你所提出的问题是否会得到解答的条件则是“你提出的问题有价值”,也就是整个触发器的条件,这个条件直接影响你“是否得到我们的解答”。

最后,当你提出的问题满足“有价值”这个条件的时候,就会发生“我们为你解答问题”这个动作,也就是整个触发器的动作。




Q:什么是JASS?

JASS是用于编辑地图的一种简单的语言,可以说是文本化以后的触发器(地图脚本:MAP
SCRIPTS),但是由于触发器并没有提供JASS所具备的

所有功能,所以可以说JASS在某种意义上是触发器功能的扩展。

编辑JASS可以通过以下三种途径:
1, 在触发编辑器(TRIGGER EDITOR)中,通过 MENU -> EDIT ->
CONVERT TO CUSTOM TEXT 可以将当前选定的触发转换成脚本模式,也就是以JASS编辑的模式。

2,在触发编辑器中点击触发树(TRIGGER TREE,就是最左边列出所有触发的地方)的最顶端地图名,可以进入自定义脚本功能块,在这里可以用 JASS
写需要的函数,并且在其他的触发器中通过命令来调用。
3,使用 ACTIONS 中的 CUSTOM SCRIPT 动作可以在触发中插入一行 JASS
脚本代码。



Q:什么是“高级-游戏平衡常数”(英文名称Advanced - Gameplay Constants)


最上方菜单左起第7个菜单上数第4个选择,这个选项里面包括了很多不能用T修改但是很有用的设置。比如买卖东西的距离,各种攻击类型对防御类型的伤害,英雄的等级经验复活数据等等。




Q:地图扩展名中的w3m,w3x,w3n,w3g分别是什么意思?

w3m:混乱之制(roc)版本的地图。

w3x:冰封王座(tft)版本的地图。
w3n:战役地图,这类地图必须放在War3(魔兽)目录下的Campaigns(战役)文件夹中才能使用。

w3g:游戏录象,位于War3(魔兽)目录下的Replay文件夹下。



E:地图类型解释

Melee -
对战地图,即 War3 默认的游戏方式,BN Ladder 指定游戏类型。
Non-Melee - 除了 melee 以外的所有类型统称。

Custom - 非官方地图,但是通常表示 非官方的 non-melee 地图。
RPG - Role Play
Games(角色扮演)~~但是现在很多人把所有 Non-Melee 地图都叫成 RPG。
Mini -
迷你游戏,通常指没有突出剧情、快节奏、游戏周期短的地图,没有固定的游戏方式,不含 rpg 。
Offence -
通常是对抗性地图统称,有时也表示一些进攻npc为主题的地图。
3C - Offence 的一种,本来只是一个地图的名称,通常是指 有 3条进攻路线的
Offence 。
Arena - Offence 一种,竞技场,通常是指选定英雄后在固定区域内进行决斗的地图。
Defence -
通常是指防守性地图统称,有时候也表示一些在非平衡的 NPC进攻前提下的防守与反攻。
TD - Defence 的一种,建造 Tower(炮台) 防守
NPC 有规律的进攻。
Cutscene - 通常是指剪辑影片,内容比较简单。(非 CG )
Cinematic -
通常是指完整影片,内容比较丰富。(非 CG )


常见问题解答

Q:我已经把Player 1
的种族设成Human,为什麽进入地图的时候又变回Random?
A:把Scenario => Force Properties =>
Fixed Player Settings打勾,如此一来,前面Player Properties设定的种族、操控者、颜色,都会被锁定



Q:如何在WE中的Object Editor输入负数而不会自动归零?

A:因为B社担心一些非法数值会对游戏稳定度造成影响,因此限制了数值的范围。进入WE後,工具列File => Preferences =>
Allow negative real value in the Object Editor 打勾,就能在Object
Editor中输入real负数而不会自动归零(Integer仍会自动归零)。另外,按住shift+enter再修改数值,不会受到任何限制。请注意,虽然可以输入数值而不被限制,不过如果因为非法的数值导致电脑读不出来,玩游戏时可能会当机。



Q:如何提升世界编辑器的速度?
A:
关掉笔刷--把工具列的Windows => Brush
List关掉。可以大幅提升速度。
减少自订资料--在Object
Editor(物件编辑器)允许自订物件,但是自订的物件越多,WE就会越lag,其中尤以自订单位的影响最严重。笔者曾经建立200多个自订单位,结果
WE速度大约慢到剩1/3,而且按什麽钮都会lag一下;後来把自订单位删掉,直接修改内建的单位,速度就大幅地改善了。所以,尽量直接修改内建的物件(含单位、可破坏物件、物品、技能、……等),少用自订物件。减少预置的物件--放置的单位、物品、可破坏物件和饰物放得越多,WE的速度就越慢(但是并不明显)。区域、摄影机和地形的影响则很小,几乎可以忽略。



Q:为什麽在测试地图时,所有的随机数值都一样?例如武士(Footman, dmg=12~13)第一次攻击一定是12?

A:进入WE後,工具列File => Preferences => Test Map => Use Fixed Random
Seed取消打勾。



Q:如何把英雄等级上限设定超过10级?Q:如何使英雄5级後打中立怪还有经验值?Q:TFT版本中英雄即使不在战场,也会吸到经验值,如


何把这项设定解除?Q:如何修改贩卖物品所得的金钱百分比?Q:如何修改各装甲相克加成的百分比? 

A:以上类似的问题,都可以藉由修改游戏常数解决。找工具列的Advanced (进阶) => Gameplay Constants
(游戏常数),把Use Custom Gameplay Constants打勾。然後修改你想改的部分,如:英雄等级上限 => Hero Maximum
Level全域分享经验值 => Hero XP Global Distribution中立怪经验值表 => Hero XP Gained Creep
Reduction Table。此表格代表的是N级的英雄杀死中立怪时,能得到得经验值百分比。假设杀死二级的普通单位可得40Exp,而此表格内容为
90,80,70,60,0,那麽一级英雄杀死二级中立怪可得40 * 90% = 36 Exp;叁级英雄杀死二级中立怪可得40 * 70% = 28
Exp;五级以上的英雄杀死二级中立怪可得40 * 0% = 0 Exp。物品卖价 => Inventory - Sell Item Return
Rate(相对於原价)。很不幸的,没有方法可以设定个别物品的卖价。装甲加成百分比 => Combat - Damage Bonus Table -


Q:如何让玩家无法送钱给同盟?
A:到游戏常数下,然後--Ally Trading Increment - Control
Click(按Ctrl点滑鼠所加的钱数)设为0Ally Trading Increment - Normal


Click(直接点滑鼠所加的钱数)设为0



Q:为什麽WE中的单位资料会和Melee游戏不同?例如冰龙不是魔法攻击而是穿刺攻击、而弓手没有Elune's Grace被动技、……?

A:找工具列的Scenairo => Map Options => Game Data
Set。其中:Default:使用地图编辑器的资料。使用它有个好处是它不会随着改版而有任何变动Custom:最旧版的游戏资料Melee:最新版的游戏资料。选这个就要随着b社的改版而修改地图。



Q:如何制作有颜色的字?

A:将文字前後加上颜色码,WC3颜色码的格式是|CAARRGGBB###|R(大小写不限)。其中AA为不透明度,RR为红色值,GG为绿色值,BB为蓝色


值,###为你要输入的文字。数值用16进位(00~FF)。例如:|CFFFFCC00Danny是天才|R →Danny是天才

Q:什麽是skin,什麽是Model?

A:Skin是指修改模型动画的外型,例如在Footman的剑上涂上其它的颜色等;Model则是指整个模型动画,包括动作、音效、指令等等。



Q:如何在同一幅图中设置不同的地型?例如有草地,也有沙漠。
A:Advanced → Modify Tileset,把Use
custom tileset打上勾就能修改了。


Q:如何修改地图大小?
A:进入WE後 => Scenario =>
Map Size and Camera Bounds,接下来要缩要拉悉听尊便。


Q:如何让编辑器显示Import
Manager汇入的图示和模组?
A:汇入後存档,关掉编辑,再用编辑器开启地图即可。


Q:地图档案大小是否有上限?

A:单机游戏没有限制,但是超过4MB的地图就不能进行连线游戏(包含区网和b.net)。



Q:如何减少读取地图(Loading)的时间?
A:

减少预置物件及其设定--预先放置的单位、物品、可破坏物件、饰物、区域、摄影机等越少,地图就读取越快。另外,对物件做的初始设定


(如单位生命值、等级、已学技能、死亡掉的物品等;区域的天气等)也会在这个时候执行,而增加读取时间,其中以死亡掉宝的设定影响最大。

减少初始化触发--初始化的触发就是在Loading的时候执行。越多初始化触发就意味着越长的读取时间。不过如果把初始化移到游戏中进行,可能造成游戏更lag,因此要依实际的需要调整。

此外,其它地图设定如触发器和声音编辑器的设定,也会影响读取时间。
汇入大的档案不会明显地增加读取时间,所以地图档案越肥不代表地图要读较久。

Q:如何修改游戏中显示的小地图图片?
A:

先做好你希望显示的小地图图片,格式限定 32bit,尺寸 256x256
的TGA档。
将步骤1的图片转换成 BLP 格式。
用WE开启地图,打开 Import Manager(F12) 将图片汇入。

将汇入的档案路径设为War3MapMap.blp(大小写不限) 。


Q: 如何修改地图读取画面 ?
A:


官方做法:

打开官方地图Maps/FrozenThrone/Scenario/(4)Monolith.w3x,进入Import
Manager并汇出模组档war3mapImported\LoadingScreen.mdx,并把

它汇到你的地图中

汇出以下图片档修改,再依照同样的路径汇入你的地图中LoadingScreenBL.tga 左下角图片LoadingScreenBR.tga 右下角图片


LoadingScreenTL.tga 左上角图片LoadingScreenTR.tga 右上角图片
到工具列Scenario
=> Loading Screen => Use Imported File => 选择你汇入的模组档
自制做法:


到工具列 Scenario => Loading Screen => Use Campaign Screen =>
Generic
自己做一个1024 * 768
的TGA图片切割成4块转换为blp汇入为:UI\Glues\Loading\Load-Generic\Generic-Loading-
TopLeft.blp 左上角图片,大小512 *
512UI\Glues\Loading\Load-Generic\Generic-Loading-TopRight.blp 右上角图片,大小 512 *
512UI\Glues\Loading\Load-Generic\Generic-Loading-BotLeft.blp 左下角图片,大小512 *
256UI\Glues\Loading\Load-Generic\Generic-Loading-BotRight.blp 右下角图片,大小 512 *
256拼起来就是完整的Loading Screen
此外,汇入以下档案可以修改Loading
Bar:UI\Glues\Loading\LoadBar\BarBorder.blp 边框UI\Glues\Loading\LoadBar\
BarFill.blp 填充图形(蓝色条)UI\Glues\Loading\LoadBar\BarGlow.blp 打光效果


Q:如何修改游戏读取时显示的小地图预览图片?
A:
先做好你希望显示的小地图图片,格式限定 24/32bit,尺寸
256x256 的TGA档。
用WE开启地图,打开 Import Manager(F12) 将图片汇入。

将刚才汇入的档案路径设为war3mapPreview.tga(大小写不限)。


修改地图我们会了,那么我们怎么样来创建一张自己的地图呢?在菜单栏的文件下有个创建新地图选项,用它就行了!点击后会出现一个窗口


这个就是对你的地图的基本大小和地形的设置了,比如弄成宽64,高128,初始海拔为7,地形设置为城邦,之后点确定就会生成新地形了!好了,现在在你眼前的就是你刚才创建的新的地图的地形了,是不是很难看,呵呵,那就让它变漂亮一点吧,用第一章学到的知识,打开工具面板,用地形面板及地形装饰物面板来弄吧!

那么一张新地图要有自己的名字,这个怎么弄呢?在菜单栏的情节选项里面可以弄相关的信息!点击后出现下拉列表,选择第一项地图描述!之后便会出现以下:


名字:就是在游戏中的显示出的地图的名字了,如Lost Temple等等!

建议玩家数:就是推荐的玩家人数,一些对战图上都有的如1V1,2V2等等!
作者:当然是写上自己的名字啦,不过这个好像在游戏中都看不到!

修改地图读取中的画面:同样在地图属性的窗口中选择场景读取中就可以修改了,点击使用战役场景。其它的相关信息自己弄吧!


怎么样弄玩家数:创建了一张新地图后,在默认情况下是只能有一个玩家的,要多玩家的话就得我们自己弄了!同样是在情节选项下,不过这次要选择玩家属性!之后会出现设置玩家的窗口!你在这里可以设置玩家为用户,或是电脑,一般来说,RPG地图里都要有一或两家电脑玩家来作为敌对方的,而且大多数都是用玩家11和玩家12来弄!之后是弄玩家的势力了,一般来说有两个势力:正义和邪恶。具体代表图有3C,多数TD图等,而像FOOTMAN这种图则是有四个势力,那么也可以自己设置!在情节属性窗口中选择势力,然后在重新定义里打勾,添加势力即可,然后就拖动相应玩家到各个势力中了,最后别忘了在固定玩家设置里打上勾!其它的几个选项就暂时不用!


这几部份弄完了,我们当然是得做开心了!


在现有的地图上我们得先设置玩家开始点!如果是在对战地图中,这个开始点将会是给你创建基地和初始农民的地点,在RPG地图里面就是游戏开始后玩家的初始视野地点了,比如我们就先把玩家开始点都弄到地图左上吧!(提示:给电脑玩家设置开始点的话,可以放在任意位置)


一张RPG地图不像对战地图那样各位玩家有自己的单位和部队,大部份的RPG地图都是以英雄作为自己的控制对像的,那么我们下面就说一下给玩家创建英雄单位!

首先将工具面板切换到区域面板,并在玩家开始点的地方画一个区域,命名为Heros!之后打开菜单栏的触发事件编辑器,打开后会有一个初始化的对战初始化的T,将它删除!然后自己新建一个类,之后在该类下新建触发器,命名为Create
heros for players!选中你新建的T之后就会在右边出现相关信息窗口了,右上空白窗口可以自己写点提示说明之类的,下面的就是具体的T语句了!


创建好英雄单位后我们的冒险就开始了,此处我们先在地图上放一些供我们攻击的单位,让其所属玩家为玩家12,我们知道,一般打死中立怪后会掉宝而且会得金钱,怎么让打死非中立单位也掉宝和得金钱呢,同样会T来弄!关于此处的T,请参考附带的演示地图!

一个游戏自然还得有胜利条件及失败条件,这些也是T的功劳!

一个完整的触发器由三个部份组成:事件、环境、和动作

第四节
自定义单位、物品及技能的制作

一张RPG地图要有自己的风格及创意当然少不了自定义单位和技能了,那么这些东西是怎么来的呢?其实都是在原有的单位及技能上创建的!而要做到这些,我们又得回到物品编辑器了!

创建自定义单位:在物体编辑器的单位列表里找一个原始单位作为你要自定义的单位,如用大魔法师来做,选中大魔法师,右键自定义单位,之后会出现对话框,输入该单位的名字,之后会在自定义的类下面多出一个人族-英雄-XXXX(你刚才输入的名字)选中他后,同样右边就会出现其相关数据了,这里的数和标准单位里面的相比除了名字不同外,其他都相同,所以,既然是自定义单位,那么就改吧,模型,声音,攻击,护甲,图标……………………这样就完成了一个自定义单位了!同理,自定义技能的方法也是一样的,只不过你可以修改它们的等级及效果,对召唤技能而言还可以修改召唤出来的单位的数量及种类!这些都是属于基本问题了,自己一看都知道,所以就靠各位自己研究了!


事件-即一个事件或是任务、剧情的开始,也可以这样理解,举个例子,上课铃响了就是一个事件,或是早上8.00到了也是一个事件,这意味着接下来我们该上课了,也可以把事件理解成为导火索吧!

环境-相当于是条件,接着上面的例子来说,早上8.00到了,环境:如果是周一至周五。那么我们就得上学(班),如果是周末,我们就休息,也就是说不做出相应的动作!这里上学及上班就是动作!

动作-具体的各项命令,如上学,上班,吃饭等,当然这里是用现实生活中的例子来打比方!那么下面我们就来看一个例子以帮助大家理解这三个部份!

引用某位圣人的一个经典例子:
有一个花园,花园里面有一条狗!
事件-一个人进入花园
环境-此人是狗的主人
动作-狗摇尾巴

或者是
事件-一个人进入花园
环境-此人不是狗的主人
动作-狗就叫

这个就是一个简单的触发器了,下面就用WE中的具体事件来举个例子!就以3C的某个人的英雄被杀了而出现字幕来说明!
事件-a unit dies
一个单位死亡
环境-triggering unit is a hero = ture 死亡的单位为英雄单位
事件-游戏-Display to
all players the text:name of owner of triggering unit + 的英雄被 + name of owner of
killing unit + 打死了! 出现提示字幕

当然,在3C中还得有打死了一个英雄后对各位玩家的奖励和对打死英雄的玩家的特别奖励以及判断死亡英雄是否属于玩家控制等,这里就不讨论了,其实这些就是多个动作的运用了,基于新手对WE和知识的情况来考虑,本人只提供简单基本的触发器语句的教学,如果是自己想要更进一步了解更多的话则可以找一些其他的教程或是演示!

事件里面可以分为时间,单位,初始化等多个类型,各位可以打开WE里的触发器自己研究,环境和动作的内容则就更多了,在这里不可能都作介绍,这些都还得大家自己去研究学习了!


制作RPG地图的一些建议

说了那么多,大家应该对一张RPG地图的产生方法有一定的了解了,不过总体来说,制作一张RPG地图是一个相当辛苦的过程,所以如果各位真下定决心要制作的话,那么我在这里给大家几点建议:

1.明确自己要做哪种RPG地图?如战役类、角色扮演类、对抗类、TD或是生存防守…………只有明确了自己做图的目标后才能在拟定出一个相关的地图制作计划(即头脑里面有个想,不要到实际做图时还在考虑做成什么才好)

2.创建地图时大小要适中。不要想着地图弄得大就好,还得想想自己是否有能力将全部地形都用完,有没有合适的剧情来填充庞大的地形,其实有很多很经典的地图有的都是极小型的地形的,如小猪保卫战。而大地图当然也有,比如本人的最终幻想的两个作品用的都是最大的地形设置,当然,在这之前也是要充分考虑好每一块地形的使用的!

3.创建适合自己RPG地图的单位、技能和物品等!一张RPG地图都是有自己的个性的,这就在自定义单位、技能和物品上得到了充分体现。


如果是一张角色扮演图,你得设计自定义单位的职业,名字及称谓等,甚至还得弄出相应的技能及物品。而对于生存一类的,你要考虑的则是单位的技能是否真正有威力,物品是否能够满足游戏的需要!

4.游戏系统。这个就很多了,比如物品合成,升级,打宝,挑战等,这些主要是为了丰富一张地图的而发展出来的,当然也可以吸引更多的玩家以及体现作者的制图水平,不过在做一些游戏系统时也得注意是否和游戏相适合,有些系统如果做得很抢眼的话,反倒会把你一张地图的主旨给遮蔽了!


触发器:基本篇--

Q:我想把地图A的触发复制到地图B,但是为什麽总是缺少变数而出错?

A:因为在贴上触发的时候不会贴上原触发的变数,所以就会出错。解决方法是打开复制未知变数的功能:File => Preferences =>


General =>Automatically create unknown variables while pasting
trigger data


Q:如何让游戏开啓後,起始位置不会出现主城和工人?
A:进入Trigger
Editor,找到Melee Initialization,如果没改过的话应该如下:Melee InitializationEvents Map


initializationActions Melee Game - Use melee time of day (for all
players) //使一开始的游戏时间是早上一颗星(如果删

掉就会从00:00开始) Melee Game - Limit Heroes to
1 per Hero-type (for all players) //让所有玩家不能生产重覆的英雄

Melee Game - Give
trained Heroes a Scroll of Town Portal (for all players) //让第一个生产出来的英雄有传送卷轴


Melee Game - Set starting resources (for all players)
//让所有玩家一开始有一定的Gold和Lumber Melee Game - Remove

creeps and critters from
used start locations (for all players) //如果某起始位置有玩家,就删除附近的Creep Melee


Game - Create starting units (for all players) //产生主城和工人於玩家的起始位置 Melee
Game - Run melee AI scripts

(for computer players) //让电脑玩家有AI Melee Game
- Enforce victory/defeat conditions (for all players) //使


用一般的胜利/失败设定(毁掉对方所有建 者胜)将蓝色的那一条删掉即可


Q:如何设定玩家的起始金钱和木材?

A:新增一条Trigger--Init ResourceEvent Map initializationActions: Player - Set
<游戏者> Current gold to

数量内容请自行根据需要修改



Q:要让被杀死的小兵掉钱,就像CREEP一样 ?
A:在 Trigger Editor 里面用 Player - Turn
Player Flag On/Off 开启金钱奖励,这样杀死该玩家的单位就有钱了。在 Unit Editor 里面用 Stats - Bounty
Awarded - 来修改某杀死某单位的金钱数量。


Q:假设在一张 RPG 地图中,给每一位玩家一个工人,让玩家选英雄:Event
Unit - A unit enters Action Unit - Create 1 for Triggering Player at center of
facing ...为什麽单位进入该Region时没有反应?
A:设定错误。由於引发事件的是单位,而不是玩家,所以 Trigging Player
无法表明到底是哪一个玩家。正确的设定方式如下:Event

Unit - A unit enters Action Unit - Create 1
for (Owner of (Triggering Unit)) at center

of facing ...



Q:为什麽这样写,游戏开始却看不到计时器出现? Init Timer Events Map initialization
Conditions Actions Countdown Timer - Start TimeRaminging as a One-shot timer
that will expire in 660.00 seconds Countdown Timer - Create a timer window for
(Last started timer) with title Time Left 
A:Map
initialization是在loading时执行,所以你无法看到计时器出现。如果想在游戏一开始出现讯息、计时器、……之类的东西,必须用Time -
Elapsed game time is 0.00 seconds 做为事件


Q:如何更改英雄取得经验的比例?
A:Action
- Hero - Hero Experience Rate,设成多少百分比看自己的情况决定罗。


Q:如何制作当玩家离线时分享控制权?

A:Event:玩家离线 Action: Player - Pick 同盟 and do ( Player - For Triggering
Player, Turn Share vision and full share unit to Picked Player )



Q:请问如何做出随机效果?
A:用If/Then/Elsel中的Random Integer/Real做判断,例如:


(Random integer number between 1 and 10) Equal to 1//1~10中的随机一个整数为1 →
1/10的机率
(Random percentage) Less than or equal to 30.00//30%的机率



Q:Letterbox 和 Cinematic似乎都是打开影片模式,二者有什麽区别?

A:Cinematic会全开地图,Letterbox不会全开地图(此外,关闭Letterbox模式後,Fog of War和Black Mask
会自动重设)。


Q:使用Create Special Effect on Unit时,attach的部分可以填写什麽?会有什麽影响?

A:这个是用来决定特效放置的部位。详细请自己测试。
 

Q:在Unit - Play
Animination中,可以填入什麽字串?
A:单位的动画指令可以在Previewer中预览,


原则上填入Animination那栏的文字就好了,大小写不限,例如stand, walk, death, ...。如果要播放像stand -
3, attack - 2这类特定的动


画,就必须用JASS写,函数为:SetUnitAnimationByIndex,但是填入的数字代表什麽动作就得自行测试了。


Q:如何用触发器抓到有重生技能而在死亡重生的单位?
A:没有办法抓到



Q:在建立阵列时,有一个size选项是做什麽用的?

A:它是用来设定初始值的。在地图初始化时,电脑会把该阵列从xxx[0]~xxx[size]设定初值。这个功能是为了避免某些变数没有初始值而不


能使用。因为在GUI Trigger中,某些控制码变数没有建立的语法,如果不设定初值,在游戏中就不会有值,例如Dialog, Dialog
Button, ....等,这类数心须初始化以避免出问题(可以用JASS建立的,但如果只用GUI就不要忘了初始化)。至於其他类型的变数如Integer,
Real, ......,基本上不管它也不会有很大的影响。
博bó
 楼主| 发表于 2009-8-19 17:43:26
本帖最后由 博bó 于 2009-8-19 17:58 编辑 加密hke1.25单位物品ID的查找 解压后有个文档 观看视频密码就在文档里面
想要观看视频的密码,回复吧。

加密hke1.25单位物品ID的查找.part01.rar

2.86 MB, 下载次数: 407

加密hke1.25单位物品ID的查找.part02.rar

2.86 MB, 下载次数: 335

加密hke1.25单位物品ID的查找.part03.rar

2.86 MB, 下载次数: 300

加密hke1.25单位物品ID的查找.part04.rar

2.86 MB, 下载次数: 278

加密hke1.25单位物品ID的查找.part05.rar

2.86 MB, 下载次数: 282

加密hke1.25单位物品ID的查找.part06.rar

2.86 MB, 下载次数: 282

加密hke1.25单位物品ID的查找.part07.rar

2.86 MB, 下载次数: 317

加密hke1.25单位物品ID的查找.part08.rar

1.92 MB, 下载次数: 385

351556881
发表于 2009-8-21 19:18:10
gdgdfgdfgfd
发表于 2009-8-23 00:09:11
额   谢谢 楼主啊
lgewin
发表于 2009-9-13 19:07:52
我要学一下我是新手
发表于 2009-9-19 15:25:04
好东西噎!!1
ddsnan
发表于 2009-9-27 19:12:32
[p67]..........
mwk2220
发表于 2009-9-28 17:24:59
dssssssssssdddddd
wenxijun
发表于 2009-10-6 21:07:11
DDDDDDDDDDDDDDDDDDDDDDD
快速回复 返回顶部 返回列表