logo

尤里的复仇:AI教程

最后更新时间:

本教程的内容主要是在制作尤里的复仇Mod:万世之战时总结的经验,其中参考了红警DIY论坛的AI教程,并用ModENC中所提供的词条更正准确度。

AI原理介绍

AI主要分为两个大的部分,一个为Rules(md).ini部分的改动,另一个为Ai(md).ini。

AI大体上分为两个阶段,一个是发展阶段,另一个是出兵阶段。发展阶段指的是AI建造建筑,发展经济,提高科技等级,建立防御武器等等。而出兵阶段则是AI按照设定,训练和生产不同的兵种和载具,在战场上进行战斗或其他动作。

Rules(md).ini主要控制的是发展阶段,而AI(md).ini则控制的是出兵阶段。

AI的设计实际上更多取决于你的Rules,比如新的单位AI会如何使用,新的建筑AI会如何保护等等。如果你的Mod新增了单位但没有新增AI,那么这个Mod一定不是一个合格的好Mod。

Rules改动

实际上,整个红警2的AI机制都是宏观与微观结合,因此对Rules(md).ini中的宏观标签进行合适的修改极其重要,这些宏观标签包括了AI对建筑功能的识别、对防御建筑数量的控制、对经济的调控以及对作战指令的设定等。

[General]

[General]部分是Rules(md).ini中的重要组成部分。下面列举出[General]中可以左右AI的标签,以下标签的数值均为尤里的复仇原版数值,可作为修改的参考。

BaseBias=2 ;敌人靠近AI时的威胁倍数值,作用是影响AI对单位威胁的敏感度。值越高越敏感度越高。

BaseDefenseDelay=.25 ;AI派出防御部队应对基地威胁的延迟时间,单位为分钟。

CloseEnough=2.25 ;AI执行“移动到”指令时,视为完成接近的距离值。

Stray=2.0 ;小队在执行任务时,不会导致小队重组的偏离直径值,单位为单元格(Cell)。建议值:4-5。

RelaxedStray=3.0 ;执行集结指令(53和54号指令)时,以这个数值代替Stray以适应大部队作战。建议值:5-7。

SuspendDelay=2 ;小队暂停任务后恢复执行任务的时间,单位为分钟。

SuspendPriority=1 ;小队的任务如果在这个权重值之下,就会暂停任务转而参与基地防御。

GuardModeStray=2.0 ;小队在防御模式下,不会导致小队重组的偏离直径值,单位为(Cell)。建议值:3-4。

TeamDelays=2000,2500,3500 ;(困难、中等、简单)的AI出小队的间隔,单位为帧。建议值:100以下。

AIHateDelays=30,50,70 ;(困难、中等、简单)的AI选择敌人的时间间间隔,单位为帧。最好保持一个比较低的值。

AIAlternateProductionCreditCutoff=1000 ;AI的资金低于这个数值就不再花钱


MultiplayerAICM=400,0,0 ;(困难、中等、简单)的AI初始资金加成。初始资金=设定资金*(x+100)/100

AIVirtualPurifiers=4,2,0 ;(困难、中等、简单)的AI采集矿石转化成的资金加成。转化资金=原本资金*(1+x*0.25)

AISlaveMinerNumber=4,3,2 ;(困难、中等、简单)的AI生产的奴隶矿场数量。

HarvestersPerRefinery=2,2,1 ;(盟军苏联尤里)的AI会为每个矿场配备的矿车数量。

AIExtraRefineries=2,1,0 ;(困难、中等、简单)的AI会额外建造的矿场数量。


MinimumAIDefensiveTeams=1,1,1 ;(困难、中等、简单)的AI会生产的基地防御的最小小队数量。

MaximumAIDefensiveTeams=2,2,2 ;(困难、中等、简单)的AI会生产的基地防御的最大小队数量。

TotalAITeamCap=30,30,30 ;(困难、中等、简单)的AI会生产的最大小队数量。

