心灵终结3.3.6地图编辑器萌新教程第4篇:触发的关联对象
上一篇中我们讲了触发的基本原理。打开触发编辑器,你会在“触发选项”中看到一个叫做“关联触发”的选项。在本篇开头首先声明,这和我们本篇的主题没有关系。我们本篇的主题是“触发的关联对象”,不是关联触发!不是关联触发!!不是关联触发!!!
什么是触发的关联对象?
如果说“触发”是“如果怎么样,就会怎么样”,那么触发的关联对象就是:“如果谁怎么样,就会怎么样”或者“如果怎么样,谁就会怎么样”。
首先说明,并不是所有的触发都有关联对象。一些触发本身的事件描述就已经说得很清楚了,例如“禁止玩家输入”;还有一些事件依靠参数也可以将整个事件说清,例如前一篇使用的“科技类型不存在”,设置参数就相当于说明了“哪一科技类型”。但还有一些事件,只靠事件描述和参数设置还无法将整个事件确定下来,例如结果14:更改所属方。参数为所属方。而设置触发后,我们并不知道该事件是将“哪一建筑或单位”更改到相应所属方,而在事件描述中出现了“关联对象”一词,这说明我们在写了这个触发之后还要设置这个触发的关联对象来说明“谁”会被更改所属方。
触发的关联对象分为三种:地图上已有的建筑和单位、作战小队和地图上的一个单元格。作战小队我们会在后面讲解,这一篇先讲另外两种。
设置地图上已有的单位和建筑为触发关联对象的方法:双击单位或建筑,在最下面可以看到“关联标记”的选项,选择要关联到这个单位或建筑的触发即可。
设置地图上的单元格为触发关联对象的方法:有两种。第一种是将触发写好后点击编辑器的“放置于地图”,然后点击要关联的单元格位置即可;第二种是在左边选择“单元标记——建立单元标记”,点击要关联的单元格,然后选择触发即可。建立成功后,你会看到单元格上有一个红色圆圈里面有一个黄色十字,被称为“单元标记”。注意:单元标记是将“单元格”关联到触发上,而不是将这个单元格上的单位或建筑关联到触发上,不会随这个单元格上单位的移动或被摧毁而移动或消失。
一般能以单元格为关联对象的事件只有两个:“条件1:进入事件”和“条件59:进入或飞越”,参数均为所属方(这与“触发选项”里的“所属方”没有关系)。这两个条件是指:当所属方有地面单位进入(或者空中单位飞越)所标记的单元格时触发结果。其中条件1不包括空中单位飞越而条件59包括。
条件59一般用不到,有两个原因:一是空军飞行不受地形限制,如果要保证这个触发能够起效,可能需要从地图一端到另一端全部设置上这个触发,非常麻烦。二是这个触发会将伞兵运输机、侦察机等单位也包含在内,比如本身是想让玩家的部队进入某一区域时进行伏击,结果玩家用一个侦察机把伏兵招出来了,这显然是不合理的。所以条件59只在特殊场合下有用。
而条件1用得就非常多了,尤其是路线比较固定的渗透任务,例如玩家即将进入危险区域时触发警报,又比如在我的自制任务第一关中,当货轮即将突破防线时触发警报,到达最左上角时判定任务失败(这需要把所有货轮单独设置一个所属方)。

在设置单元标记时,一般来说需要将相邻的一排单元格都设置为同一个触发的单元标记,这样只要单位经过此处,不论是踩进哪一个单元格,都会执行这一触发。要注意在红警中,横向和纵向的两个看似“相邻”的单元格其实并不相邻,单位可能从两个单元格之间穿过从而不触发本该触发的结果,如下图:

