拼搏网

拼搏网

魔兽地图怎么样制作触发事件?,魔兽rpg制作教程

admin

本文目录一览

关于魔兽争霸地图制作

1.用开始点点在你要点的地方后,进入游戏镜头第一次就出现在开始点(在触发编辑器把第一个触发器中的“设置初始单位”删掉后在测试地图时就没有东西了出现了)
2.阴影可以在情节选项中点地图尺寸和镜头范围中修改阴影范围,如果勾下面的,一定要遵守32的倍数才能缩小或扩大地图
3.按R出来“地区编辑器”,设置两个区域分别放在两个传送门下面,双击传送门(记得先按U切换到单位面板)勾选“激活传送门”,选择你要选的区域(慢慢探索一定会懂)
4.需要触发器完成任务(因为太罗嗦了),具体方法打开魔兽原带地图Warchaser,里面找到该触发器,慢慢摸索
5.你保存时打开魔兽了,或者你保存时版本和以前版本不一样(如我自己做了个1.21的图,转换到1.24e时修改保存后错误了),或者是你保存时,进度条未完就硬性关机(拔电源或按开机键)或直接右键点击编辑器关闭掉,之后打不开或无法保存(哥以前硬性关机,导致做了4天的图之后打不开了,血的教训)

制作魔兽地图时,怎么制作选英雄的程序

开始时允许玩家选择喜欢的英雄。
这里要讲到函数和变量的运用。编辑器里还有许多内置的函数,与变量不同,函数是固定的不能够改变,它有一个最大的特点就是所有函数都有返回值,例如:"Last Created Unit"返回最后创建的单位;"Triggering Unit"返回触发此触发器的单位等等。现在我就为你介绍函数和变量的使用方法。
很多RPG地图都可以让你选择英雄,并且英雄死亡的时候能够复活,这是个非常实用的例子,很多地方你都能运用,但要怎么做呢?
首先打开变量编辑器新建一个变量PlayerUnit,类型设置为单位。可参阅基础知识:变量。
然后在地形编辑器中选择地区面板,添加三块区域,默认名字为"地区 000"、"地区 001"、"地区 002"。
在单位面板上选择"中立无敌意",然后在"地区 001"和"地区 002"上各放置一个英雄,然后选择"玩家 1 (红色)",放置一个小精灵。
单位 - Kill
杀死小精灵,默认(Triggering unit)表示是触发此触发器的单位,也就是小精灵。
Set Variable
这条指令将最后创建的英雄赋值给变量PlayerUnit。选择变量为PlayerUnit,然后将默认函数(Triggering unit)改为(Last created unit),(Triggering unit)表示触发此触发器的单位,也就是已经被杀死的小精灵,(Last created unit)表示最后创建的英雄。
特效 - Create Special Effect On Unit
创建一个传送的特效给PlayerUnit,这句仅仅是为了好看。:)
点击Abilities\Spells\NightElf\Blink\BlinkTarget.mdl就能选择特效模型了,同时,这里也用到了变量PlayerUnit。
现在要判断第二个英雄,这很简单,只要复制一份触发器,选择触发器"ChooseHero1"点复制,然后点粘贴,就有了一份与"ChooseHero1"相同的触发器。
然后单击复制的触发器,将其改名为"ChooseHero2",并修改其中的指令,只用把事件中"地区 001"修改为"地区 002",然后再把Cearte a Unit指令中"圣骑士"改为"山丘之王"就可以了,很简单吧。
从上面可以看出,如果你想改变可选择的英雄时,只用修改Cearte a Unit这一条命令中的英雄就行了。运用了变量以后,不管你选择的是那个英雄,只用创建特效给变量PlayerUnit就行了,并且在例二英雄复活的时候我也就可以直接调用PlayerUnit这个变量。
由此可看出,为可能多次运用的对象创建变量是个很好的习惯,合理运用将大大减少你的工作量。
如果你想问,我要做一个多人游戏呢?难到每个人都要设置一次?如果有10个英雄可选,共5个玩家,难道要设置10x5=50个触发器?事实上这个问题很好解决,在这里一个函数起到关键的作用。
首先要把变量PlayerUnit下的数组打上钩,使其成为变量数组。
然后修改"单位 - Cearte a Unit",将其中的"玩家 1 (红色)"改为功能"转化 - Convert Player Index To Player",然后点击1,把功能改为"游戏 - Number Of Players" (如下图),确定。
同样修改"Set Variable",变量这时候变成了"PlayerUnit [序号]"的形式,把"序号"也改为"游戏 - Number Of Players"就行了。
"游戏 - Number Of Players"表示是触发此触发器的玩家的序号,所以"Player [游戏 - Number Of Players]"就是触发此触发器的玩家,这就使触发器能够自动判断是哪个玩家选择了这个英雄。在调用变量时只用选择数组的序号就行了,比如要调用玩家2的英雄,那么就只用调用对应的变量PlayerUnit[2]就行了。
如果你不想玩家选择相同的英雄呢?只要增加一句:
Trigger - Turn off
关闭触发器。
This trigger返回当前触发器,这条指令表示关闭当前触发器,触发器将不会再被触发。这句可以放在动作中任何位置,动作不会因此中止,所以建议放在第一条运行,避免因为没有及时关闭而导致其他玩家再次触发此触发器。
你可以多放几个小精灵在地图上测试。