UseMinDefenseRule=yes ;AI在创建每个小队之前都会将“已有MinimumAIDefensiveTeams数量的防御小队”作为前提。

DissolveUnfilledTeamDelay=5000 ;AI在多久之后会解散一只不完整的小队,单位为帧。


AISafeDistance=20 ;距离敌人基地多远之外AI认为是安全距离,单位为单元格(Cell)。

AIMinorSuperReadyPercent=.7 ;次级超级武器(铁幕、超时空)充能到这个百分比时,AI会将其作为触发。

AlliedBaseDefenseCounts=25,20,6 ;(困难、中等、简单)的盟军AI生产防御建筑的数量参数。计算公式见下方:

SovietBaseDefenseCounts=25,22,6 ;(困难、中等、简单)的苏军AI生产防御建筑的数量参数。计算公式见下方:

ThirdBaseDefenseCounts=25,22,6 ;(困难、中等、简单)的第三阵营AI生产防御建筑的数量参数。计算公式见下方:

((基地建筑总价值-2000)/1500 * GDIBaseDefenseCoefficient) + 3*(该参数-1)

AIPickWallDefensePercent=50,25,10;(困难、中等、简单)的AI用围墙来代替防御建筑的概率

AIRestrictReplaceTime=400 ;AI的建筑被摧毁后,用电厂、矿场、围墙或者防御建筑代替的时间,单位为帧。

ThreatPerOccupant=10 ;AI对每一个进驻建筑的步兵判定的威胁值。

ApproachTargetResetMultiplier=1.5 ;AI判定目标移动的参数。AI通过武器射程判定目标,而如果这个目标移动到武器射程*该参数之外,AI将判定该目标为移动目标,并重新接近敌人。

GuardAreaTargetingDelay=36 ;区域警戒(Area Guard)状态下AI搜索目标的延迟。

NormalTargetingDelay=27 ;

AINavalYardAdjacency=20 ;AI能建造船厂的距离,单位为单元格(Cell)。

DisabledDisguiseDetectionPercent=15,5,2 ;(困难、中等、简单)的AI识破幻影坦克的概率。概率虽然低,但人越多越容易识破。

AIAutoDeployFrameDelay=15,25,100 ;AI部署步兵的延迟。

AISuperDefenseProbability=90,50,10 ;(困难、中等、简单)的AI使用护盾类型(铁幕、力场护盾)超级武器的概率。

AISuperDefenseFrames=50 ;AI使用护盾类型的超级武器保护自己的延迟。

AISuperDefenseDistance=12 ;从基地中心开始算多少距离是AI使用护盾保护的范围,单位为单元格(Cell)。

[CombatDamage]

Crush=1.8 ;在该距离时AI的载具会直接碾压可碾压的步兵以取代开火,单位为单元格(Cell)。

[AI]

[AI]部分是Rules(md).ini中对AI的基本定义,比如告诉AI有哪些建筑可以建造、各个建筑的定义、防御建筑的数量等。

[AI]

BuildConst=GACNST,NACNST,YACNST ;AI会建造的基地

BuildPower=NAPOWR,GAPOWR,YAPOWR ;AI会建造的电厂

BuildRefinery=NAREFN,GAREFN,YAREFN ;AI会建造的矿场

BuildBarracks=NAHAND,GAPILE,YABRCK ;AI会建造的兵营

BuildTech=NATECH,GATECH,YATECH ;AI会建造的作战实验室

BuildWeapons=GAWEAP,NAWEAP,YAWEAP ;AI会建造的工厂

BuildRadar=GAAIRC,NARADR,AMRADR,NAPSIS ;AI会建造的雷达

ConcreteWalls=GAWALL,NAWALL,GAFWLL ;AI会建造的围墙

BuildNavalYard=NAYARD,GAYARD,YAYARD ;AI会建造的海军船坞

BuildDummy=GAPILL,NALASR,YAGGUN ;AI会建造的基础防御武器