除了关联到单元格上之外,“进入事件”这一条件也可以关联到建筑和单位上。当参数所属方的单位进入关联的建筑或单位时触发相应结果。例如若关联到建筑上,通常可以用于工程师占领或间谍渗透之类的任务,但这个条件无法区分这两种情况,比如说如果任务目标是占领敌方的战车工厂,但本关中玩家可以生产间谍,那么“进入事件”就不宜作为任务完成的判定条件。再比如,在原版战役苏军第10关“残兵败将”中,任务目标一是占领作战实验室,完成任务的触发判定是“进入事件”,关联对象是实验室,并且在占领实验室的任务一旦完成,实验室被摧毁后不算任务失败。在常规操作下,能进入实验室的只有工程师。然而,这个地图有一个彩蛋:在地图右上方可以找到一个心灵突击队,而心灵突击队对于建筑的攻击方式是像原版谭雅一样进入建筑并安置C4,这样导致了一个bug:命令心灵突击队炸毁作战实验室,在心灵突击队进入实验室安装C4的一瞬间判定任务目标一完成,然后实验室炸毁,但不会判定任务失败。当然,在心灵终结3中谭雅、海豹等攻击建筑时只是靠近建筑安装C4而不会进入建筑,所以也就不会存在这样的问题了。
“进入事件”也可以关联到载具单位上,例如IFV,当步兵单位进入IFV时也算“进入事件”。经试验,在心灵终结3中,步兵进入IFV、运兵船和运输机,步兵进入战地情报局,步兵驻扎建筑物,步兵和载具进入回收站都算“进入事件”;坦克进入坦克碉堡不算“进入事件”,最奇怪的是:载具进入运输艇不算“进入事件”。
要注意的是,“进入事件”只能限定进入的所属方,无法具体要求是哪一个单位进入,所以在使用这一条件时,一定要考虑这个触发是否一定能够达到预想的效果,是否可能会有其他单位“进入”关联对象。
关联对象可以出现在一个触发的条件或结果中,例如条件中有“7:被任一所属方摧毁”“48:被任何事物摧毁”,结果中有“14:更改所属方”“32:摧毁关联对象”“60:变卖关联建筑”等。在此主要讲讲条件7和48.
在上一篇中,我们曾用“所属方不存在科技类型”或者“科技类型不存在”这样的条件来表示某建筑被摧毁,我们也可以用触发条件7和48来实现,然后将要摧毁的建筑关联到该触发上。不过要注意:条件48是“被任何事物摧毁”,也包括工程师占领。例如盟军第二关“鹰击长空”中的任务目标是:占领并保护空军学院。不论空军学院在占领前被玩家摧毁或在占领后被敌军摧毁,都判定为任务失败。这样的任务目标,失败条件不能使用条件48,否则当玩家占领空军学院时就会判定任务失败。而条件7“被任一所属方摧毁”则不包括工程师占领,但这个条件的判定也比较奇怪。首先这一条件的表述是有问题的,其详细描述为:“当关联对象被摧毁时触发此事件。间接伤害或友军开火造成的摧毁不包括在内。”(心灵终结3.3.6地图编辑器的描述,红警原版、尤里的复仇地图编辑器描述可能不同。)但经试验,这一条件与伤害来源是否为友军没有关系,甚至自己强攻自己也可以触发该事件。“间接伤害”的意义也没有说明,经测试,光棱坦克的溅射伤害摧毁关联对象也可以触发该事件。然而,确实在一些情况下,关联对象被摧毁了却不会触发此事件,就是不计入“摧毁数”的摧毁。在遭遇战中用这些方式摧毁了敌军单位,不会使自己最后统计表上的“摧毁数”增加,例如MADMAN爆炸(但自爆卡车爆炸和云茹的地锤是可以的)、辐射兵部署后的辐射致死(但靠近辐射根除者后被根除者身上发出的辐射杀死是可以的)。具体情况无法一一列出,所以该条件也请谨慎使用。
一般来说任务中要求被摧毁和保护的对象都是有限的,很多时候是唯一的,并且无法再次生产或建造(应该不会有任务让在一群美国大兵中杀死一个特定的美国大兵),所以一般使用“条件82:所属方不存在科技类型”就可以解决问题。例如玩家要保护两个苏军建造厂,那么就可以使用条件82,参数“科技类型”选苏军建造厂,“数值”填1,表示数量小于等于1时触发该事件。不过,如果不同的建造厂被摧毁后产生不同的结果,例如需要将镜头立即居中到被摧毁的建造厂的位置,那么条件82就无能为力了,此时就只能看情况用条件7或48了。
最后,大家看到这里可能已经发现两个问题:第一:单元标记、单位、建筑只能关联到触发上,而不能具体关联到该触发的哪一条件或结果上。第二:一个单元标记、单位、建筑只能关联一个触发。因此,大家可能会疑惑下面的触发如何实现:
1、当进入建筑A时,变卖建筑A;
2、当进入建筑A或摧毁建筑B时,触发相应结果;
3、当满足条件时,变卖建筑A且建筑B更改所属方;
4、当进入建筑A且摧毁建筑B时,触发相应结果;
5、当进入建筑A时,变卖建筑B;
6、一个建筑或单位同时需要关联到触发1和触发2
上面的1、2和3目前可以解决,方案如下:
1:条件:进入事件
结果:变卖关联建筑
直接将该触发关联到建筑A即可。
2:分成两个触发:触发1:当进入建筑A时执行结果;触发2:当摧毁建筑B时执行结果。
3:分成两个触发:触发1:当满足条件时变卖建筑A;触发2:当满足条件时B更改所属方。
而问题4和5会留到之后讲解,问题6需要涉及关联触发(对,就是本篇一开头说的那个),而对于关联触发,我虽然在自制任务中使用过,但目前还没有完全弄明白其中的逻辑。如果我之后能弄明白会给大家讲解。(弄不明白就摆烂)
本篇内容到此结束,下一篇打算讲解触发的类型,再见啦~