帝国时代2决定版:从零开始的触发器入门教程(二)基础知识与效果①

【触发器的效果】
“效果”即这个触发在必须的“条件”都满足后,所能够实现的内容。如果说条件是触发的根,那么效果就是触发的花。决定版出来之处,效果是比较少的,总体来看比之前的民间版本WK和1.5要差。但经过数次更新,决定版已经做到了在总体上匹敌前两者,且独具特色。当前版本的效果总共有以下这些,后面讲分几期为大家做详细介绍。这一期,我们着重介绍其中最常用也是问题最多的“修改属性”效果。


【修改属性】
顾名思义,修改属性就是修改单位的属性。这个效果的强大之处在于它是对玩家科技树中的单位进行修改,而不只是一个或几个单位。也就是说,修改属性效果执行之后新产生的单位也将会是修改过属性的。修改属性本身有很多可供选择的属性,想要做出像下面这样的单位是易如反掌的事情。


在学习修改属性效果之前,我们先要了解下面几个概念:
1.独立化:指某个或某一些单位在经过一系列操作以后,不再享受后续研发的的科技或文明加成影响,也不再受到“修改属性”效果的影响。这是非常重要的,目前我收到绝大部分关于修改属性的问题的原因都是这个。会导致独立化的操作有:①任意改权操作(包括但不限于僧侣招降、转化盖亚单位、改变所有权的触发等);②触发效果(包括但不限于这些效果:传送物体、改变所有权、改变物体攻击力、改变物体护甲、改变物体护甲、改变物体描述、改变物体名称、改变物体射程、改变物体生命值、改变物体速度、改变物体图标、改变物体玩家名称、改变物体玩家颜色、改变物体文明名称等)。因此,为了保险起见,请将“修改属性”的效果尽可能地置于上述效果的前面。
2.升级单位:指将高级单位的数据赋值给低级单位,如将“骑士”升级为“重装骑士”,则只是将重装骑士的数据赋值给骑士。骑士的ID为38,重装骑士的ID为283,游侠的ID为569。在研发重装骑士科技后,我们能生产的还是ID为38的骑士,但此时它的数据已经与重装骑士无差别了,研发游侠同理。在一般情况下,我们无法在游戏中生产出重装骑士283和游侠569,我们能生产的仅仅是被修改了数据的骑士38。因此在使用“修改属性”效果时,请仔细甄别你修改的到底是哪个单位。保险起见,可以将这一系列的单位的属性全部修改一遍。
3.攻击/护甲类型:在数据库中,每一种攻击和护甲都有一个指定的类型,我们称之为攻击n、护甲n,它们是一一对应的关系。例如:远程攻击/远程护甲的类型为3,近战攻击/近战护甲的类型为4,对骑兵加成/骑兵护甲的类型是8,对步兵加成/步兵护甲的类型是1等等。与一般直觉不同,一个单位是否受到某种加成并非取决于它的种属,而是取决于它是否有该类型的护甲。例如英雄“贝查德爵士”,虽然是骑兵种属,但并没有骑兵类护甲,所以不受长枪兵之类的单位的加成。注意,护甲类型(Armor Type)可以为正、负,例如甲胄骑兵的护甲8(骑兵)为12,骑象射手的护甲28(骑射手)为-2。因此,不可将“护甲类型”称作“单位标签”。

4.伤害计算法:总伤害=(攻击1-护甲1)+(攻击2-护甲2)+……+(攻击n-护甲n),其中,“()”括号内的值最小为0。若总伤害为0,则强制造成1点伤害。若攻击单位没有攻击n则不参与计算,若被攻击的单位没有护甲n,则用其基础护甲参与计算,绝大多数单位的基础护甲为1000,少数为0。

例1:
攻击单位【精锐甲胄骑兵】
攻击:12点——类型1(步兵)
12点——类型4(近战)
0点——类型11(建筑)
0点——类型15(弓兵)
0点——类型21(标准建筑)
10点——类型32(佣兵)
被攻击单位【意大利佣兵】
护甲:10点——类型1(步兵)
1点——类型4(近战)
0点——类型3(远程)
0点——类型19(骑兵)
0点——类型31(皇家骑士)
0点——类型32(佣兵)
基础护甲:1000
伤害=(攻击1-护甲1)+(攻击4-护甲4)+(攻击11-护甲11)+(攻击15-护甲15)+(攻击21-护甲21)+(攻击32-护甲32)
=(攻击1-护甲1)+(攻击4-护甲4)+(攻击11-基础护甲)+(攻击15-基础护甲)+(攻击21-基础护甲)+(攻击32-护甲32)
=(12-10)+(12-1)+(0-1000)+(0-1000)+(0-1000)+(10-0)
=2+11+0+0+0+10
=23


