【触发编写思想】
触发编写不想地图美化,是一种技术性很强的制图技巧,这也就意味着它相较于美化,学习时更加有迹可循,故本节内容将不再对技术性教程可以解决的简单的因果对应触发问题作出讲解。
触发元素(姑且这么叫吧,实在找不到合适的名词Orz...)即为地图内经由一系列相互关联之后,可由某种判定因素激活,最终达成某种效果的系统的组成元件,例如:触发(包括属性、条件、结果)、AI触发、局部变量等,它们之间的关联形式如下图:
(本图只说明各元素之间的联系,具体的对应方式请参加其他教程)
熟悉上图之后,我们便可以通过各种元素之间的相互组合做出一些单一触发无法实现的“黑科技”,这类组合系统我们可以称之为“组合触发”(并不一定全部由触发组成,此处的“触发”指广义上的判定结构)。在此我要强调一点,基础的代码知识也属于触发元素的一环,所以我建议mapper至少要对mod教程进行通读以拓展自己的思考范围。下面我举两个代码知识与触发结合的实例:
例1:特殊单位判定:让玩家通过自身的选择影响触发结果
想要让玩家通过自己的选择来影响触发,最常见的方式是通过触发条件“单位被选取”+局部变量来实现,但因其极易导致剧情出戏而具有一定的适用范围,在此我们将讲述另一种实现方式。
想要让玩家自己选择触发的结果,重点便是如何实现“玩家选择”这个过程,查找触发条件后,我们发现“单位被选取”“进入事件”以及单位被攻击或摧毁类(包括受到伤害、渗透、科技类型不存在等)的触发条件可以由玩家通过自己的行为来实现触发,而“科技类型存在”这个触发条件却总是被人忽略。其实只要稍加思考,我们便可以获得另一种方案:ini新建一个用来激活触发的特殊单位,然后由玩家来选择建造即可实现我们的目的。(例如:魔王的宫殿)此方法联系单位建造条件以及高分量AI触发后亦可作为人类玩家和AI玩家的区分判定。
例2:要求达成某一条件后给予玩家一定金钱
我们都知道,编辑器中并不存在“给予...参战方金钱...”这样的触发结果,经过对各种可能性的思考之后我们将目标锁定在代码“ProduceCashStartup=”(建筑物被占领后获得金钱...),我们的方案就此完成:判定条件——更改带有“ProduceCashStartup=”的特殊建筑所属方为目标参战方,剩余的工作便是对各项参数的调整,使效果符合我们的预期。(此处不使用工程师小队占领目标建筑的原因是工程师小队的脚本对人类参战方无效)
由于触发的可用参数众多,所以触发的灵活性无疑是所有触发元素(“触发元素”的含义参见前面的名词解释)中最强的,而局部变量的存在更是增强了触发间相互联系的能力,使原本就灵活的触发机制变得更加强大。举个简单的例子:“与”“或”“非”是组合触发中常见的三种判定结构,而局部变量在这三种结构中都担任着联系两个触发的枢纽作用(“或”和“非”中的局部变量一定条件下可用触发结果中的“禁止目标触发”代替)。局部变量对于构思“黑科技”组合触发的重要性不言而喻。
本节总结:
触发编写的基本思路,即:熟悉触发元素(基本要求)——提出触发效果——设想可能有关的元素——分析元素关联性——提出方案——调整参数