翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 9360|回复: 25

[教程] 触发优化设计

[复制链接]

313

主题

19

精华

3万

积分

圣徒

耕战
4847
鹰币
80
天龙币
0
回帖
6213

特级翔鹰勋章一级嘉禾勋章一级帝国勋章第一届火箭筒杯最佳战役第一届火箭筒杯最佳平衡第一届火箭筒杯最佳娱乐雄鹰勋章

附庸关系0
发表于 2006-2-26 21:05:43 | 显示全部楼层 |阅读模式
许多战役都有成百上千的触发,如何在保证效果的同时减少工作量?这需要对触发进行“优化设计”,现在我把自己一点点肤浅的心得写出来,供大家参考。

一 触发[条件]与[效果]的含义以及[激活/关闭触发]的用途

最近见到许多朋友在制作触发的时候,常常出现滥用[激活/关闭触发]效果的情况。这是一些非常简单的问题,但因为这样不会造成BUG等严重错误,只是浪费时间、整加校对修补触发的烦琐程度而已,大家并不重视,是不少新手常犯的错误。

譬如作者希望玩家杀死敌人BOSS后就会得1000黄金,常出现如此的触发:

触发1 开启 不循环

条件0 杀死敌人BOSS

效果0 激活 触发2

效果1 关闭 触发1

触发2 关闭 不循环

效果0 送出聊天 玩家1 “你得到1000黄金!”

效果1 激活 触发3

效果2 关闭 触发2

触发3 关闭 不循环

效果0 贡品 盖亚 ——> 玩家1 1000 黄金

效果1 关闭 触发3

这个触发的确可以达到预期的效果,但是非常的累赘麻烦。怎么说呢?这样的效果,我们只用1个触发就能做到:

触发 开启 不循环
条件0 杀死敌人BOSS

效果0 送出聊天 玩家1 “你得到1000黄金!”

效果1 贡品 盖亚 ——> 玩家1 1000 黄金

相比之下是否简洁了很多?可为什么许多新手用的都是第一种方法呢?那都是因为对触发事件[条件]和[效果]的定义不清楚造成的。

现在详细地说一下:

众所周知,触发由条件(状况/“反对”)和效果组成。触发按照达成条件执行效果的规则运行,而执行也可以理解为激活(或开启)。你希望游戏中满足什么样的条件出现什么样的效果,只要是同时的,就可以放在同一个触发里面,不需要分开后再用效果去激活。一般来说,如果你用[激活触发]效果开启一个没有任何条件的触发,那么你就是多此一举了,你完全可以将这两个触发合并成一个触发。

当然,也有将无条件触发独立出来,用其他触发激活的时候。一般来说,存在两种情况:

(一)触发中效果非常多,需要将效果分类,以便日后查看修改时,可以分成几个无条件触发,由第一个触发激活。

(二)多种条件都能引起同一效果,而且效果非常繁杂时。比如说一个效果是利用加血不爆给全军加血,因为各种士兵生命上限并不一样,加之加血不爆本身就比较复杂,所以效果会非常繁。如果我们希望输入数字、得到遗迹、杀死敌人将领、得到援军等都可以加血,如果满足每个条件都从头到尾地做出加血效果,会非常累人,而且容易出错,即使利用AOKTS的复制功能,日后修改时也必须每个触发修改一遍,非常耗时。而这时如果我们巧妙地使用[激活触发],只需要一个无条件的纯效果触发,只要达成可以加血的条件,就激活它,一切就都化繁为简了。 现在,再回头看看开篇例子中的[关闭触发]效果,非常多余。由于触发本身不循环执行1遍后就会关闭,不必要再动手关闭自身。 一般地,[关闭触发]效果有以下三种用途: (一) 关闭循环触发。 (二) 关闭已经被激活(或本来就开启了),但条件尚未触发效果(即条件未达成)的触发。 (三) 移除任务栏的指示。显示任务的触发在条件达成后,任务会被划上一条线,但是不会从任务栏中消失,如果你希望移除这些文字,用其他触发关闭那个触发。 总之,大家一定要理解好满足条件则触发效果的原则,这样可以省去不少麻烦,检查战役触发时也更一目了然。这是熟练掌握触发技巧的根本前提。 二、[激活/关闭触发]效果的等效替代 前面说了[激活/关闭触发]的一些用途。在比较高级的触发体系中,这两个效果有时候用起来会非常力不从心。 举个例子,如果我们将战役分成几个部分,而每个部分都有非常多的相应的配套触发,在其他部分中这些触发必须被关闭,否则会造成混乱时,我们要是在每个部分前激活相应触发,这个部分结束后再关闭它们的话,会非常麻烦,如果有几百个触发需要激活关闭,那会累死人的。而且非常容易出现疏漏和错误,修改起来也比较麻烦。 这时候就应该想到等效替代法了。我们不要死抓住这两个并不好用的效果。如果我们在每部分开始时,在地图边界一个专有位置建立一个地图启示者,然后该部分的每个触发前加一个[区域中的物件]检测这个地图启示者,就能让这些触发听话地运作起来了。同样,在该部分结束时将地图启示者移除掉,它们就会马上停止运作。由于不用每新建一个触发,就把窗口拉上去加一个激活效果,也不用把触发状态设置为关闭,出错的几率就大大降低了。 怎么样,等效替代很好用吧?还不止如此呢。再举个例子,一个部落要求你送20匹马给他们,每将一匹马送到他们营地的马厩就会被移除,直到20匹马完成任务。如果我们用激活触发,会是这样:

触发1 开启 不循环

条件0 区域中的物件 玩家1 马 数量为1

效果0 移除物件 该区域 玩家1 马

效果1 激活触发2

触发2 关闭 不循环

条件0 区域中的物件 玩家1 马 数量为1

效果0 移除物件 该区域 玩家1 马

效果1 激活触发3

触发3 关闭 不循环

条件0 区域中的物件 玩家1 马 数量为1

效果0 移除物件 该区域 玩家1 马

效果1 激活触发4

…………

触发19 关闭 不循环

条件0 区域中的物件 玩家1 马 数量为1

效果0 移除物件 该区域 玩家1 马

效果1 激活触发20

触发20 关闭 不循环

条件0 区域中的物件 玩家1 马 数量为1

效果0 移除物件 该区域 玩家1 马

其他效果:完成任务的相应效果

老天,真是烦死了,如果是100匹马……晕倒…… 哪用这么麻烦,两个触发就好啦:
触发1 开启 循环

条件0 区域中的物件 玩家1 马 数量为1

效果0 移除 该区域 玩家1 马

效果1 建立物件 盖亚地图启示者 地图角落

触发2 开启 不循环

条件0 区域中的物件盖亚地图启示者 地图角落 数量为20

条件0 关闭触发1

其他效果:完成任务的相应效果