例2:
攻击单位【长戟兵】
攻击:6点——类型4(近战)
28点——类型5(战象)
32点——类型8(骑兵)
16点——类型16(船只)
1点——类型21(标准建筑)
1点——类型29(鹰勇士)
26点——类型30(骆驼)
17点——类型34(渔船)
11点——类型35(马穆鲁克)
被攻击单位【精锐战象】
护甲:0点——类型5(战象)
1点——类型4(近战)
3点——类型3(远程)
0点——类型8(骑兵)
0点——类型19(特色单位)
0点——类型31(皇家骑士)
基础护甲:1000
伤害=(攻击4-护甲4)+(攻击5-护甲5)+(攻击8-护甲8)+(攻击16-护甲16)+(攻击21-护甲21)+(攻击29-护甲29)+(攻击30-护甲30)+(攻击34-护甲34)+(攻击35-护甲35)
=(6-1)+(28-0)+(32-0)+(16-1000)+(1-1000)+(1-1000)+(26-1000)+(17-1000)+(11-1000)
=5+28+32+0+0+0+0+0+0
=65


例3:
攻击单位【伐木工】
攻击:3点——类型4(近战)
3点——类型11(标准建筑)
6点——类型13(石质防御建筑)
3点——类型18(树木)
被攻击单位【秋季橡树】
护甲:无
基础护甲:0
伤害=(攻击3-护甲3)+(攻击11-护甲11)+(攻击13-护甲13)+(攻击18-护甲18)
=(攻击4-基础护甲)+(攻击11-基础护甲)+(攻击13-基础护甲)+(攻击18-基础护甲)
=(3-0)+(3-0)+(6-0)+(3-0)
=3+3+6+3
=15


例4:
攻击单位【轻型冲车】
攻击:2点——类型4(近战)
125点——类型11(标准建筑)
40点——类型20(攻城武器)
被攻击单位【灰狼欧鲁】
护甲:0点——类型4(近战)
2点——类型3(远程)
0点——类型31(皇家骑士)
0点——类型36(英雄和国王)
基础护甲:0
伤害=(攻击4-护甲4)+(攻击11-护甲11)+(攻击20-护甲20)
=(攻击4-护甲4)+(攻击11-基础护甲)+(攻击20-基础护甲)
=(2-0)+(125-0)+(40-0)
=2+125+40
=167

掌握以上概念,将会大大方便我们制作战役的过程。接下来,我们可以开始尝试使用“修改属性”的效果了。

“新建”一个“效果”,选择“修改属性”,然后我们可以看到如下界面。

【物体列表类型】和【物体列表】:和编辑器放置单位的列表一样,我们可以在其中选择我们要修改的单位。
【物品ID】:所选择的物体的科技树ID,如骑士的ID为38,游侠的ID为569;这个选框非常重要,因为有些不在列表里面显示的单位需要通过手动填写ID来指定,如隐藏单位、各种抛掷物。
【起始玩家】:指定我们要修改哪一个玩家的该单位。
【操作】:可以选择加、减、乘、除或直接设置,以对我们选择的单位属性进行运算。
【数量】:填入一个数字,选定单位的该项属性将会被设置为这里的值,或加/减/乘/除这里的值。注意,只能填入整数!如果想要得到小数,那么需要做四则运算,比如将一个单位的移动速度设为1.5,就需要新建两个“修改属性”效果,第一个将其移动速度设置为3,第二个将其移动速度除以2。
【物体属性】:共有下面这么多种。接下来将为大家挨个详细介绍。


1.生命值:修改单位的生命值。生命的最大值为32767,若超过此数则单位会变为无敌状态;若<1则单位会死亡。
【注意事项】:若利用乘除法得到小数则会向下取整,若当前生命值不满,则会按比例提升。例如,把一个80/100骑士的生命值提升20点,则生命值会变为96/120


