新增或增强的逻辑

此页面列出了所有火卫一引入的新逻辑或扩展逻辑。

新类型/游戏内实体

护盾

image
具有护盾的建筑,步兵和载具在Fantasy ADVENTURE

rulesmd.ini中:

[AudioVisual]
Pips.Shield=-1,-1,-1           ; int, frames of pips.shp for Green, Yellow, Red
Pips.Shield.Building=-1,-1,-1  ; int, frames of pips.shp for Green, Yellow, Red

[ShieldTypes]
0=SOMESHIELDTYPE

[SOMESHIELDTYPE]               ; ShieldType name
Strength=0                     ; integer
Armor=none                     ; ArmorType
Powered=false                  ; boolean
AbsorbOverDamage=false         ; boolean
SelfHealing=0.0                ; double, percents or absolute
SelfHealing.Rate=0.0           ; double, ingame minutes
Respawn=0.0                    ; double, percents or absolute
Respawn.Rate=0.0               ; double, ingame minutes
BracketDelta=0                 ; integer - pixels
IdleAnim=                      ; animation
IdleAnim.OfflineAction=Hides   ; AttachedAnimFlag (None, Hides, Temporal, Paused or PausedTemporal)
IdleAnim.TemporalAction=Hides  ; AttachedAnimFlag (None, Hides, Temporal, Paused or PausedTemporal)
BreakAnim=                     ; animation
HitAnim=                       ; animation

[SOMETECHNO]                   ; TechnoType
ShieldType=SOMESHIELDTYPE      ; ShieldType; none by default

[SOMEWARHEAD]                  ; WarheadType
PenetratesShield=false         ; boolean
BreaksShield=false             ; boolean
  • 所有建筑与单位现在都可以拥有护盾作为独立的(即可指定单独的ArmorStrength的)第二血条。

    • 负伤害将恢复护盾,除非护盾已经被击碎。如果护盾不满,全部的负伤害都会被护盾吸收。

    • 当某TechnoType拥有未击碎的护盾时,[ShieldType]->Armor将会替代[TechnoType]->Armor参与游戏计算。

  • 当通过DeploysIntoUndeploysInto模式转换时,护盾会按剩余百分比进行传递。如果目标单位不具备护盾,那么原始单位的护盾数据将会保存,直到变回来再恢复。

    • 也兼容Ares的Convert.*

  • Powered控制护盾是否在单位无电力支持或被EMP时仍旧生效。

    • 注意,如果单位本身Powered=false,那么护盾也不会因断电而失效。

  • AbsorbOverDamage决定护盾是否会吸收超量伤害。

  • SelfHealingRespawn遵循以下设定:0.0将关闭功能,1%到100%为以百分比恢复/重生护盾,其他数字为以固定值直接恢复/重生护盾。此外,SelfHealing支持负数以扣除护盾。

    • 如果你想让护盾每次只恢复1HP,目前需要将该标签的值设置在1到2之间的数,如1.1

  • SelfHealing.RateRespawn.Rate遵循以下设定:0.0立即恢复护盾,其他值以游戏内分钟为单位恢复/重生护盾。

  • 如果设置了IdleAnim,那么护盾存在的时候就会自动重复播放此动画。

    • 目前暂不支持使用Bouncer=yes的动画。

  • IdleAnim.OfflineAction决定在断电时空闲动画的动作。

  • IdleAnim.TemporalAction决定在被超时空时空闲动画的动作。

  • 如果设置了BreakAnim,那么护盾被击碎时将播放此动画。

  • 如果设置了HitAnim,那么护盾被攻击时将播放此动画,类似铁幕的WeaponNullifyAnim

  • 拥有护盾的单位可以展示其护盾的HP条,如果护盾可重生,那么在被击碎后会保留一个空的护盾条。

    • 建筑默认使用pips.shp中的5号帧为护盾HP条,其他单位默认使用16号帧。

    • Pips.Shield可被用于指定护盾HP条用哪一帧。如果指定了1个数,那么就一直显示这一帧;如果指定了3个数,那么将遵循ConditionYellowConditionRed显示。建筑使用Pips.Shield.Building

    • 如果pipbrd.shp有额外的两帧,那么第4帧将用于步兵护盾条框,第3帧用于其他单位。BracketDelta可作为护盾HP条的额外PixelSelectionBracketDelta

  • 弹头与护盾的新交互选项。

    • PenetratesShield允许弹头无视护盾,将直接伤害单位本身。并且在瞄准时也会无视护盾。

    • BreaksShield允许弹头一击击碎护盾,无论护盾剩余多少。剩余伤害仍遵循AbsorbOverDamage