魔兽争霸3怎么做RPG塔防地图?有没有详细的介绍

要制作冰封王座的相关地图需要使用到魔兽目录中自带的WE程序或者是由他人进行改进和完善的诸如YDWE的软件。

魔兽地图从大的方面分为两种,一种是常规对战地图,另一种是战役地图,区别在于游戏方式是否为常规魔兽地图的建筑出兵的方式,触发中是否使用了除了常规对战用触发以外的触发,是否使用了自定义单位,是否使用了自定义物品。

如果你要做的是常规地战地图的话,你只需要构建一个相对对称或者平衡的地形,数量适合的金矿和野怪点,至少一个的地精商店即可完成。

如果你要做的是类似于战役地图式的游戏方式以及获胜方式都与常规对战地图不同的地图,也就是广义上的RPG地图,那就可以简单的分为对抗,防守,塔防,角色剧情,小游戏等等,那你需要的时间和精力远远超过遭遇战地图的百倍。

大部分在百度知道提问的人都是选择制作PRG地图,再加上遭遇战地图的制作过于简单,所以在此我只说明PRG地图,又因为PRG地图分类繁多和制作的流程过多,我也只是简述一下要求和建议。

首先是对抗地图,代表作品为DOTA,澄海3C,忍者村大战等等,此类地图要求是突出英雄的重要性,应该将精力放于物品,英雄技能等方面,士兵应该只是陪衬或者说是让英雄升级的存在。此类地图的魅力所在为英雄技能的实用性,搭配性,美观性,创意性。物品技能和英雄技能在某些方面是相同的,所以不再赘述。值得注意的是由于此类地图是由玩家进行对抗,所以在平衡性要求方面十分的高,太过失衡的游戏体验会使玩家偏向于某个英雄或者某种势力,会导致地图的可玩性降低。

其次是防守地图,代表作品为火影忍者羁绊,光明与黑暗,神界危机等等,此类地图要求是更加突出英雄的强大,应该讲精力放于物品,英雄技能方面,由于玩家的对手是电脑,所以技能的搭配性和创意性并不是十分重要,作者更应该将精力放于技能的使用和美观,强大的特效及时华而不实也会被玩家接受,物品主要为装备,装备技能则由于需要突出英雄技能而大多数为被动,主要是增加属性之类的,也有包括各种溅射,多重箭,法球等被动技能。由于玩家的实力不同,防守地图应该可以设置难度。

然后是塔防,代表作品为绿色循环圈,小偷,暴风雪防御塔等等,此类地图要求突出塔类的搭配方式和玩家

魔兽地图怎么样制作触发事件?

触发编辑器是WE的灵魂,魔兽RPG无限的内涵就是因为它的存在。在此节,我们通过分析经典RPG地图WarChasers(大家可在魔兽争霸游戏目录的Maps\Scenario下找到它)中的几个设计要点,来对触发编辑器有基本的认识。