2.视野:修改单位的视野。视野的最大有效值为20,超过的部分无效。
3.驻扎容量:修改单位的驻扎容量。驻扎容量最大有效值为255,若超过则会一直减256直到≤255为止。
4.单位尺寸X/单位尺寸Y:修改单位的体积,/方向的半径为X,\方向的半径为Y,
【注意事项】:若单位的XY尺寸均为0,则可以穿过任意单位,且能无视地形移动。若修改某些障碍物的体积而使得单位可以通过,还是会因为寻路机制的问题而卡住,需要通过精细的移动指令才能通过。
5.移动速度:修改单位的移动速度。
【注意事项】:由于大部分单位的速度都有小数,如轻型冲车速度0.5,步弓手速度0.96,骑士速度1.35,所以修改速度时请善用四则运算。例如我想将一个单位的速度设为1.25,那么可以用第一个修改属性将其设置为10,再用第二个修改属性将其除以8。
【使用案例】:西班牙炮舰的炮弹飞行速度极快,就是通过修改其炮弹的移动速度实现的。而在一般情况下炮弹不会显示在单位列表中,因此我们可以通过手动填写ID的方式来指定,炮舰的炮弹ID为374。其他抛掷物和隐藏单位请使用游戏自带的AGE工具查询游戏数据库,或查阅《DE大典》:https://www.hawkaoe.net/bbs/thread-146061-1-1.html

6.旋转速度:修改单位的旋转速度。旋转速度越大,则单位转身越慢。
7.护甲:修改单位指定类型的护甲值。单项护甲的最大有效值为255,若超过则会一直减256直到≤255为止。
【注意事项】:无法为单位新增护甲类型。例如骑士只有护甲4(近战)、护甲3(远程)、护甲8(骑兵)、护甲31(皇家骑士),则只能对这四种攻击类型进行修改。具体的护甲类型请参考“攻击/护甲类型”中展示的表格。

8.攻击力:修改单位指定类型的攻击力。单项攻击的最大有效值为255,若超过则会一直减256直到≤255为止。
【注意事项】:无法为单位新增攻击类型。例如长弓兵只有攻击3(远程)、攻击17(冲车)、攻击21(标准建筑)、攻击27(长枪兵),则只能对这四种攻击类型进行修改。具体的护甲类型请参考“攻击/护甲类型”中展示的表格。

8.攻击重载时间:修改单位的攻速,即2次攻击之间的间隔。
9.准确度百分比:修改单位的命中率。可以超过100。
【注意事项】:修改僧侣的命中率可以增加其招降成功的概率。详细原理可看此贴:https://www.hawkaoe.net/bbs/thread-141916-1-1.html
10.最大射程:修改单位的最大射程。
【注意事项】:建议与视野、搜索半径同步修改。否则单位可能需要手动才能攻击一定范围内的敌人。
10.工作效率:修改单位的工作效率。
【注意事项】:不同单位的工作效率有不同的意义,例如僧侣的效率是其治疗效率,投石机的效率是其打包效率。修改村民时必须具体到工种和性别,例如如果想提升村民的伐木和采金效率,则需要单独提高伐木工(男)、伐木工(女)、金矿工(男)、金矿工(女)的效率;如果想提升种田的效率则需要同时提高农民(男)、农民(女)和农田的效率。这些单位的具体ID请查询《DE大典》。
11.运载量:修改单位的运载量。
【注意事项】:是村民携带资源的数量,和上面一样必须具体到工种和性别。运输船和冲车运输单位的数量则属于“驻扎容量”,僧侣搬运圣物的能力也不是运载量,目前无法做到让僧侣同时搬运多个圣物。
11.基础护甲:修改单位的基础护甲,即在前面介绍伤害计算时提到的概念。
【注意事项】:葡萄牙风琴炮的副抛掷物能造成2点固定伤害就是用击穿基础护甲来实现的,这些副弹际上拥有1002点攻击33,但没有任何单位拥有护甲33,所以扣除基础护甲后造成2点固定伤害。也因此,风琴炮可以秒杀灰狼欧鲁等0基础护甲的单位。
12.炮弹单位:修改单位的主抛掷物ID,在数量那一栏填入抛掷物的单位ID。
【注意事项】:修改前务必看清楚,如果填入了错误的单位ID导致其炮弹是个非抛掷物单位,单位攻击会导致游戏跳出。只能修改主抛掷物。
【使用案例】:如下设置,将城堡的炮弹单位修改为炮塔的炮弹,可以做出能同时发射炮弹并射箭的城堡。建议配合修改属性-攻击力食用。

13.图像角度:英文和中文均词不达意,正确的表述为“修改建筑图标ID”。
【注意事项】:只能修改建筑的图标ID,修改单位图标另需其他效果。如果想要打开并浏览图标,请参考此贴:https://www.hawkaoe.net/bbs/thread-145402-1-1.html