激光尾迹

Laser Trails
激光尾迹在Rise of the East

  • 单位和抛射体现在可以拥有多条不同透明度、厚度和颜色的彩色尾迹,这些尾迹是由引擎绘制的。

  • 单位的尾迹可以设置其每一条尾迹的类型,以及相对车体或炮塔的FHL偏移。

警告

激光尾迹非常消耗资源!由于游戏不使用GPU,因此如果设置了大量激光尾迹,即使在很好的电脑上也会迅速降低FPS。你可以通过以下方式减少这种影响:

  • 不要在单位和抛射体上放置太多激光尾迹;

  • 在尾迹不过于参差不齐的情况下设置尽可能高的SegmentLength值。

  • 尽量使尾迹长度最小(可以通过设置较小的FadeDuration值实现)。

artmd.ini中:

[LaserTrailTypes]
0=SOMETRAIL

[SOMETRAIL]                 ; LaserTrailType name
IsHouseColor=no             ; boolean
Color=255,0,0               ; integer - Red,Green,Blue
FadeDuration=64             ; integer
Thickness=4                 ; integer
SegmentLength=128           ; integer, minimal length of each trail segment
IgnoreVertical=no           ; boolean, whether the trail won't be drawn on vertical movement
IsIntense=no                ; boolean, whether the laser is "supported" (AKA prism forwarding)

[SOMEPROJECTILE]            ; BulletType Image
LaserTrail.Types=SOMETRAIL  ; list of LaserTrailTypes

[SOMETECHNO]                ; TechnoType Image
LaserTrailN.Type=SOMETRAIL  ; LaserTrailType
LaserTrailN.FLH=0,0,0       ; integer - Forward,Lateral,Height
LaserTrailN.IsOnTurret=no   ; boolean, whether the trail origin is turret
; where N = 0, 1, 2, ...

自定义辐射类型

image
不同种类的辐射正在混合

  • 现在允许为武器自定义辐射的类型,且自定义辐射需要使用注册表,关于辐射的详情请见这里

rulesmd.ini中:

[RadiationTypes]
0=SOMERADTYPE

[SOMEWEAPON]                    ; WeaponType
RadType=Radiation               ; RadType to use instead
                                ; of default [Radiation]

[SOMERADTYPE]                   ; custom RadType name
RadDurationMultiple=1           ; int
RadApplicationDelay=16          ; int
RadApplicationDelay.Building=0  ; int
RadLevelMax=500                 ; int
RadLevelDelay=90                ; int
RadLightDelay=90                ; int
RadLevelFactor=0.2              ; double
RadLightFactor=0.1              ; double
RadTintFactor=1.0               ; double
RadColor=0,255,0                ; RGB
RadSiteWarhead=RadSite          ; WarheadType

动画

动画生成单位

image

  • 动画现在可以在结束时生成或“转换成”单位

    • 因为动画通常没有所属方,所以单位会以中立所属方生成,除非使用了存储了被摧毁单位的所属方和方向信息的DestroyAnim

rulesmd.ini中:

[SOMEUNIT]                  ; UnitType
DestroyAnim.Random=yes      ; boolean, whether to randomize DestroyAnim

artmd.ini中:

[SOMEANIM]                          ; AnimationType
CreateUnit=                         ; UnitType
CreateUnit.Facing=0                 ; unsigned short, `CreateUnit` facings in range of 0-255
CreateUnit.RandomFacing=yes         ; boolean, `CreateUnit` use random facings
CreateUnit.InheritFacings=no        ; boolean, inherit facing from destroyed unit
CreateUnit.InheritTurretFacings=no  ; boolean, inherit facing from destroyed unit
CreateUnit.RemapAnim=no             ; boolean, whether to remap anim to owner color
CreateUnit.Mission=Guard            ; MissionType
CreateUnit.Owner=Victim             ; owner house kind, Invoker/Killer/Victim/Civilian/Special/Neutral/Random

建筑

扩展建筑升级逻辑

image
为自己和盟友的电厂升级在CnC: Final War

  • 建筑升级现在可以放置在自己,盟友和/或敌人的建筑上。通过一个逗号分隔的新标签控制。当升级放在建筑上后,它将自动转换为建筑的所属方。

  • 建筑升级也可以被放置在多种建筑上。

    • Ares引入的建造限制检查对此逻辑兼容。