打开地图WarChasers可看到它的全貌(图10),不要光顾着欣赏地形,这些在上面讲述的地形编辑器中你同样能做到。在讲解范例之前,先来了解一些触发器的基本常识。首先是域(Region)的概念,它是地形编辑器与触发编辑器之间最重要的一道桥梁,绝大多数的触发器(Trigger)都与它有关系。通过工具面板→域面板(Region Palette)来显示地图上的域,大家会看到地图上有许多不同颜色的矩形框,这便是域了,其中每个矩形框都是一个域。域面板简单地分为两部分:一部分仅为一个快捷键按钮,当激活时(绿色)为增加域,当取消激活时(灰色)为编辑域的大小或移动/删除域;另外一部分是域列表,在这里通过双击域名,视窗会跳转到该域所在区,并且还可在域名上单击鼠标右键→编辑域属性(Edit Region Properties)来修改该域的详细资料,除了修改名字和微调域大小以外,还能改变域的颜色(Select Color)、天气效果(Weather Effect)和声效(Ambient Sound)(图11)。

了解过域以后,可进入触发编辑器的学习了。按快捷键F4打开触发编辑器,有一个类似单位编辑器的窗口摆在了面前。让我们来看看它的结构(图12):最上方的是菜单栏。往下左边是触发器树,类似于单位编辑器里的单位树。目录下出现的文件便是触发器,左键单击触发器会打开编辑视窗。位于编辑视窗上方的文本框为备注框。备注框下方的便是触发器编辑主视窗了,这里需要讲解的是触发器分为事件(Events)、条件(Conditions)、行为(Actions)三部分,即当发生什么事件,并且满足什么条件时执行什么行为。是不是感觉有点像计算机语言一样枯燥,那么现在让我们试着读懂WarChasers中几个触发器制作的效果实例吧。

实例一:如何实现游戏开始时的选择英雄,这是绝大多数RPG地图所必备的。

实例效果:进入游戏后,将树精灵移动到英雄附近时,则选择该英雄(图13)。

实例讲解:进入触发器树中Hero Selection目录下的Robo X触发器,我们可看到主视窗中的事件、条件、行为三大部分(图14)。

事件部分:此处的意思是当一个单位进入Robo X域,则引发该触发器。(通过双击可以编辑为你所需要的语句)

条件部分:在这个实例中条件部分为无,即当事件发生时无条件运行该触发器。

行为部分:(下文中提到的玩家1为玩家自己,玩家12为电脑)

1.在Start2域中心为进入单位的拥有者新建一个名为Megotron X的单位(在这句中,你可以更改生成的单位数量、类型以及在哪个域新建该单位和该单位被建立时的角度)。

2.给刚才建立的英雄一个复活十字勋章(由于这是给英雄添加物品,所以不能设置数量,不过你依然可以更改物品的类型。Last Created Unit代指的便是刚才新建的Megotron X)。

3.如果进入的单位属于玩家1则将刚才新建的Megotron X赋予单位类型变量Player1,否则什么都不做。(这里利用了Set行为语句来设置变量,为什么要设置变量呢?就像为什么我们每个人都有名字一样。If Then Else是经常用到的行为语句,它常会通过条件来判断该执行哪个行为)

4、5、6.三句横线标注的语句功能同第3句一样,大家很容易读懂。

7.移出进入Robo X域的单位(这里的Entering Unit同样指的是进入域的树精灵)。

8.启动触发器Snap Camera to Player(检查条件)。(执行Camera Control目录下的Snap Camera to Player触发器,你也可通过使用类似以Trigger开头的语句的触发类型语句来建造触发器链,相当于连锁反应)。

实例总结:现在我们知道RPG地图开始时用一个精灵选择自己喜欢的英雄来作战,这个最基础的触发器实例是怎么样通过事件、条件、行为这3个部分来组合的,还了解了基本的语句构成。

实例二:类似Tower Defense的兵海,在这个例子中你将认识到触发编辑器的差异性,即类似的语句却会产生不同效果。

实例效果:在WarChasers地图中会有一个开着坦克前进,然后很多骷髅兵向你涌来的效果,著名的Tower Defense地图中也有类似的触发器影子(图15)。

实例讲解:目录Monster下面的TankRun1~9触发器,鉴于这九个触发器有相似性,所以我就拿触发器TankRun1来作分析了(图16)。

事件部分:意思是当一个单位(坦克)进入TankSpeak域时,则引发该触发器。

条件部分:进入该域的单位必须属于Playersgroup(这里出现了条件,不满足条件时行为部分就不会被执行。其中Playersgroup是一个玩家组类型的变量,在其它触发器中,已设定了Playersgroup包括了游戏中的四个玩家,所以这里也可理解为任何一个属于玩家的单位进入TankSpeak域时,才能满足执行行为的条件)。