14.地形防御奖励:冷门功能。设为4可以让单位在“干裂的沙漠”地形上受到120%的伤害。一般单位默认为-1,一般建筑默认为4。

15.启用智能炮弹:设为1可以使抛掷物开启弹道学模式,即攻击移动目标时能预判其位置,设为0可以取消弹道学模式。
【注意事项】:只能对抛掷物使用,对发出抛掷物的单位使用是没有任何效果的。所有弹道学相关科技均是作用于抛掷物而非单位。
【使用案例】:目前还没有科技或文明加成可以使投石车或弩炮的抛掷物开启弹道学模式,所以……
16.最小射程:修改单位的最小射程。
【使用案例】:因为伐木工必须要先攻击树木以将其砍倒,然后才能采集木材。故可以将伐木工(男)和伐木工(女)的最小射程设为1、工作效率设为0来禁止伐木。
17.资源储备:修改单位储存的资源。
【注意事项】:当前版本有bug,修改资源单位(例如黄金)之后,地图上已有的资源无法被刷新,只有在这之后产生的才会变为设定的值。
18.爆炸广度:修改单位的溅射半径。
【注意事项】:请务必留意单位的爆炸等级,大部分没有溅射的单位攻击等级为0,若直接让他们具有溅射范围,则可以摧毁包括树木、资源、悬崖、岩石、桥梁在内的任何东西。
19.搜索半径:修改单的搜索半径,即单位将在多大范围内自动追踪和攻击敌人,
【注意事项】:不建议过大,否则单位很容易乱跑;建议配合视野或射程修改。
20.额外伤害抗性:西方霸主新功能,修改单位对除了攻击3(远程)、攻击4(近战)、攻击31(皇家骑士)以外的攻击类型的抗性。设为1则是100%抗性,例如西西里的文明加成则是将其部分单位设为0.5,也就是50%。
【注意事项】:大于1则视为1。抗性直接减免攻击,而不是伤害。如一个长戟兵攻击一个精锐甲胄骑兵,长戟兵有6点攻击4(近战)、32点攻击8(骑兵),其他伤害无法击穿基础护甲故不计算,精锐甲胄骑兵有2点护甲4(近战)、16点护甲8(骑兵),则伤害=(6-2)+(32*0.5-16)=4
20.图标ID:可以修改单位的图标ID。
【注意事项】:请使用游戏自带的AGE查看数据库,或前往“图像角度”介绍中提到的帖子来打开图标文件并查看。
【使用案例】:将游侠的图标ID设置为305(兰斯洛特/莫德雷德)。

21.英雄状态:设为1可以将普通单位变成英雄,设为0可以将英雄变成普通单位。英雄单位共有4项特点:①免疫招降;②自动恢复生命值;③默认为防御姿态;④在队伍中会处于被保护的位置。
【注意事项】:设置或取消英雄状态,无法增加或去除光环特效,也不会改变当前单位的姿态。
22.帧延迟:修改单位的攻击前摇,或者叫抬手时间,即攻击之前要经过的攻击动画帧数。
【注意事项】:如果帧延迟大于单位攻击动画的帧数,可能要播放多遍攻击动画才会攻击。攻击间隔是从单位的抛掷物射出后才开始计算的,因此过大的帧延迟会导致攻击间隔变长、攻速变慢。
【使用案例】:蒙古突骑的帧延迟设为0,感受1.0版蒙古突骑的恐怖吧!

22.训练位置:设置单位从何处训练。例如从城堡训练则设为82,被建筑工建造则设为118。更多训练地点请使用游戏自带的AGE工具查看数据库,或查阅《DE大典》
【注意事项】:修改训练位置以后不一样能马上训练,还要看这个单位是否被启用。如果未被启用的,请使用“启用/禁用物体”效果以启用该单位。
23.训练按钮:设置单位在哪个按钮训练,按钮位置如下图所示。
【注意事项】:5号会被集结点占用,15号位置无法被占用。船坞的第二页则是在此基础上+20。村民的第一页和第二页都是1-15,但是会根据经济建筑和军事建筑的分别自动放在第一页或第二页,无法交换。

【使用案例】:将长弓兵的训练位置设为87(靶场),训练按钮设为4,可以让在靶场生产长弓兵。