rulesmd.ini中:

[UPGRADENAME]       ; BuildingType
PowersUp.Owner=Self ; list of Affected House Enumeration (none|owner/self|allies/ally|team|enemies/enemy|all)
PowersUp.Buildings= ; list of BuildingTypes

电厂增幅逻辑

  • 存在的时候会增幅电厂产生的电力。

    • 增幅建筑变卖或摧毁后,增幅电量就会消失。

rulesmd.ini中:

[SOMEBUILDING]                     ; BuildingType
PowerPlantEnhancer.PowerPlants=    ; list of BuildingTypes
PowerPlantEnhancer.Amount=0        ; integer
PowerPlantEnhancer.Factor=1.0      ; float

步兵

NotHuman步兵随机死亡动画

  • NotHuman=yes的步兵现在可以播放在Die1Die5中随机播放死亡动画序列,而非只有硬编码的Die1

    • 在启用此功能之前不要忘记调整步兵动画序列,否则它会播放不可见的动画序列。

rulesmd.ini中:

[SOMEINFANTRY]                    ; InfantryType
NotHuman.RandomDeathSequence=yes  ; boolean

步兵类型拥有独立的默认伪装

  • 每种步兵单位现在都可以有它自己的“DefaultDisguise”(默认伪装)。

    • 此标签的优先级高于Ares中为Side设定的“DefaultDisguise”。

rulesmd.ini中:

[SOMEINFANTRY]      ; InfantryType
DefaultDisguise=E2  ; InfantryType              

载具

静止载具

  • Speed=0的载具现在会视作静止单位,类似IsSimpleDeployer的部署载具。不应该被设置在可建造载具上,因为这样它离不开工厂。

禁止手动移动

  • 可以控制某单位是否无视移动指令。

[SOMETECHNO]           ; TechnoType
NoManualMove=no        ; boolean

自动删除乘客

  • 有该标签的载具将随着时间移除其中乘客。大型单位将需要更多时间。该逻辑也可以像部队回收站一样工作。

  • 与Ares的劫持犯逻辑是很好的组合。

rulesmd.ini中:

[SOMETECHNO]                            ; TechnoType
PassengerDeletion.Rate=                 ; integer, game frames
PassengerDeletion.Rate.SizeMultiply=yes ; boolean, whether to multiply frames amount by size
PassengerDeletion.Soylent=no            ; boolean
PassengerDeletion.SoylentFriendlies=no  ; boolean
PassengerDeletion.ReportSound=          ; sound

自定义可对外射击载具的属性

  • 现在可以微观定义每种可对外射击载具各自的增益参数。

[SOMETECHNO]                       ; TechnoType
OpenTopped.RangeBonus=1            ; integer
OpenTopped.DamageMultiplier=1.3    ; float
OpenTopped.WarpDistance=8          ; integer

通用

心灵控制增强

image
心灵控制距离限制在Fantasy ADVENTURE
image
多心控自动释放首个目标在Fantasy ADVENTURE

  • 拥有心灵控制武器的单位现在可以拥有最大控制距离。大于0将激活此逻辑。

  • 多重心控单位可以在过载前释放被控制的单位。

  • 心灵控制的动画现在可以用MindControl.Anim自定义了。

rulesmd.ini中:

[SOMETECHNO]                       ; TechnoType
MindControlRangeLimit=-1.0         ; double
MultiMindControl.ReleaseVictim=no  ; boolean

[SOMEWARHEAD]                            ; Warhead
MindControl.Anim=ControlledAnimationType ; AnimType

子机最大航程

image
子机限制追击距离在Fantasy ADVENTURE

  • 子机现在可以停止追击超出攻击距离的敌人。Spawner.ExtraLimitRange是额外追击距离。

rulesmd.ini中:

[SOMETECHNO]              ; TechnoType
Spawner.LimitRange=no     ; boolean
Spawner.ExtraLimitRange=0 ; integer

初始生命值

  • 现在可以指定单位的初始生命值了。

rulesmd.ini中:

[SOMETECHNO]        ; TechnoType
InitialStrength=    ; int

Burst开火坐标

  • 现在可以为Burst指定独立的开火坐标,N从0开始,如果未指定则遵循原版设定。

  • 应用此逻辑的开火坐标不受因Burst数导致的水平对称影响。