同样,你用贡品效果和堆积属性配合也可以。贡品可以加可以减,而且数量自定,而建立物件只要用移除,就全部没有了,所以进贡是比较高档的。但因为资源和玩家数有限,如果不需要加减运算,一般不用资源法,太奢侈啦:P
EDIT - 地图启示者标记也可以进行减法运算。启示者本身拥有1点生命上限。只要在建立地图启示者的效果之前加一个“加地图启示者生命上限1”的效果,在进行减法时用触发扣去相应的生命上限即可,扣多少上限,就是移去多少个启示者。同样,旗帜等也可这样用。 原理很简单,不多说了,慢慢理解吧。 对于检测启示者的确切数量,可以使用正向触发+逆向三联触发,也可以给每一个变量建立两组启示者,然后用骑士不怕长枪兄的可逆触发。 (编辑于2007年2月)
触发还可以有许多可以取代激活效果和关闭触发的,比如任务目标+将指定物件带到指定区域等,各有各的用处,大家多多发掘。 三、触发的命名及整理 一般来说,大型战役的特点就是触发复杂、数量庞大,而没有一定量的触发支持,战役是很难成为精品的。复杂数多的触发容易出现BUG,也常常需要修改,这就要求合理地给触发命名及整理。现在说一些个人的心得,权当抛砖,望诸位藏玉者加入共享:) (一) 分隔符: 触发是按照战役中的任务制作的,一般来说,每个任务会有相应的配套触发、触发系统,同一个任务的触发会聚集在一块。我们可以把不同的任务的触发用一个没有任何内容的红色出发分隔开,用“==========”之类作为触发名称,最好在中间写上任务名称。这样修改触发时就能较快地找到你要找的任务的触发区。 而任务区之下可能会有一些不小的触发系统。比如说连续的对话等,可以用“---------”之类分隔开。 (二) 空格: 大家都知道,触发名称为空,取消选择后,你就不能再选到它了,除非它是第一个或最后一个触发。空触发也是不错的分隔符,大家看着用,不多说了。 这里要讲的是适当地给有用触发设置空格。一些小的触发系统(只有几个触发),如果使用分隔符,反而会觉得太稀疏,而且容易把其他触发挤开,反而查阅起来更麻烦,我们可以这样处理:该系统第一个触发名顶格,其余触发名开头空两格。比如逆向三联触发,第一个激活其他触发的头触发顶格,剩下两个空两格,看起来就一目了然了。 (三) 备用触发 大家做战役的时候有没有碰到这样的问题:突然觉得之前完成的一个部分需要增加一个触发,结果只好新建一个触发,然后狂点“↑”把触发弄到相应的位置,甚至干脆不调整位置,放在原地? 这样很容易把触发弄得混乱,新建的触发即便移动到正确的位置,其“编号(隐藏属性)”是不会变的,表现在[激活/关闭触发]列表中的位置。如果一个后来补充的触发离相应任务的触发群较远,检查触发、修改BUG时会造成一定的麻烦。[激活触发]没有设置正确,是导致战役断节的常见原因,特别在连续的对话“电影”中更是如此,如果需要激活的触发上一个下一个,顺序混乱,设置[激活/关闭触发]时就非常麻烦,又难找,又容易错。 为了让同任务的触发尽量地靠近,顺序尽量正常,我们可以在做战役时,时不时地留几个空触发作为备用,这样需要的时候就不用调远水救近火了。 (四) 前缀 上面说到触发的编号不会因移动位置而改变,在[激活/关闭触发]列表中查找起来比较麻烦,特别是中文名称的触发,看得头都大。如果我们把建立触发时自动生成的“触发事件 XXX”保留下来作为前缀,那么我们要回头激活/关闭一个触发时,记下它的编号,找起来就像翻书页一样快了。 如果你更勤一些,把“触发事件”四个字删掉,只留数字。这不是为了更美观,主要是你在[激活/关闭触发]列表中,可以直接点键盘上该触发的开头数字来查找,更快得多。 同样,你也可以在每个触发的名字前加上触发名的拼音或英文的头一个字母做前缀,查找的时候就直接点那个字母就好了,不需要再用鼠标慢慢看咧! 不过我比较懒,到现在还没用过前缀:P (五) 括号和触发描述 触发效果中有不少“不可碰”触发,比如含有负数的、对象单位是盖亚特有物件的触发,以及最近狂兄放出的新增触发,都不能重新查看,否则会变成默认状态。我们可以在触发名称中加个括号,写明那一个效果是“不可碰”的,或者干脆写出其内容,比如“效果24 是-100”、“效果10000 是岩石”、“效果2绝对不能碰”等。 内容多的也可以写在触发描述中,当然,你要保证这个触发不会显示这指令,否则你的“备忘录”会在游戏中出现在任务栏上:P (六) 其他 触发的名称/整理还有很多学问,譬如善用AOKTS功能、命名要简明扼要、要符合自己习惯等。
总: 优化触发能让触发更加简明、减少工作量、降低修改烦琐度。总之目的在于提高工作效率,当然,前提是效果不变,如果因为偷懒而舍弃了效果,是得不偿失的。 能研究的东西太多,我写得也累了,就此停笔啦,各位有什么心得都说出来,不要藏着掖着啊`~~~
天行健,君子以自强不息   
    地势坤,君子以厚德载物
回复

使用道具 举报

32

主题

0

精华

198

积分

男爵

耕战
15
鹰币
68
天龙币
0
回帖
378
附庸关系0
发表于 2006-2-26 23:46:20 | 显示全部楼层
<STRONG><FONT color=#0000ff>  分隔符我看不管触发数量多少都能用的上,主要是能像目录一样的方便管理触发。而且,在日后更新和修改时就不必在一个一个找了,一目了然直接找到(在那么多绿色当中红色相当醒目)。</FONT></STRONG>  <STRONG><FONT color=#0000ff> 例子</FONT></STRONG> <STRONG><FONT color=#ff0000> <STRONG><FONT color=#00ff00>XXXXXXXXXXXXXXXXXX</FONT></STRONG>  <STRONG><FONT color=#00ff00>XXXXXXXXXXXXXXXXXX</FONT></STRONG>    </FONT></STRONG>  <STRONG><FONT color=#ff0000>————赌博系统—————(中间加上文字比全是横线更好)</FONT></STRONG>  <STRONG><FONT color=#00ff00>XXXXXXXXXXXXXXXXXX</FONT></STRONG>  <STRONG><FONT color=#00ff00>XXXXXXXXXXXXXXXXXX</FONT></STRONG>  <STRONG><FONT color=#00ff00>XXXXXXXXXXXXXXXXXX</FONT></STRONG>  小小的心得....
很好很强大
回复

使用道具 举报

10

主题

0

精华

99

积分

骑士

耕战
-2
鹰币
5
天龙币
0
回帖
33
附庸关系0
发表于 2006-3-1 08:05:35 | 显示全部楼层
看楼主的帖子很有心得  基本每个人能用简单实现的效果不会选择复杂,只是我们这些新手因为经验问题可能不知怎么去简单,呵呵  我做的那个“征服九州岛”战役,本来有近400个触发,后来自已想通了一此简化方法(未看本帖看),现在简化得只有150条左右(等于重做了全部触发),效果基本没变。  不过我也有些心得,有时不能只图简单,当要复杂时我想还是要复杂的,比如,多个简单触发简化成少几个复杂触发时可能会出现跳出的BUG,另外好像一个触发里的效果不能太多,更不能上下搞乱了。
-------- 海比天蓝
回复

使用道具 举报

2

主题

0

精华

5

积分

扈从

耕战
-2
鹰币
-92
天龙币
0
回帖
203
附庸关系0
发表于 2006-3-3 21:54:08 | 显示全部楼层
简化触发的根本前提是保证效果不变。如果为了偷懒而牺牲了效果的话,那是得不偿失的。  在一个触发里放多个效果不会造成跳出,即便效果在同一个触发里,电脑还是会按造创建效果的先后顺序进行运算的,不会因为瞬时运算量累加过大造成跳出。如果跳出的话,一定是其中某个(或几个)效果的设置有问题。至少我见到的都是如此:)
一锤炸平你~~~
回复

使用道具 举报

67

主题

4

精华

5056

积分

圣徒

耕战
530
鹰币
2173
天龙币
0
回帖
509

三级嘉禾勋章

附庸关系0
发表于 2006-3-8 18:07:50 | 显示全部楼层
<DIV class=quote><B>以下是引用<I>24超人</I>在2006-03-03 21:54:08的发言:</B>
简化触发的根本前提是保证效果不变。如果为了偷懒而牺牲了效果的话,那是得不偿失的。
在一个触发里放多个效果不会造成跳出,即便效果在同一个触发里,电脑还是会按造创建效果的先后顺序进行运算的,不会因为瞬时运算量累加过大造成跳出。如果跳出的话,一定是其中某个(或几个)效果的设置有问题。至少我见到的都是如此:) </DIV>

但是如果一次性影响的单位太多,那就……我的帝国无双II就出过这事,跳出
另加一点:如果一个触发选择了过多部队(选择,不是区域),效果以及触发会变成暗红色。
PS:大智为什么总是喜欢用马甲?
回复

使用道具 举报

313

主题

19

精华

3万

积分

圣徒

耕战
4847
鹰币
80
天龙币
0
回帖
6213

特级翔鹰勋章一级嘉禾勋章一级帝国勋章第一届火箭筒杯最佳战役第一届火箭筒杯最佳平衡第一届火箭筒杯最佳娱乐雄鹰勋章

附庸关系0
 楼主| 发表于 2006-3-12 16:43:39 | 显示全部楼层
无知者说了,最多一次选25个。  但我弄出过40个的,只是不知道怎么弄的,而且很久没有成功过了。  PS:用马甲是因为懒得重登陆,我家两台机,如果你见我用马甲,那基本可以确定我没在用我的“座机”,11
天行健,君子以自强不息   
    地势坤,君子以厚德载物
回复

使用道具 举报

49

主题

0

精华

5577

积分

国王

耕战
1071
鹰币
3
天龙币
0
回帖
374

翔鹰建站十周年纪念章

附庸关系0
发表于 2006-4-8 08:39:24 | 显示全部楼层
我在一个触发里装了50个效果,也没有错误,为什么会跳出???
回复

使用道具 举报

313

主题

19

精华

3万

积分

圣徒

耕战
4847
鹰币
80
天龙币
0
回帖
6213

特级翔鹰勋章一级嘉禾勋章一级帝国勋章第一届火箭筒杯最佳战役第一届火箭筒杯最佳平衡第一届火箭筒杯最佳娱乐雄鹰勋章

附庸关系0
 楼主| 发表于 2006-4-21 17:17:32 | 显示全部楼层
肯定有错误。
天行健,君子以自强不息   
    地势坤,君子以厚德载物
回复

使用道具 举报

132

主题

12

精华

5万

积分

圣徒

耕战
10009
鹰币
1090
天龙币
0
回帖
4763

特级翔鹰勋章一级帝国勋章第二届火箭筒杯最佳战役第三届火箭筒杯最佳战役雄鹰勋章

附庸关系0
发表于 2006-4-21 17:34:43 | 显示全部楼层
我在一个触发里装了50个效果,也没有错误,为什么会跳出???
那即是有錯誤。我的某一個戰役,一個觸發中有254個效果也沒跳出,所以跟多少個效果無關。
You'll never walk alone!
回复

使用道具 举报

132

主题

12

精华

5万

积分

圣徒

耕战
10009
鹰币
1090
天龙币
0
回帖
4763

特级翔鹰勋章一级帝国勋章第二届火箭筒杯最佳战役第三届火箭筒杯最佳战役雄鹰勋章

附庸关系0
发表于 2006-4-21 17:35:22 | 显示全部楼层
我在一个触发里装了50个效果,也没有错误,为什么会跳出???
那即是有錯誤。我的某一個戰役,一個觸發中有254個效果也沒跳出,所以跟多少個效果無關。
You'll never walk alone!
回复

使用道具 举报

49

主题

0

精华

5577

积分

国王

耕战
1071
鹰币
3
天龙币
0
回帖
374

翔鹰建站十周年纪念章

附庸关系0
发表于 2006-4-21 18:29:33 | 显示全部楼层
哇塞!254效果!强!
回复

使用道具 举报

132

主题

12

精华

5万

积分

圣徒

耕战
10009
鹰币
1090
天龙币
0
回帖
4763

特级翔鹰勋章一级帝国勋章第二届火箭筒杯最佳战役第三届火箭筒杯最佳战役雄鹰勋章

附庸关系0
发表于 2006-4-21 23:06:23 | 显示全部楼层
  就是我首個菜鳥作,朋友與敵人。第一個觸發就是了,應該在論壇上的,是第一屆火箭筒盃的作品。
You'll never walk alone!
回复

使用道具 举报

31

主题

0

精华

1807

积分

侯爵

耕战
250
鹰币
857
天龙币
0
回帖
545
附庸关系0
发表于 2006-4-21 23:52:35 | 显示全部楼层
NICK最近没上QQ吗?  跟你说话没反应。
…………
回复

使用道具 举报

313

主题

19

精华

3万

积分

圣徒

耕战
4847
鹰币
80
天龙币
0
回帖
6213

特级翔鹰勋章一级嘉禾勋章一级帝国勋章第一届火箭筒杯最佳战役第一届火箭筒杯最佳平衡第一届火箭筒杯最佳娱乐雄鹰勋章

附庸关系0
 楼主| 发表于 2006-4-23 09:33:55 | 显示全部楼层
谢谢骑士兄`~  编程?输入指令来编触发?我是没弄过(其他游戏的),不过看起来.....可能不够直观吧,比如说定位写坐标就很难搞....  另外,其实战役不一定要很多很多触发,够用就好,尽可能地发挥帝国本色也是一种艺术:)
天行健,君子以自强不息   
    地势坤,君子以厚德载物
