由于最近经常打魔兽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"函数将会引用到那个英雄。你不能让这个函数等于其他的英雄。如果你想让某个英雄升级。可以使用这个方法:使用其他的方法检测这个英雄(例如:事?quot;Unit - Player-Owned Unit Event" 或者条件"Unit-Type Comparison"),然后对这个英雄设置动作,诸如:"Hero - Set Level."

预先设置

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

数值

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

魔兽争霸3的触发器编辑很有意思相关推荐

  1. 不再有神的概念,将所有存在称之为文明,这很有意思

    不再有神的概念,将所有存在称之为文明,这很有意思 宇宙7级文明到底有多恐怖?科学家:不再是生物,宇宙创造者 2019-04-29 23:17 未解三分钟 标签: 宇宙文明 地球 科学 以前的科学家认为 ...

  2. 杭州有什么「鲜为人知但很有意思」的景点?

    杭州有什么「鲜为人知但很有意思」的景点? 杭州有什么「鲜为人知但很有意思」的景点? posted on 2016-08-29 13:06 lexus 阅读(...) 评论(...) 编辑 收藏 转载于 ...

  3. oracle排序特别慢,Oracle 排序是件很有意思的事

    以下的文章主要是对Oracle排序中的几种常用排序的介绍,你会发现Oracle 排序是一件很有意思的事,以下就是文章的具体内容的描述,以下是文章的具体介绍,望你浏览完以下的内容会有所收获. 按拼音排序 ...

  4. 计算机冷知识科普,科普冷知识:6个很有意思的冷知识,不求有用,但求有趣!...

    原标题:科普冷知识:6个很有意思的冷知识,不求有用,但求有趣! 冷知识分享,不求有用,但求有趣. 01 憋着的屁不放的时候,屁会被肠壁吸收收进入血液,于是肠道里的气压消失了, 然而屁并没有消失,它只是 ...

  5. 7个小众却很有意思的工具推荐,每一个都是大宝藏!

    作为一个工具控,自己也体验了上百个软件和网站,今天给大家推荐7个小众很有意思的工具,喜欢的话记得点赞支持哦~ 1.正版中国 正版中国是一个分享正版软件限时免费信息的网站.有很多优质的正版软件会做一些限 ...

  6. 一个很有意思的问题: 揭示了计算机程序问题的一般处理思路

    2019独角兽企业重金招聘Python工程师标准>>> 一个很有意思的问题: 揭示了计算机程序问题的一般处理思路 === 问题标题: 如何统计汉字的字数? 问题内容: 我想统计: & ...

  7. Java异常处理机制很有意思

    版权声明:欢迎转载,请注明沉默王二原创. https://blog.csdn.net/qing_gee/article/details/43015379 前言:在网络上看到一篇<深入理解Java ...

  8. 工作214:结构 vue操作一个很有意思的报错 [Vue warn]: You may have an infinite update loop in a component

    结构 vue操作一个很有意思的报错 [Vue warn]: You may have an infinite update loop in a component render function. 代 ...

  9. 00003-回文数的判定-leetcode-解法不唯一,1.reverse最简单,2.数学方法很有意思

    回文数的判定 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-number 著作权归领扣网络所有.商业转载请联系官方授权, ...

最新文章

  1. 文件分区格式化及挂载
  2. 重新分区_手机DATA重新分区教程(超详细)
  3. 「镁客·请讲」摩簦伞易新宇:对共享雨伞的不同理解,让他们玩法也和他人不同...
  4. 用一个栈实现另一个栈的排序
  5. Struts2.0第三章(文件上传、ajax开发、json、Fastjson、Jackson、注解开发)
  6. js与c语言效率_JavaScript控制流及关键字与C语言之比较
  7. word List39
  8. 表达式求值(二叉树方法/C++语言描述)(二)
  9. 贪心——今年暑假不AC(hdu2037)
  10. LeetCode 237. Delete Node in a Linked List
  11. windows 编写的硬件驱动_黑科技or大势所趋?谈谈手机GPU驱动升级那点事
  12. Win连接android打印机,教你用Android/Iphone/MacWindows和群晖实现无线打印
  13. 【矩阵论笔记】Schmidt正交化、标准正交基
  14. PS-第五天-图层样式
  15. Ubuntu 16.04静态IP设置
  16. mac下的insert键
  17. 【项目部署】使用Jenkins一键打包部署前端Vue应用
  18. Ubuntu20.04 tcp调试工具mNetAssist安装
  19. 静态代码分析工具汇总
  20. 【转】软件测试相关的63个国外站点

热门文章

  1. 一图胜千字:科研论文插图/数据处理和图表制作学习会(2019年12月27-29日 上海)...
  2. 腾达ac23虚拟服务器怎么设置,腾达(Tenda)AC23 如何设置上网? | 192路由网
  3. 综合办公系统(OA+HR+CRM)
  4. 高速网络芯片 入驻移动基站
  5. HDU2717 Catch That Cow(bfs)
  6. A850/A870 TWRP Recovery简繁中文版编译及修改教程[2013.6.16更新]
  7. Excel中的位移函数(offset)
  8. 通过FTP Server加载VxWorks映像
  9. Matlab代码:绘制超二次曲面(超椭球体)
  10. 商业模式-名词解释10