artmd.ini中:

[SOMETECHNO]                   ; TechnoType Image
PrimaryFireFLH.BurstN=         ; int - forward, lateral, height
ElitePrimaryFireFLH.BurstN=    ; int - forward, lateral, height
SecondaryFireFLH.BurstN=       ; int - forward, lateral, height
EliteSecondaryFireFLH.BurstN=  ; int - forward, lateral, height
WeaponXFLH.BurstN=             ; int - forward, lateral, height
EliteWeaponXFLH.BurstN=        ; int - forward, lateral, height

武器

武器定义BurstDelay

  • 现在支持为武器设定BurstDelay取代原本的BurstDelayX系统。对步兵,载具,建筑类型生效(飞机类型因开火系统完全不同无法支持)。并且允许为每一击都设定间隔,而非仅前四个。

  • 如果没有设置对应的间隔,那么就会使用最后设置的间隔。(比如Burst=3Burst.Delays=10将每一击都使用10作为间隔。)

  • 使用-1来取消此逻辑,应用原始的BurstDelay0-3

rulesmd.ini中:

[SOMEWEAPON]                 ; WeaponType
Burst.Delays=-1              ; int - burst delays (comma-separated) for shots in order from first to last.

自定义飞机扫射

image
自定义飞机扫射在Project Phantom

  • 扫射(武器抛射体ROT小于2)现在可以被自定义了。

    • Strafing.Shots决定单轮扫射中武器发射几次。Ammo仅在本轮扫射结束后扣除,无论本轮开火几次。有效值为1到5之前,超出则被重置为1或5。默认为5。

    • Strafing.SimulateBurst决定发射过程中是否模拟Burst的表现,允许偏移开火坐标。仅当Burst=1或未指定时生效。默认否。

rulesmd.ini中:

[SOMEWEAPON]                 ; WeaponType
Strafing.Shots=5             ; integer
Strafing.SimulateBurst=false ; bool

辐射增强

  • 辐射现在默认拥有所属方,辐射击杀可以被正常记录。此表现可被指定的标签关闭。

    • AffectsAlliesAffectsOwnerAffectsEnemies也会被遵守。

    • 目前辐射的产生者无法通过击杀获取经验,未来可能会改。

  • 辐射也可以对建筑产生伤害了,将RadApplicationDelay.Building设置大于0即可。

rulesmd.ini中:

[SOMEWEAPON]    ; WeaponType
Rad.NoOwner=no  ; boolean

武器瞄准筛选

  • 现在可以设置武器能够瞄准指定所属方的目标。

rulesmd.ini中:

[SOMEWEAPON]         ; WeaponType
CanTargetHouses=all  ; list of Affected House Enumeration (none|owner/self|allies/ally|team|enemies/enemy|all)

弹头

提示

所有的新弹头对溅射范围和Ares的通用弹头超武都是支持的。

金币弹

image
TransactMoney使用在Rise of the East

  • 弹头引爆时可以指定获得或失去资金。

rulesmd.ini中:

[SOMEWARHEAD]   ; Warhead
TransactMoney=0 ; integer - credits added or subtracted

揭示弹

image
SpySat=yes[NUKE]上,使核弹爆炸时开启全图视野

  • 弹头可以引爆时揭示全部视野。

  • 仅对所属方有效。

rulesmd.ini中:

[SOMEWARHEAD] ; Warhead
SpySat=no     ; boolean

迷雾弹

  • 弹头可以引爆时覆盖全部视野。

  • 仅对敌人有效。

rulesmd.ini中:

[SOMEWARHEAD] ; Warhead
BigGap=no     ; boolean

识破伪装

  • 弹头现在可以移除目标的伪装。

rulesmd.ini中:

[SOMEWARHEAD]                      ; Warhead
RemoveDisguise=no                  ; boolean

解除心控

  • 弹头现在可以破坏心控链接 (对永久心控无效) 。

rulesmd.ini中:

[SOMEWARHEAD]                        ; Warhead
RemoveMindControl=no                 ; boolean

暴击

  • 现在可以设定某弹头是否会在爆炸时造成暴击伤害。

rulesmd.ini中:

[SOMEWARHEAD]       ; Warhead
Crit.Chance=0.0     ; float, chance on [0.0-1.0] scale
Crit.ExtraDamage=0  ; integer, extra damage
Crit.Affects=all    ; list of Affected Target Enumeration (none|land|water|empty|infantry|units|buildings|all)
Crit.AnimList=      ; list of animations