行为部分:

1.关闭此触发器(这个语句便是控制该触发器,使它只运行一次,这里我们需要注意到的是行为部分的语序性,即语句是按照从上到下依次执行的)。

2.为玩家12在MakeSlimers域中任意一点新建两个通过单位编辑器创建的名为Giant Skeleton Warrior的骷髅战士(请注意到这个语句执行的效果是先确定任意一点,再在该点建立两Giant Skeleton Warrior)。

3.为玩家12在TankSkels1域中任意一点新建一个单位名为RoadKill Skeleton的骷髅,并执行30次(其实效果便是在TankSkels1域内建立30个RoadKill Skeleton。玩家可能会觉得这个等同于上面的语句,但是请注意,因为域内的随机点在每次执行语句时都会变化,所以这30个RoadKill Skeleton不会像上个语句里的两个Giant Skeleton Warrior一样聚集在一起,这样才会有骷髅海的效果,请大家注意我用横线标注的单位类型语句是相同的)。

实例总结:通过这个例子我们不仅学会制作Tower Defense效果,而且还看到For语句可简化很多繁琐的效果,大家应该多多练习使用。是不是觉得简单了?那我们就来个难一点的!

实例三:瞬间移动。通过此实例我们可发现触发编辑器不仅有差异性,也有多样性,即用多种方法达到同一个目的,正是因为如此,触发编辑器才可让大家尽情发挥想象。

实例效果:当坦克到了终点以后,将玩家的英雄传送到Waygate2 A域(图17)。

实例讲解:目录Tanks下面的Player 1 Leaves Tank触发器(图18)。

事件部分:当一个单位(坦克)进入Tank Leave 02域时,则引发该触发器。

条件部分:进入的单位为变量Player1(这里请大家不要被迷惑了,这个Player1只是一个单位类型变量,而非玩家1,这个变量指代的便是坦克)。

行为部分:

1.关闭此触发器。

2.取消变量TempPlayer1的隐藏状态(当你的英雄进入坦克时,在其它触发器中已将你的英雄隐藏,并赋予单位类型变量TempPlayer1,●表示单位相关语句)。

3.将TempPlayer1移动到Waygate2 A域(这个移动没有等待时间,可算是瞬间移动)。

4.在Tank Leave 02域创造“传送”特效(这是一个用来创造特效的语句,大家可能会问,英雄都被传送到了Waygate2 A域了,怎么还能在Tank Leave 02域看到特效?其实在玩家进入坦克时,视角已被固定在了坦克身上,在没有新的语句来改变视角之前,视角依然只是坦克,▲表示特效相关语句)。

5.将刚才建立的特效赋值给特效类型变量列TankSFX[1](这里出现了变量列(Array)的概念,所谓变量列,就是将同类型变量集中在一起,便于操作,就像把书都放在一个包里便于携带一样)。

6.等待0.10秒(等待语句在触发编辑器里作用也比较显著)。

7.隐藏变量Player1。由于坦克在以后的游戏中不会再使用到,所以我们完全可使用Remove命令将它删除,你可新建移除单位的行为语句(Unit-Remove),然后将Triggering Unit值更改为变量(Variable)Player1,这样便做到和隐藏变量Player1等同的效果了。

8.将TempPlayer1值赋予Player1(执行后,Player1便是指代的玩家的英雄了)。

9.执行Snap Camera to Player(忽略条件)(当选择忽略条件时,就算执行的触发器有条件也不会被考虑,这便是转换视角的语句)。

10.等待2.00秒。

11.摧毁特效TankSFX[1]。(将刚才建立的特效摧毁)

实例总结:这个例子有些复杂,大家可反复看注释并结合游戏来分析。我们从这个例子了解到在触发编辑器中达到一个目的不是只有一种方法。另外,编辑触发器中经常用到变量,但请大家注意使用变量时要有逻辑性,逻辑错误会导致整个地图出现问题。

魔兽RPG地图是怎么做的 啊?

一个大工程吖..

地形.装饰物.触发.脚本.自定义英雄.自定义物品.自定义技能.魔法效果.还要反复测试.达到平衡..(不单单是只有这些就能做成RPG地图.以上只是制作地图最基本的知识)一个地形和装饰物就有你忙的了.

标签 魔兽地图怎么样制作触发事件

魔兽rpg制作教程