NeutralTechBuildings=CAAIRP,CATHOSP,CAOILD,CAOUTP,CAMACH,CAPOWR ;AI可以占领的科技建筑

AlliedBaseDefenses=GAPILL,ATESLA,NASAM ;盟军AI会建造的防御武器,无视BuildLimit和RequiredHouse。

SovietBaseDefenses=NALASR,NABNKR,TESLA,NAFLAK ;苏军AI会建造的防御武器,无视BuildLimit和RequiredHouse。

ThirdBaseDefenses=YAGGUN,YAPSYT,NATBNK ;第三阵营AI会建造的防御武器,无视BuildLimit和RequiredHouse。

AIForcePredictionFudge=5,25,80 ;AI根据敌人单位造价的总和,选择防御建筑进行建造。三个值为困难、中等、简单的敌人所用的参数,理论上来说数值越小越智能。


NodBaseDefenseCoefficient=1.2 ;只影响SovietBaseDefenseCounts的计算。

GDIBaseDefenseCoefficient=1.5 ;只影响AlliedBaseDefenseCounts的计算。

ComputerBaseDefenseResponse=3 ;AI响应基地被攻击或者ToProtect单位被攻击的敌人的参数。具体算法未知。


PatrolScan=.016 ;AI执行巡逻任务时搜索敌人的时间。(单位:分钟)

CreditReserve=100 ;AI在资金少于这个数就不会维修建筑了。

PathDelay=.01 ;单位拥堵后再次尝试通过的时间间隔。(单位:分钟)

BlockagePathDelay=60 ;再次尝试通过但仍无法通过则绕路的时间。(单位:帧)

AutocreateTime=1 ;创建一支带有AutoCreate=yes小队的时间(单位:分钟)


Paranoid=yes ;AI玩家是否针对人类玩家。

AIBaseSpacing=1 ;AI生产建筑的最小间隔,单位为单元格(Cell)。

[IQ]

[IQ]的设置主要和地图相结合,比如在任务中有些敌人不会修理建筑,不会自动生产,这就是[IQ]的功劳。在遭遇战中,[IQ]全部是最大数值。

[IQ]

MaxIQLevels=5 ; IQ的最大值

SuperWeapons=4 ; 可以自动使用超级武器的最小IQ值

Production=5 ; 可以自动建造建筑的最小IQ值

GuardArea=2 ; 可以让新单位进入区域警戒状态的最小IQ值

RepairSell=1 ; 可以维修或者卖掉建筑以获取最大收益的最小IQ值

AutoCrush=2 ; 自动碾压单位的最小IQ值

Scatter=2 ; 可以躲避炮弹的最小IQ值

ContentScan=3 ; 懂得扫描乘员威胁度的最小IQ值

Aircraft=3 ; 懂得生产飞行器的最小IQ值

Harvester=2 ; 懂得补充矿车的最小IQ值

SellBack=2 ; 懂得卖掉建筑攒经费的最小IQ值

在遭遇战中,玩家的IQ为0,电脑的IQ为5。

通过将IQ设置为0,可以让玩家实现很多电脑才具备的功能,比如把RepairSell设置为0,玩家就可以不用点维修按钮实现自动维修(经过大量验证,AI自动维修把玩家的建筑卖掉的可能性非常低);把AutoCrush设置为0玩家的坦克也可以自动碾压敌方步兵;把Scatter设置为0玩家的单位可以自动躲炮弹;把GuardArea设置为0玩家的单位就会在视野范围内自动找架打。但超级武器、生产类型的词条设置为0无效。

个人来说不建议将IQ的内容设置为0,因为玩家本身就比电脑拥有更强的应变能力,如果让玩家拥有这些自动操作手段,那么游戏性也会变得非常低。

AI的建造逻辑

AI在出兵和建造建筑时会使用不同的逻辑来判断单位是否可被建造,分以下情况讨论:

建筑:

AI判定建筑是否可建造的检查项:

是否检查? 条件
Prerequisite= 只有被设置的阵营允许建造。
PrerequisiteOverride=
TechLevel= 大于最大值不可建造。
AIBuildThis= yes则会建造,no则不会建造。
AIBasePlanningSide= 0则盟军可生产,1则苏军可生产,2则尤里可生产。
RequiresStolenAlliedTech=
RequiresStolenAlliedTech=
RequiresStolenAlliedTech=
Owner 在Owner列表中的国家才可以建造该建筑,原版直接将所有国家放入。
RequiredHouses 在列表中的国家可以建造。
ForbiddenHouses 在列表中的国家不能建造。

步兵和载具:

AI在生产步兵和载具时的检查项:

是否检查? 条件
Prerequisite=
PrerequisiteOverride=
TechLevel= -1或大于最大值不可生产
RequiresStolenAlliedTech= 在偷取盟军作战实验室后可生产。
RequiresStolenAlliedTech= 在偷取苏联作战实验室后可生产。
RequiresStolenAlliedTech= 在偷取尤里作战实验室后可生产。
Owner
RequiredHouses 在列表中的国家可以生产。
ForbiddenHouses 在列表中的国家不能生产。

AI改动

AI改动意为更改Ai(md).ini文件。AI(md).ini主要分为4大板块,即特遣部队、脚本、小队和触发。

以下说明各个部分的作用。

  • 特遣部队:主要负责定义一支小队的兵种内容。
  • 脚本:主要负责定义一支小队的行动方式。
  • 小队:小队的载体,里面定义了单位的行为特性、用于构成的特遣部队以及用于行动准则的脚本。
  • 触发:小队形成的条件。

整个AI出兵的流水线如下:

  1. 触发条件满足后,开始创建小队。
  2. 小队招募的成员内容由特遣部队定义,小队会等到特遣部队定义的兵种集齐后开始行动。
  3. 小队的行动方式由脚本定义。

AI(md).ini中,小队和触发是占大部分篇幅的内容,因为触发是不可以共用的。小队可以被多个触发共用,而特遣部队和脚本则通用型更高。

特遣部队·TaskForce

特遣部队的代码构成方式比较简单,首先需要再[TaskForces]中注册你的特遣部队名称。

接下来详细定义特遣部队,格式如下:

[TaskForceName] ;特遣部队的注册名,不得超过24个英文字符,只能是英文。

Name=Name of the Task Force ;特遣部队的名称,用于描述你的特遣部队,不会被游戏读取。

0=1,MTNK ;格式为N=X,Y | N=序列,X=数量,Y=单位注册名

1=2,SREF

...

5=3,FV

Group=-1 ;无特殊需要建议保留原值-1。

需要注意的是,特遣部队的序列不需要严格按照升序写单位,但是最大到5。

脚本·Script

脚本需要在[ScriptTypes]注册表中注册。

脚本的格式如下:

[ScriptName] ;脚本的注册名,不得超过24个英文字符

0=X,Y

1=X,Y

2=X,Y

...

49=X,Y

以下表格只列出适合在遭遇战中使用的脚本指令。

指令 指令介绍 参数 参数介绍
0 攻击最近的目标(间谍无法执行,陆军只判定地面单位,海军只判定水面单位)

注:攻击指令为自循环指令。比如小队被指令攻击建筑,当第一个建筑被摧毁小队会立刻循环这个指令,寻找第二个最近的建筑进行攻击,直到没有可攻击的建筑,小队才会执行下一条指令。