[SOMETECHNO]        ; TechnoType
ImmuneToCrit=no     ; boolean

微观定义水花

image

  • 允许弹头自定义水花动画,详情请见Conventional

rulesmd.ini中:

[SOMEWARHEAD]            ; Warhead
SplashList=<none>        ; list of animations to play
SplashList.PickRandom=no ; play a random animation from the list? boolean, defaults to no

触发特定的NotHuman步兵死亡动画序列

  • 弹头可以触发指定的NotHuman=yes的步兵的死亡动画序列,值代表Die1Die5

rulesmd.ini中:

[SOMEWARHEAD]            ; Warhead
NotHuman.DeathSequence=  ; integer (1 to 5)

抛射体

拦截抛射体

image
拦截逻辑在Tiberium Crisis

  • 抛射体现在可以被单位拦截,拦截者的抛射体必须设置Inviso=yesAA=yes以确保拦截可以正常工作。此抛射体必须被用于主武器。

    • Interceptor.GuardRange决定拦截抛射体的最大距离。而单位的武器距离将限制拦截的实际距离。

    • 精英级时使用Interceptor.EliteGuardRange

    • Interceptor.MinimumGuardRange决定拦截抛射体的最小距离。小于此距离的抛射体不会被拦截。

    • 精英级时使用Interceptor.EliteMinimumGuardRange

rulesmd.ini中:

[SOMETECHNO]                            ; TechnoType
Interceptor=no                          ; boolean
Interceptor.GuardRange=0.0              ; double
Interceptor.EliteGuardRange=0.0         ; double
Interceptor.MinimumGuardRange=0.0       ; double
Interceptor.EliteMinimumGuardRange=0.0  ; double

[SOMEPROJECTILE] ; Projectile
Interceptable=no ; boolean

脚本动作

71时效性区域警戒

  • 可以使单位进入一段时间的区域警戒模式。类似脚本5 警戒(…秒) (5,n),但是使用的是更具攻击性的区域境界动作。

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=71,n            ; integer, time in ingame seconds

72向载具中装载

  • 使该小队内的所有非载具单位进入载具。在战役中,下一条脚本必须为43 等待到满载 (43,0),否则脚本将不会继续。

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=72,0

73等待直到装满弹药

  • 当小队内所有成员弹药满时继续执行下一个动作。

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=73,0

74-81 常规目标类型攻击行为

  • 这些行为指示TeamType如何使用小队成员接近并攻击由第二个参数给定的目标, 该参数是一个预先定义好的通用组别。参考下列表格中可以使用的行为(第一参数值)和参数(第二参数值)。

    • 基于威胁度的攻击行为会参考 rulesmd.iniTargetSpecialThreatCoefficientDefaultEnemyHouseThreatBonus 标签。

    • 所有Aircrafts在攻击其他空中单位时将结束该脚本。这一行为是有意的,如果缺少这一行为则Aircrafts将在开发该功能的当下存在某些无法修复的bug。

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=i,n             ; where 74 <= i <= 81

行为

参数

重复

目标优先级

描述

74

目标类型#

更近时更高威胁

75

目标类型#

更远时更高威胁

76

目标类型#

更近

77

目标类型#

更远

78

目标类型#

更近时更高威胁

当一个小队成员摧毁给定目标时结束

79

目标类型#

更远时更高威胁

当一个小队成员摧毁给定目标时结束

80

目标类型#

更近

当一个小队成员摧毁给定目标时结束

81

目标类型#

更远

当一个小队成员摧毁给定目标时结束

  • 下列值是可被用于新攻击脚本行为的第二参数的目标类型#

Target Type

描述

1

任意目标

任意敌方 VehicleTypes, AircraftTypes, InfantryTypesBuildingTypes

2

建筑

任何不含 Artillary=yes, TickTank=yes, ICBMLauncher=yesSensorArray=yes 的敌方 BuildingTypes

3

矿车

任何含有 Harvester=yesResourceGatherer=yes 的敌方 VehicleTypes, 以及含有 ResourceGatherer=yes 的敌方 BuildingTypes

4

步兵

任意敌方 InfantryTypes

5

载具

任何含有 Artillary=yes, TickTank=yes, ICBMLauncher=yesSensorArray=yesVehicleTypes, AircraftTypes, BuildingTypes

