简单的可运行战役地图制作——2.4基础的小队和触发写法
在讲解具体内容之前,我们先来了解用到的五个工具:动作脚本、特遣部队、作战小队、触发编辑器和标记。

这四个并排起来和我的电脑屏幕差不多宽,在开始编辑小队和触发之后一般放在地编下面的区域(不对地形进行编辑时)。
首先我们先新建一些脚本、特遣部队、小队和触发,标记……先不管它。




我建立的顺序是触发-动作脚本-特遣部队-作战小队,我们来看它们的名字,都是一个共同的结构:

都是由01000000(一串数字)和(New trigger)括号里的内容构成。前面的数字是触发(以触发为例)在地图里的编号,后面的内容是作者编写的名称,用来区分各个触发,标注它们的作用。按照我建立的顺序,我们可以看出来这四类都是从01000000开始,每次新建立都会使编号+1,这里的动作脚本就是01000002,特遣部队01000003,作战小队01000004。这个时候我们会发现,01000001不见了,其实它在标记这里:

我们每次新建一个触发时会用掉两个编号,一个对应触发(这里是01000000),另一个是这个触发的编号+1,对应标记(这里是01000001)。有些触发的结果需要标记来选择生效对象,有些则不用,在初级阶段我们不需要改动标记的内容,建立触发时自动建立的标记已经足够使用了。
实际上,脚本和触发的编号在我们使用地编时并没有多少帮助,但是,如果我们要直接修改地图文件,这些编号就会成为我们确认修改内容的依据。关于地编内容和地图文件内容的对应关系会在后面的章节详述,接下来对四个项目进行分条陈述。
动作脚本:脚本类型这里可以选择我们已经建立的脚本,在下面具体编辑这个脚本。它下面的添加和删除可以新建动作脚本或删除现在选择的整个脚本。
名称是作者自由编辑的内容,用来标记脚本的用途,自己能看懂就行。
行为一栏是动作脚本的具体内容。脚本会从0号开始自动向下执行每一条对应的内容。它下面的添加可以在脚本最后增加一条新的内容,删除则会删除脚本内当前选中的这一条内容。
行为类型是当前选中的这条脚本的大致分类,比如攻击某些敌人,攻击某个点,移动到某个点,以及分散、更改变量、玩家胜利失败等特殊效果。目标是对行为类型的补充,决定了攻击步兵还是载具还是建筑,以及具体攻击哪个点或者移动到哪个点,更改哪个变量等具体内容。有的行为类型没有对应的目标值,有的行为类型会使目标这一条的文本变为路径点、行为参数、未使用等,但本质是一样的。说明是对行为类型的文字注释,大部分行为类型通过说明即可明白用途,有些需要实际使用来确定效果。例:

这个脚本编号是01000002,名称是New script。里面有三条内容,现在选中的是第三条。第一条的行为类型是攻击,目标是5,说明是攻击某类目标,意义是让小队自动寻找载具目标攻击。第二条的行为类型是闪烁,行为参数是60,说明是闪烁小队一段时间(参数为闪烁的帧数),意义是第一条执行完之后让整个小队闪烁60帧(4速下2秒)。第三条的行为类型是脚本转到行号#,脚本行为#是1-攻击,说明是跳转到脚本的第#行,用来循环,意义是第二条执行完之后执行这一条,执行这一条会使脚本开始执行第一条的内容。注意,这里的脚本行为的编号是上面行为的编号+1,可以通过后面的“攻击”来确定是第一条脚本。
特遣部队:特遣部队这里可以选择我们已经建立的特遣部队,在下面具体编辑里面的内容。它下面的添加和删除可以新建特遣部队或删除现在选择的整个特遣部队。
名称是作者自由编辑的内容,用来标记特遣部队的内容,自己能看懂就行。后面的小队和触发名称同理,不再重复。
小组代表单位的分组,-1为默认值,即无分组。游戏内我们可以用Ctrl+数字键对部队进行0~9的分组,这里的小组填0~9与上述操作的效果相同。
特遣部队单位这一栏里是当前选择的特遣部队内部包含的单位,添加可以在最下增加一种部队,删除可以将当前选择的部队种类删除。选择一个部队种类后,下面的单位数量可以修改这类部队的数量,单位类型可以选择这一条代表什么单位。例:

这个特遣部队的编号是01000003,名称是New task force,小组是-1即无分组,包含1个盟军大兵,3个动员兵和2个苏联军犬,当前选中的是1个盟军大兵的内容,可以对它的单位种类和单位数量进行修改。
作战小队:小队类型可以选择我们已经建立的作战小队,后面删除和新建与之前的用法一样,下面是关于这个小队的详细信息。
名称、分组同上,经验等级123分别对应新兵级、老兵级(一星)和精英级(三星)。路径点代表这个小队被调用且没有指定调用位置时会从哪个路径点出现。所属方代表这个小队出现之后属于哪个所属方。动作脚本和特遣部队选择之前讲的已经建立的脚本和特遣部队,代表这个作战小队里的单位种类数量和将要进行的行为。标记可以填入触发标记或无,与触发内容相关。运输机起始路径点是在下面勾选运输机空降后运输机会从哪个路径点起飞。优先权、最多和科技等级可能是与AI触发调用小队相关的量,不使用AI触发时一般保持默认值即可,有时也可以进行修改来达成特殊目的。心控结果即小队内单位被心控后执行的操作(注意不是小队内可以进行心控的单位心控敌人后敌人的操作)。下面选项里一些常用内容在此列出,余下的可能会在后面章节补充。
运输机空降:将小队内单位装入对应阵营(所属方相关)的运输机内,从起始路径点起飞到目标路径点(上述路径点,或触发调用时指定)。特别地,如果运输机起始路径点为None,那么运输机会从某方向的地图边界起飞(参考对应所属方的地图边界一条)。
自动创建(AI重组)和小队成员可被AI重组:当你不是将小队从地图上凭空刷出来而是要求AI从现有单位中建立或新造的时候,自动创建(AI重组)会将地图上可被AI重组的单位重组入小队,小队成员可被AI重组可以使这个小队可以被AI重组。这两条的效果与动作脚本执行情况和单位状况有关,后面举例中可能会给出说明。
装载小队:当小队凭空刷出时,如果小队对应的特遣部队中有能装载其他单位的单位,所有单位将会无视装在条件被装在这个单位里(如果有多个这样的单位,装载优先级尚不清楚)。另外,只会进行一级装载,不会出现A单位被装载入B单位,B单位再被装载入C单位的情况,而是会变成A、B单位都被装入C单位的情况。
忽视阻拦:小队会专注于执行动作脚本而难以被其他情况打断。举例:一个小队正在执行巡逻至路径点的脚本,路上遇见敌人会主动攻击,而加上忽视阻拦后可能不会攻击而继续向路径点移动。
触发编辑器:选择当前触发可以选中一个触发,新建触发会按编号顺序向后新建一个空的触发和标记,删除触发可以删除当前选中的触发和标记,放置于地图暂不清楚作用,复制触发可以建立一个新的触发和标记,触发名称为当前选中的触发名称加一个“ Clone”,条件和结果完全一样,触发选项中除了类型变为0之外也完全一样,标记按新建触发一样建立。
触发选项:名称同上,所属方在这里只是一个标志作用,有的结果中会有对“触发所属方”生效的内容就是指这里,如果没有这类结果,这里的内容可以随意。类型有0123四种填法,1和3的全部关联物体我基本不用,判断“全部”的逻辑有些复杂,可能在后面章节说明。常用的0和2是任意关联物体,即所有关联对象中有一个生效即可。0为单次触发,2为重复触发,即如果类型为0,触发结果只会执行一次,逻辑是(条件满足)-(执行触发结果)-(闲着没事干);如果类型为2,触发结果执行完之后会继续判定条件,逻辑是(条件满足)-(执行触发结果)-(判定条件是否满足)-(条件满足)-(执行触发结果)的循环。关于触发的内在逻辑预计会在后面章节详细叙述,初级阶段暂时可以这么理解类型。关联触发可能实现一些特殊效果,但据说也有bug存在,初级阶段不建议使用,保持<none>即可。简单中等终结三个选项可以控制触发应用于不同难度,在没有勾选的难度中这个触发一定不会被触发,无论是否满足条件。关于禁止选项,被禁止的触发一定不会触发,无论是否满足条件。但是有些结果可以改变这里的状态,53号结果允许的触发在结果执行后相当于这个选项取消勾选,54号结果禁止的触发在结果执行后相当于勾选这个选项。在这个选项取消勾选后,可以正常判定是否满足条件,然后执行结果。
条件:新建和删除事件同上,事件类型可以选择事件的大致内容,下面的框内是对这个事件内容的解释,事件参数和参数值决定事件的具体内容。例:新建事件条件0,事件类型选择13,解释为触发被允许(开始判定条件)之后一定时间后开始执行结果。数值选择20,即上述一定时间为游戏内20秒。多个事件可能与类型的全部关联物体和任意关联物体的判定有关,所以一般只使用一个事件,多个事件和类型的判定问题可能会在后面讨论。
结果:新建和删除行为同上,行为类型可以决定行为的大致内容,下面的框内是对这个行为的解释,行为参数和参数值决定行为的具体内容。例:新建行为结果0,行为类型选择53,解释为允许目标触发,行为参数是触发,参数值选择这个触发自身,即这个结果执行之后参数值对应的触发如果禁止选项被勾选,则取消这个选项的勾选。新建行为结果1,行为类型选择1,解释为使特定的所属方胜利,行为参数是所属方,参数值选择0即United States所属方,即这个结果执行之后参数值选择的United States所属方胜利。当触发条件被满足后所有的结果都会被立即执行。
另外,参考B_M_Leaf的教程(https://www.bilibili.com/read/cv1657313?spm_id_from=333.999.0.0),每一个触发的条件和结果的数量不能超过19,否则概率闪退。动作脚本的长度似乎没有做出限制,但也不建议过长导致检查困难,同时过长的动作脚本被打断的概率也较高。特遣部队的单位数量没有作出限制,但单位种类不能超过6种,否则刷出来的时候只有前6种。对于单个触发,它的触发顺序是(判断触发有没有被禁止,以及难度是否与选项对应)-(类型和条件是否已经满足)-(所有结果开始执行)。