回复

使用道具 举报

30

主题

7

精华

1万

积分

圣徒

耕战
2080
鹰币
81
天龙币
0
回帖
297

特级翔鹰勋章一级嘉禾勋章雄鹰勋章

附庸关系0
发表于 2006-4-23 12:37:01 | 显示全部楼层
大智好样!  我看触发到最后还是要像编程一样……  现在虽然有AOKTS帮忙,效率加了,但还是要考虑这问题……

全局通用昵称Rushot
回复

使用道具 举报

阔比多华 该用户已被删除
发表于 2006-4-24 16:42:59 | 显示全部楼层
<DIV class=quote><B>以下是引用<I>尼克</I>在2006-04-21 17:35:22的发言:</B>

那即是有錯誤。我的某一個戰役,一個觸發中有254個效果也沒跳出,所以跟多少個效果無關。 </DIV>
一般我的一个触发里最多15个效果
回复

使用道具 举报

24

主题

0

精华

1824

积分

侯爵

耕战
71
鹰币
1
天龙币
0
回帖
665

十字军勋章

附庸关系0
发表于 2007-2-6 02:57:27 | 显示全部楼层
天,刚才无意翻帖子,今天才知道,原来地图启视者是可以同一区域放置无限量单位的?
哎,有空真要好好学习才行呀,以更好的运用到作品中。
仔细想了想,还好不适合我战役中的程序,要不然!哎,真的要删之重做楼。
只要是正常的效果,一次运行多少效果也没问题的
帝国编辑器中,滚动条是不变的,这样每点选一个就读取一遍触发
随着量的增大,就完全考验机器的性能了,最后就导致你点选困难以至于无法继续制作。
3000以下为佳,哎,现在都10x10的年代了,能做出100个就不错了
骑士说的编程,大智正解是 输入指令来编触发 哈哈,有同感
[此贴子已经被作者于2007-2-7 7:21:27编辑过]