0 任何目标([VehicleTypes]/[AircraftTypes]/[InfantryTypes]/[BuildingTypes])(Aircraft类无法执行此项。)
1 同0,0(其实根本没有0,1,空项自动判定成0,0)
2 建筑物([BuildingTypes])
3 资源类([BuildingTypes]/[VehicleTypes]/[AircraftTypes],Storag>0)
4 步兵([InfantryTypes])
5 载具([VehicleTypes]/[AircraftTypes])
6 工厂([BuildingTypes],Factory=)
7 防御建筑([BuildingTypes],Primary=)
8 同0,0(同样是空项)
9 电厂([BuildingTypes],BuildCat=Power)
10 可驻军建筑([BuildingTypes],CanOccupyFire=yes)
11 中立科技建筑([BuildingTypes],NeedsEngineer=yes)
1 攻击n号路径点,工程师/间谍/突击队都可以用这句完成占领/渗透/清理。 n 路径点编号
3 移动到n号路径点(Waypoint)。 n 路径点编号
4 移动到n号单元标记(CellTag)。 n 单元标记编号
5 警戒(Guard)状态保持n秒 n 单位:秒
6 跳转到当前Script的第n行。 n n=索引号+1
8 释放乘客 0 运输工具和乘客都会执行接下来的指令。
1 运输工具执行接下来的指令,乘客不执行。
2 乘客执行接下来的指令,运输工具不执行。
3 运输工具和乘客都不执行接下来的指令。
9 部署。(步兵、基地车、武装直升机皆有效) 0 固定参数
10 跟随最近的友好单位。(如果写在Script的第一行,将会无条件跟随产生的第一个小队) 0 固定参数
11 进入第n种状态(通常能在Rules里找到并修改相应状态),无法执行该Script内接下来的任何指令。(可以通过重组至其他小队来终止任务) 5 Guard - 防御,只攻击进入射程内的敌人。
7 Enter - 进入建筑或运输工具。AI会自动找寻附近的建筑物进驻。
11 Area Guard - 区域防御,会主动迎击附近的敌人。
15 Hunt - 猎杀敌人。非Aircraft单位有AA=yes的武器时会优先搜寻敌方Aircraft类单位,但是无视Balloon类单位。Aircraft类单位会按0,3寻敌。(伞兵默认执行此状态。海军有效。默认无法重组,但是可以改)
18 Construction - 在建筑建立的位置造建筑。(车辆部署建筑同样有效)
14 队伍中存在有Passengers位置的运输工具,并且其余单位Size和PhysicalSize满足运输条件时,乘客们进入运输工具。(实际使用时,一个队伍里只能存在1个运输工具)(运输步兵时可以在14,0之后加43,0保证单位装载完毕,运输车辆时不可接43,0) 0 固定参数
17 变为执行第n号脚本,理论上可以用来实现超过50行的脚本。 n n为该脚本在注册列表中的顺序号而非索引号,从0开始,所以为索引号+1。
18 改变小队,让当前小队加入第n号小队,理论上可以用来实现超过6行的大队。 n n为该小队在注册列表中的顺序号而非索引号,从0开始,所以为索引号+1。
21 分散部队。 0 固定参数
42 改变朝向。 0
1 东北
2
3 东南
4
5 西南
6 西
7 西北
43 等待运输单位完全装载完毕。运载步兵时可以用在14,0之后,运载车辆时不要使用。 0 固定参数
46 攻击指定建筑N。(工程师为占领、间谍为渗透、Assaulter=yes的单位为清驻兵、海军可用此指令攻击陆地建筑) -1 + N 选择指定建筑中威胁最小的。
65535 + N 选择指定建筑中威胁最大的。
131071 + N 选择指定建筑中距离最近的。
196607 + N 选择指定建筑中距离最远的。
47 移动到N指定敌方或中立建筑附近。N的计算方法同上,"附近"的范围由CloseEnough指定。(海军可用) -1 + N 选择指定建筑中威胁最小的。
65535 + N 选择指定建筑中威胁最大的。
131071 + N 选择指定建筑中距离最近的。
196607 + N 选择指定建筑中距离最远的。
49 任务执行成功。小队每执行一次49号指令,都会在该AITrigger中增加AITriggerSuccessWeightDelta的权重。如果被消灭之前没能执行49号指令,则减少AITriggerFailureWeightDelta * AITriggerTrackRecordCoefficient的权重。 0 固定参数
53 在敌人基地附近集合,距离由AISafeDistance决定。(海军有效) 0 固定参数
54 在友方基地附近集合。距离由AISafeDistance决定,Ares中由AIFriendlyDistance决定。(海军有效) 0 固定参数
55 如果铁幕就绪,则为该小队罩铁幕。 0 固定参数
56 如果超时空传送就绪,则传送该小队至指定建筑物N -1 + N 选择指定建筑中威胁最小的。
65535 + N 选择指定建筑中威胁最大的。
131071 + N 选择指定建筑中距离最近的。
196607 + N 选择指定建筑中距离最远的。
57 如果超时空传送就绪,则传送该小队至指定类别周边。 0 任何目标([VehicleTypes]/[AircraftTypes]/[InfantryTypes]/[BuildingTypes])(Aircraft类无法执行此项。)
1 同0,0(其实根本没有0,1,空项自动判定成0,0)
2 建筑物([BuildingTypes])
3 资源类([BuildingTypes]/[VehicleTypes]/[AircraftTypes],Storag>0)
4 步兵([InfantryTypes])
5 载具([VehicleTypes]/[AircraftTypes])
6 工厂([BuildingTypes],Factory=)
7 防御建筑([BuildingTypes],Primary=)
8 同0,0(同样是空项)
9 电厂([BuildingTypes],BuildCat=Power)
10 可驻军建筑([BuildingTypes],CanOccupyFire=yes)
11 中立科技建筑([BuildingTypes],NeedsEngineer=yes)
58 移动到指定友方建筑N附近。(海军可用) -1 + N 选择指定建筑中威胁最小的。
65535 + N 选择指定建筑中威胁最大的。
131071 + N 选择指定建筑中距离最近的。
196607 + N 选择指定建筑中距离最远的。
64 进驻最近的可驻军建筑。(即使是用来占己方碉堡) 0 固定参数