24.爆炸等级:修改单位的爆炸等级,爆炸等级决定了这个单位的溅射伤害能伤害到哪些单位。
【注意事项】:若单位有溅射范围和爆炸等级,爆炸等级为0可以伤害任何东西(包括但不限于树木、资源、悬崖、鸟类、鱼类、岩石、装饰物等等);爆炸等级为1可以伤害树木;一般的单位设置爆炸等级为2(如火炮、轻型投石车)。若爆炸等级为6且单位为步兵类,则可以造成固定5点践踏伤害。
【使用案例】:将轻型投石车的爆炸等级设为1,让其可以摧毁树木。

25.物体名称ID:可以修改单位的名称,这个ID对应语言文件中的字符串。更多名称ID请使用游戏自带的AGE工具查看数据库,或浏览此贴了解字符串相关内容:https://www.hawkaoe.net/bbs/thread-146496-1-1.html
26.简短描述ID:可以修改单位的简介内容(如下图所示),这个ID对应语言文件中的字符串。更多名称ID请使用游戏自带的AGE工具查看数据库,或浏览上面的贴子了解字符串相关内容:

27.地形限制ID:可以修改单位的地形限制,即在不同地形上的行动能力。一般来说,陆地单位设为7,船只设为3,只能在陆地建造的建筑设为4,能在陆地和岸边建造的建筑(例如墙)设为10,船坞为6。设为0则可以在任意地形上移动。
【使用案例】:将藤甲弓兵的地形限制设为0,让其可以“轻功水上漂”(视觉上不太和谐)。


28.死亡单位ID:可以修改单位的死亡单位,即单位死亡后生成一个什么单位。不一定是尸体,例如龙骑兵的死亡单位就是下马龙骑兵。
【注意事项】:如果将一个单位是死亡单位设为自己,那么就会得到一个可以无限复活的单位。
【使用案例】:将熙德的死亡单位设为198(即步行的熙德),可以实现类似于龙骑兵的下马后继续战斗的效果。

29.资源费用:可以修改单位的全部成本。建议使用乘除运算来按比例修改单位的成本。
【注意事项】:修改时,会以其资源ID顺序在前的费用为标准,资源ID顺序在后的费用将会等于资源ID顺序在前的费用。资源ID顺序为:0.食物、1.木材、2.石头、3.黄金。
【使用案例】:将骑士的资源费用先乘以4,再除以5,让其食物成本打八折;又因为食物资源id为1,黄金成本id为3,所以黄金成本会同步至与食物成本相同的数值。


30.食物费用/木材费用/黄金费用/石料费用:修改单位的单项成本。比“资源费用”更灵活。
【注意事项】:无法新增单位本来没有的成本,比如无法给轻骑兵增加木材成本。
【使用案例】:将奇观的木材费用乘以2,黄金费用设为750,石料费用减500。


31.训练时间:修改单位的训练时间,设定的数量就是训练所需的秒数,但是实际训练时间还要除以所在的建筑的效率。
32.投射单位总数:修改单位的抛掷物数量。若单位有主副抛掷物,抛掷物数量为N+1(N≥1),则总是以1主+N副的数量射出。若单位只有主抛掷物,那么会以N+1的数量射出其主抛掷物。若单位只有副抛掷物,那么那么会以N的数量射出其主抛掷物。
【注意事项】:注意单位的最大抛掷物数量!如果最大抛掷物数量<抛掷物总数,则仍然只能射出等于其最大抛掷物数量的抛掷物。
33.投射单位最大总数:修改单位的抛掷物上限。
【使用案例】:将炮塔的投射单位总数和投射单位最大总数分别设为3,即可做出无需驻扎也能3炮齐发的炮塔。


33.再生率:可以修改某些单位的生命恢复速度。目前局限性较大,可以被修改的只有各种骆驼,数值越小,则生命恢复速度越快。
34.显示攻击力/显示射程/显示近战护甲/显示远程护甲:西方霸主新功能,可以修改单位的显示属性。是我曾经最想要的一个功能。下图中,精锐诸葛弩的远程攻击为14,显示攻击力为8;射程为7,显示射程为4;近战护甲为3,显示近战护甲为0;远程护甲为4,显示远程护甲为0。
【注意事项】:显示属性不会对单位的实际属性产生任何影响,但是可以让单位的面板变得很工整,这也是我一直大力提倡的。


现在回过头来看最初的那个成吉思汗,这个单位分别修改了生命值、攻击力、显示攻击力、最大射程、显示射程、护甲、显示近战护甲、显示远程护甲,在看起来虽然多,但是对于一个战役而言只是冰山一角。正如cxt大佬所言,“这些单位属性是为打局而设计,做战役完全可以按照自己的需要来修改”。因此,我们应该多用修改属性、用好修改属性,为自己的战役增光添彩!
