下次自动登录
现在的位置:
& 综合 & 正文
魔兽争霸3的触发器编辑很有意思
由于最近经常打魔兽3C,又对魔兽争霸3的编辑器发生了兴趣!发现其中的“触发器编辑”很有意思。给地图编辑上各种触发器就可以实现很多功能,想必魔兽中的RPG等等很多东西都是的用这东西做的。现在我开始考虑把这种模式应用到MMORPG中。找到了一个中文的编辑器说明书,转贴到下面。---------------------------------------------
触发器编辑器是地图编辑器中最高级和最强大的部分。在触发器控制器中,用户可以控制游戏中所有的效果。这是一种非常容易理解的简单语言。但是却足够强大到足够高级用户使用。它可以通过使用键盘上的"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"函数将会引用到那个英雄。你不能让这个函数等于其他的英雄。如果你想让某个英雄升级。可以使用这个方法:使用其他的方法检测这个英雄(例如:事?Unit - Player-Owned Unit Event" 或者条件"Unit-Type Comparison"),然后对这个英雄设置动作,诸如:"Hero - Set Level."
预先设置是编辑器内建的一种数据。你不需要知道,除了使用它门。而且无法改变它们。例如:"Player 1 (Red)."
还有一种你经常能够修改的区域是数值区域。这些区域允许你直接输入信息。例如这些区域会出现在动作"Game - Text Message (Auto-Timed)"中。如果你点击蓝色的下画线文本。你就可以打开一个字符窗口。窗口的最后一个选项是数值。如果你想输入一个简单的信息,直接输入即可。无需再新建一个变量或者函数。
&&&&推荐文章:
【上篇】【下篇】