6

工厂

任何含有Factory=设定的敌方 BuildingTypes

7

防御建筑

任何含有 IsBaseDefense=yes 的敌方 BuildingTypes

8

所属方威胁

任何将小队所属方的任何单位作为目标的敌方对象,或者任何接近小队队长的敌人

9

发电厂

任何含有正数值 Power= 的敌方 BuildingTypes

10

驻扎建筑

任何被步兵驻扎的 BuildingTypes

11

科技建筑

任何含有 Unsellable=yes, Capturable=yes, 负数值 TechLevel= 或出现在 [AI]>NeutralTechBuildings= 列表上的 BuildingTypes

12

矿石精炼厂

任何含有Refinery=yes or ResourceGatherer=yes 的敌方 BuildingTypes 及含有 ResourceGatherer=yesHarvester=no 的敌方 VehicleTypes (如奴隶矿厂)

13

心灵控制者

任何拥有带 MindControl=yes 弹头的武器的 VehicleTypes, AircraftTypes, InfantryTypesBuildingTypes

14

空中单位

任意敌方的 AircraftTypes 及飞行的 VehicleTypesInfantryTypes

15

海上目标

任何含有 Naval=yes 的敌方 BuildingTypes and VehicleTypes, 以及在水面单元格上的敌方 VehicleTypes, AircraftTypes, InfantryTypes

16

干扰者

任何含有正数值 InhibitorRange=, RadarJamRadius=CloakGenerator=yesGapGenerator=yes的敌方对象

17

地面载具

任何不含 Naval=yes 的敌方 VehicleTypes, 着陆的 AircraftTypes 及由载具部署而来的 BuildingTypes

18

经济单位

任何含有 Harvester=yes or ResourceGatherer=yes 的敌方 VehicleTypes, 及含有 Refinery=yes, ResourceGatherer=yesOrePurifier=yes 的敌方 BuildingTypes

19

兵营

任何含有 Factory=InfantryType 的敌方 BuildingTypes

20

战车工厂

任何含有 Factory=UnitType 的敌方 `BuildingTypes

21

机场

任何含有 Factory=AircraftType 的敌方 `BuildingTypes

22

雷达

任何含有 Radar=yes or SpySat=yes 的敌方 BuildingTypes

23

科技实验室

任何在 [AI]>BuildTech= 列表上的敌方 BuildingTypes

24

船坞

