魔兽制作地图:触发事件

  • 格式:doc
  • 大小:503.50 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

下了大决心才说服自己写,寿命-10年…… 那么废话少说,开始了~~

首先解释TRIGGER的概念,在详细解释前先看这么一个例子:“有一个花园,里面有一只狗,除了这只狗的主人以外,任何其他人进入花园就会被狗咬。”

不难看出这个例子一共由2大部分组成,1个是参与者,1个是事件。

先看看参与者是哪些,也就是如果要让例子里面的事件发生,必须有哪些东西。首先,事件发生的场地是花园,其次事件的主角是人,最后配角是狗,当然主角配角什么的各位也不必搞那么清楚,只要知道这个事件的参与者是花园,人,狗就可以了。

接着是看看发生了什么事件,分几个步骤,首先如果没有人进入花园就什么也不会发生,那么整个事件的开端就是一个人进入花园。接下来即使有人进入了花园,但是如果那个人是狗的主人,那么狗也什么都不会做,所以发生“狗咬人”事件的必要条件就是进入的人不是狗的主人。最后,如果以上2点都满足了,那么进入的人就会被狗咬啊那个被狗咬(狗:嘿嘿,没错,被咬~),所以这个事件的结果就是狗咬进入的人。

通过以上的例子,大家应该看出来,一个事件是由参与者来执行的,而事件本身是由开端,必要条件,结果3部分组成的。

好了,回到上面的例子,在WE(World Editor-世界编辑器)里面,一个事件通常被成为一个trigger(触发),而参与事件的东西称做object"对象“ 而事件的开端被称为event“开端”,必要条件称为condition“条件”,事件结果被称为action“动作”。那么现在上面那个例子就可以写成这个样子了:

events

一个人进入花园

conditions

进入的人不是狗的主人

actions

狗咬进入的人

现在根据上面这个改造版的事件来说明一个trigger各部分的具体含义,首先在events 中出现了“人”和“花园”2个object,在WE中,类似“人”这种object,被称做unit“单位”,在魔兽中,步兵啊,生命之树啊,恶魔猎人啊,统统属于unit这个类别。而说到花园这个东西,首先要明白“人”进入的是1个区域,而这个区域在以上例子里面就是这个花园,所以花

园,峡谷,房间或者什么都没有就一片空地等类似的让unit可以enter“进入”的玩意,被叫做region“区域”。

所以上面的event现在可以写成:

a unit enters REGION_花园(一个单位进入“花园”)

其次来看看condition:“进入的人不是狗的主人”,这在WE里面是一个单位的判断,也就是说看看entering unit“进入的单位” 到底是不是狗的主人这个特定的单位,那么这个condition就可以写成这样了:

entering unit not equal to UNIT_狗的主人(进入的单位不是“狗的主人”)

最后来看看action部分——“狗咬进入的人”,那么这句话的具体含义就是给狗下达了一个命令,这个命令的目标是“进入的单位”,命令的内容是“攻击”。所以这个action应该写成这样:

order UNIT_狗to attack entering unit(命令狗攻击进入的单位)

最后把以上3部分综合起来,就成了这样的:

events

a unit enters REGION_花园

conditions

entering unit not equal to UNIT_狗的主人

actions

order UNIT_狗to attack entering unit

那么让我们在WE里面实现上面这个trigger吧~~

在WE里按F4打开trigger编辑面板,把Initialization-Melee Initialization这个trigger里面除了的Melee game-Use melee time of day(for all player)这个actions以外的所有其他actions全部删除,那些actions 是为melee设计的,在目前我们要做的地图里面没用。接着在如图所示地方点鼠标右键,在出现菜单中选择new trigger来创建一个新的trigger。

新建好的trigger会自动命名为untitled trigger 001,你可以通过点击—F2的方法修改名字。然后在右下的那个大框里面点鼠标右键,选择new enevt,然后选择unit-unit enter regions,这时候看见的应该是下图所示:

注意图中标示的位置,在那里我们要选择一个区域,这个区域相当于“花园”,点击红色的region ,接着在跳出的面板中点击select a region,接着会跳回地形编辑界面,按一下空格键使区域面板左上的那个方形按钮处于按下的状态,按住鼠标左键并且拖动鼠标在地图上拉出一个方形的框,然后放开鼠标左键,如图所示:

这个时候一个区域就创建好了(直接打开区域面板的方法是在地形编辑界面中按R),按下空格使区域面板左上的那个方形按钮处于弹起状态,点一下刚才创建的区域区域,这样就在event中选定创建的区域了,如图:

点击equal to 将之改为not equal to

点击value ,再点select a unit,在出现的单位面板中选择山丘之王,在地图上点一下创建一个山丘之王(注意,按ctrl+R打开查看region的功能,确保山丘之王没有被放在刚才创建的region-"HuaYuan"里面),然后按下空格关闭创建单位,再点一下创建好的的山丘之王,这样就在condition里面选中山丘之王了,如图:

连续点OK2次,这时候的condition应该是这样的:

conditions

(Entering unit)Not equal to 山丘之王0000

山丘之王后面的数字是单位的编号,不用去管它。这时候conditions也创建完毕~~呼呼,好累,打字手打肿了……

最后只有actions啦,有了以上的经验,我就不那么详细介绍了,过程是这样的:new action - unit - issua order targeting a unit - o rder “幽灵狼”(和山丘之王创建方法相同,只不过创建在“HuaYuan”内而已)to Attack Entering unit。这样创建好的action应该是这样:

actions

Unit - Order 幽灵之狼(等级1)001 to Attack (Entering unit)

最后,在unit editor里面把山丘之王的名字改成“主人”,幽灵狼的名字改成“狗”,再把“HuaYuan”这个区域铺上草,在区域外面放些unit就ok啦(打开unit面板的快截键是U),按ctrl+F9测试一下吧~~,怎么样除了“主人”以外的所有unit进入“花园”都要被“狗”K吧。遇到什么问题参照给出的演示自己修改吧~

相关主题