...
回复

使用道具 举报

19

主题

0

精华

9178

积分

国王

耕战
1821
鹰币
123
天龙币
0
回帖
242

二级翔鹰勋章

附庸关系0
发表于 2007-2-6 19:04:35 | 显示全部楼层
学习一下  自己的战役触发就做的很乱
时间一去不复返~就如腐朽的树木无法恢复原样~~
回复

使用道具 举报

313

主题

19

精华

3万

积分

圣徒

耕战
4847
鹰币
80
天龙币
0
回帖
6213

特级翔鹰勋章一级嘉禾勋章一级帝国勋章第一届火箭筒杯最佳战役第一届火箭筒杯最佳平衡第一届火箭筒杯最佳娱乐雄鹰勋章

附庸关系0
 楼主| 发表于 2007-2-8 13:06:09 | 显示全部楼层
<STRONG>EDIT</STRONG> - 地图启示者标记也可以进行减法运算。启示者本身拥有1点生命上限。只要在建立地图启示者的效果之前加一个“加地图启示者生命上限1”的效果,在进行减法时用触发扣去相应的生命上限即可,扣多少上限,就是移去多少个启示者。同样,旗帜等也可这样用。  原理很简单,不多说了,慢慢理解吧。  对于检测启示者的确切数量,可以使用正向触发+逆向三联触发,也可以给每一个变量建立两组启示者,然后用骑士不怕长枪兄的可逆触发。
天行健,君子以自强不息   
    地势坤,君子以厚德载物
回复

使用道具 举报

8

主题

0

精华

42

积分

骑士

耕战
0
鹰币
53
天龙币
0
回帖
142
附庸关系0
发表于 2008-8-18 23:17:33 | 显示全部楼层
这个应该黑体字,最大字号。

原帖由 _CCC_大智 于 2006-2-26 21:05 发表
你也可以在每个触发的名字前加上触发名的拼音或英文的头一个字母做前缀,查找的时候就直接点那个字母就好了,不需要再用鼠标慢慢看咧!
回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国

GMT+8, 2024-4-27 07:50 , Processed in 0.217307 second(s), 221 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

Copyright © 2001-2023, Hawkaoe.net All Rights Reserved

快速回复 返回顶部 返回列表