任何含有 Naval=yesFactory=UnitType 的敌方 `BuildingTypes

25

超级武器

任何含有 SuperWeapon=, SuperWeapon2=SuperWeapons= 的敌方 BuildingTypes

26

建造厂

任何含有 ConstructionYard=yesFactory=BuildingType 的敌方 BuildingTypes

27

中立

任意中立对象 (Civilian)

28

发生器

任何含有 CloakGenerator=yesGapGenerator=yes 的敌方 BuildingTypes

29

雷达干扰器

任何含有正数值 RadarJamRadius= 的敌方 BuildingTypes

30

屏蔽器

任何含有正数值 InhibitorRange= 的敌方 BuildingTypes

31

Naval Units

任何含有 Naval=yes 的 敌方 VehicleTypes, 或在水面单元格上的敌方 VehicleTypes, AircraftTypes, InfantryTypes

32

机动单位

任意 VehicleTypes, AircraftTypes and InfantryTypes

33

可占领目标

任何含有 Capturable=yes 或同时有 BridgeRepairHut=yesRepairable=yesBuildingTypes

34

区域威胁

任何处于小队队长的警戒范围内的敌方对象

82 降低AI触发当前权重

  • 当该脚本行为被执行时,它将降低AI触发当前的权重。当前权重将不会逾越AI触发的权重上下限。要注意的是同个AI触发下的所有TeamTypes或早或晚都会更新当前权重。第二个参数是一个正值。要注意游戏本体在计算触发周期的当前权重时只采用两个小队中的第一个,而该行为将无视该小队是其中哪个,当前权重都将在行为被执行时进行计算。

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=82,n

83 增加AI触发当前权重

  • 当该脚本行为被执行时,它将增加AI触发当前的权重。当前权重将不会逾越AI触发的权重上下限。要注意的是同个AI触发下的所有TeamTypes或早或晚都会更新当前权重。第二个参数是一个正值。要注意游戏本体在计算触发周期的当前权重时只采用两个小队中的第一个,而该行为将无视该小队是其中哪个,当前权重都将在行为被执行时进行计算。

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=83,n

84-91 AITargetTypes 攻击行为

  • These Actions instruct the TeamType to use the TaskForce to approach and attack the target specified by the second parameter which is an index of a modder-defined group from AITargetTypess. Look at the tables below for the possible Actions (first parameter value) and Arguments (the second parameter value).

    • 基于威胁度的攻击行为会参考 rulesmd.iniTargetSpecialThreatCoefficientDefaultEnemyHouseThreatBonus 标签。

    • 所有Aircrafts在攻击其他空中单位时将结束该脚本。这一行为是有意的,如果缺少这一行为则Aircrafts将在开发该功能的当下存在某些无法修复的bug。

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=i,n             ; where 84 <= i <= 91

行为

参数

重复

目标优先级

描述

84

AITargetTypes 序号#

更近时更高威胁

85

AITargetTypes 序号#

更远时更高威胁

86

AITargetTypes 序号#

更近

87

AITargetTypes 序号#

更远

88

AITargetTypes 序号#

更近时更高威胁

当一个小队成员摧毁给定目标时结束

89

AITargetTypes 序号#

更远时更高威胁

当一个小队成员摧毁给定目标时结束

90

AITargetTypes 序号#

更近

当一个小队成员摧毁给定目标时结束

91

AITargetTypes 序号#

更远

当一个小队成员摧毁给定目标时结束

  • The second parameter with a 0-based index for the AITargetTypes section specifies the list of possible VehicleTypes, AircraftTypes, InfantryTypes and BuildingTypes that can be evaluated. The new AITargetTypes section must be declared in rulesmd.ini for making this script work:

rulesmd.ini中:

[AITargetTypes]  ; List of TechnoType lists
0=SOMETECHNOTYPE,SOMEOTHERTECHNOTYPE,SAMPLETECHNOTYPE
1=ANOTHERTECHNOTYPE,YETANOTHERTECHNOTYPE
; ...

92 如果未发现目标则等待

  • When executed before a new Attack ScriptType Actions like 74-81 and 84-91 the TeamType will remember that must wait 1 second if no target was selected. The second parameter is a positive value that specifies how much retries the Attack will do when no target was found before new Attack ScriptType Action is discarded & the script execution jumps to the next line. The value 0 means infinite retries.

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=92,n            ; integer n=0

93 小队的触发权重奖励

  • When executed before a new Attack ScriptType Actions like 74-81 and 84-91 the TeamType will remember that must be rewarded increasing the current Weight of the AI Trigger when the TeamType Target was killed by any of the Team members. The current Weight will never surprass the Minimum Weight and Maximum Weight limits of the AI Trigger. The second parameter is a positive value.

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=93,n            ; integer n=0

94 抽选一个随机脚本

  • When executed this action picks a random Script Type and replaces the current script by the new picked. The second parameter is a 0-based index from the new section AIScriptsList explained below.

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=94,n

The second parameter is a 0-based index for the AIScriptsList section that specifies the list of possible ScriptTypes that can be evaluated. The new AIScriptsList section must be declared in rulesmd.ini for making this script work:

rulesmd.ini中:

[AIScriptsList]  ; List of ScriptType lists
0=SOMESCRIPTTYPE,SOMEOTHERSCRIPTTYPE,SAMPLESCRIPTTYPE
1=ANOTHERSCRIPTTYPE,YETANOTHERSCRIPTTYPE
; ...

95-98 移动小队至单位地点

  • 这些行为指示TeamType如何使用小队成员接近并攻击由第二个参数给定的目标。参考下列表格中可以使用的行为(第一参数值)和参数(第二参数值)。

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=i,n             ; where 95 <= i <= 98

行为

参数

目标方

目标优先级

描述

95

目标类型#

敌方

更近时更高威胁

96

目标类型#

敌方

更远时更高威胁

97

目标类型#

友方

更近

98

目标类型#

友方

更远

111 Un-register Team success

  • Is just the opposite effect of the script action 49,0. Like if the Team failed.

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=111,0

112 于小队队长周围暂时集结

  • 将使小队成员在小队队长附近进入给定时长的区域警戒状态(该单位将在行为结束前几乎无法移动)。对队长周围的默认半径定义来自于[General] > CloseEnough,其余单位将不会离开这一范围。

aimd.ini中:

[SOMESCRIPTTYPE]  ; ScriptType
x=112,n