小队·Team

小队的代码构成方式比较像Rules(md).ini的形式,即先在[TeamTypes]中注册小队,然后再为小队增加各类标签。

小队的代码构成如下:

[TeamName] ;小队的注册名,不得超过24个英文字符,只能是英文。

Name=Name of the Team ;小队的名称,用于描述你的小队,不会被游戏读取。

VeteranLevel=1 ;无效。

MindControlDecision=0 ;小队的心灵控制单位在控制敌人之后,被控制者的行为。

Loadable=no ;是否有运载单位。

Annoyance=no ;是否会还击一次。

GuardSlower=no ;无效。

House=<none> ;无效。

Recruiter=no ;是否会从低优先级队伍中调取成员。

Autocreate=no ;是否结合地图预制单位生效。

Prebuild=no; 是否会提前建造队伍。

Reinforce=yes ;是否会强制补充损失的成员。

Droppod=no ;无效。

UseTransportOrigin=no ;无效。

Whiner=no ;无效。

Aggressive=yes ;是否为进攻型小队。

Suicide=no ;是否会还击。

Priority=7 ;优先级

Max=1 ;最大小队数量

TechLevel=0 ;科技等级

Group=-1 ;没有特殊需要就写-1。

OnTransOnly=no ;无效。

AvoidThreats=yes ;是否避免威胁。

IonImmune=no ;无效。

TransportsReturnOnUnload=no ;完成运输后载具是否回基地。

AreTeamMembersRecruitable=yes ;队伍成员是否能被调取。

IsBaseDefense=no ;是否为基地防御小队。

OnlyTargetHouseEnemy=no ;是否只针对敌方。

Script=ScriptName ;小队行动的脚本。

TaskForce=TaskForceName ;小队构成的特遣部队。

下面,对各个标签做出详细解释:

Aggresive和Suiside组合:

适用脚本 Aggresive Suicide 敌人进入警戒范围 受到敌人攻击
攻击类脚本(0,1,46,59) yes yes 无视敌人,执行脚本 无视敌人攻击,执行脚本
yes no 无视敌人,执行脚本 攻击并追击敌军,一旦攻击完成(敌人被消灭或隐形),继续执行脚本
no yes 无视敌人,执行脚本 无视敌人攻击,执行脚本
no no 无视敌人,执行脚本 攻击并追击敌军,一旦攻击完成(敌人被消灭或隐形),继续执行脚本
移动类脚本(3,47,53) yes yes 无视敌人,执行脚本 无视敌人攻击,执行脚本
yes no 在移动到目标地点的同时对敌执行攻击(无炮塔单位只会迎击前方敌军)。如果小队所有成员都迎击,小队会放弃执行脚本投入战斗。战斗结束后,小队会继续执行下一行脚本。 攻击并追击敌军,如果小队所有成员都迎击,小队会放弃执行脚本投入战斗。战斗结束后,小队会继续执行下一行脚本。
no yes 无视敌人,执行脚本 无视敌人攻击,执行脚本
no no 在移动到目标地点的同时对敌执行攻击(无炮塔单位只会迎击前方敌军)。 在移动到目标地点的同时对敌执行攻击(无炮塔单位只会迎击前方敌军)。如果敌军逃跑,小队会开始追击。如果小队赶到敌军的地点,则会放弃当前脚本,在战斗之后执行下一行脚本。如果小队在未赶到敌军地点时战斗结束,小队会继续执行当前脚本。

MindControlDecision相关参数:

参数 描述
0 不使用这个逻辑
1 招募
2 送进部队回收站
3 送进生化发电厂
4 搜索敌人
5 什么也不做

触发·Trigger

触发均需要放在[AITriggerTypes]之后,这个可以视作注册表和本体的合并项目。

触发的格式如下:

TriggerName = Trigger Name,7654321-G,<all>,3,1,GAREFN,0A00000002000000000000000000000000000000000000000000000000000000,250,50,500,1,0,1,0,<none>,1,1,1

触发的各项参数解释如下(从上往下):

触发名称 随意写,但一定要是英文,同时不能有其他符号。
第一小队 在[TeamTypes]中注册过的小队。
所属国家 在Rules(md).ini中[Country]注册表中的国家。
科技等级 无特殊需要可以写1,如果有特殊模式可以按模式需要自行拟定。
触发前提 -1: 任何条件 0: 敌方拥有(前提)指定的单位(插件无效) 1: 己方拥有(前提)指定的单位(插件无效) 2: 敌方电力黄 3: 敌方电力红(间谍偷电成功时有效) 4: 敌方金钱大于或等于 5: 本方铁幕装置就绪 6: 本方超时空传送就绪 7: 中立方拥有(前提)指定的单位
前提条件 <all> 单位名称 单位名称 <all> <all> <all> <all> 单位名称 单位名称
条件对比参数 64位长度,16进制。前10位有效。前8位代表数值,第9、10位代表算法值。详情见条件对比参数详解
基础权重 0~5000, 0为不触发,5000为满足条件必触发
权重下限 0~5000, 0为不触发,5000为满足条件必触发
权重上限 0~5000, 0为不触发,5000为满足条件必触发
游戏模式 0: 战役模式 1: 遭遇战模式
无效参数 0
阵营 1: 盟军 2: 苏联 3: 尤里 4: 第四阵营 n:第n阵营
第二小队 在[TeamTypes]中注册过的小队
简单的敌人是否触发? 0: 不触发 1: 触发
中等的敌人是否触发? 0: 不触发 1: 触发
冷酷的敌人是否触发? 0: 不触发 1: 触发

条件对比参数详解

前8位代表数字,为16进制,可以通过10进制转16进制的转换器进行转换。比如十进制中的100,转换成8位的16进制就是00000064。

在此之后,必须以两位为单位,将16进制的数字倒着写,于是上述16进制数就成为64000000。

最后,将条件附加在16进制数的后面,00:<,01:≤,02:=,03:≥,04:>,05:≠

比如,大于等于100,就写作6400000003,然后在后面添加54个0即可放进触发中。

为了方便,可以用下面这个小工具进行计算:

生成结果: