Fix convoy coordination, AI combat and spectator recovery

This commit is contained in:
2026-09-27 22:28:07 +02:00
parent 2551d171b3
commit c5629f7f4f
108 changed files with 4337 additions and 282 deletions
@@ -0,0 +1,763 @@
BehaviorTree "{D0BDF32990D2C687}AI/BehaviorTrees/ERR/MortarRapidFire.bt" {
Name "AI/BehaviorTrees/ERR/MortarRapidFire.bt"
Nodes {
RootNode Root {
Name "Root"
EditorPos 2512 -464
Nodes {
Repeater Repeater {
Name "Repeater"
EditorPos 2512.222 -312.222
Nodes {
Sequence Sequence {
Name "Sequence"
EditorPos 2507.166 -173.666
Nodes {
SCR_AIGetStaticArtilleryBehaviorParameters "SCR_AI Get Static Artillery Behavior Parameters" {
Name "SCR_AI Get Static Artillery Behavior Parameters"
EditorPos -1398.001 1037.668
OutPorts {
SingleOutputPortContainer SingleOutputPortContainer {
Port 0
PortName "ArtilleryEntity"
}
SingleOutputPortContainer SingleOutputPortContainer {
Port 17
PortName "TargetPos"
}
SingleOutputPortContainer SingleOutputPortContainer {
Port -1
PortName "InventoryEntity"
}
SingleOutputPortContainer SingleOutputPortContainer {
Port 1
PortName "AmmoPrefab"
}
}
}
Selector Selector {
Name "Selector"
EditorPos 413.238 1284.881
Nodes {
DecoTestVariable "Test Variable" {
Name "Test Variable"
EditorPos 165.588 1481.158
Nodes {
Sequence Sequence {
Name "Sequence"
EditorPos -131.571 2021.904
Nodes {
AITaskCharacterSetMovementSpeed "Character Set Movement Speed" {
Name "Character Set Movement Speed"
EditorPos -1542.333 2485
Group "{619AE77C783232F7}"
"Movement speed" RUN
}
Selector Selector {
Name "Selector"
EditorPos -1077.214 2563.785
Nodes {
DecoIsInVehicle "Is In Vehicle" {
Name "Is In Vehicle"
EditorPos -1249.942 2695.149
Nodes {
AITaskGetInVehicle "Get In Vehicle" {
Name "Get In Vehicle"
EditorPos -1266.143 2863.728
Group "{619AE77C783232F7}"
PrecisionXZ 1
Position TURRET
InVehicle 21
}
}
Group "{619AE77C783232F7}"
NegativeCondition 1
}
AITaskReturnState "Return State" {
Name "Return State"
EditorPos -1003.786 2694.214
Group "{619AE77C783232F7}"
Result SUCCESS
}
}
Group "{619AE77C783232F7}"
}
Selector Selector {
Name "Selector"
EditorPos -198.12 2172.832
Nodes {
SCR_AIGetArtilleryAimDistanceCompensation "SCR_AI Get Artillery Aim Distance Compensation" {
Name "SCR_AI Get Artillery Aim Distance Compensation"
EditorPos -633.667 2389.631
InPorts {
SingleInputPortContainer SingleInputPortContainer {
Port 16
PortName "ArtilleryEntity"
}
SingleInputPortContainer SingleInputPortContainer {
Port 19
PortName "AmmoPrefab"
}
SingleInputPortContainer SingleInputPortContainer {
Port 18
PortName "TargetPos"
}
}
OutPorts {
SingleOutputPortContainer SingleOutputPortContainer {
Port 20
PortName "AimPos"
}
SingleOutputPortContainer SingleOutputPortContainer {
Port 27
PortName "InitSpeedId"
}
}
Group "{619AE77C783232F7}"
}
Sequence Sequence {
Name "Sequence"
EditorPos -16.266 2433.212
Nodes {
SCR_AITalk "SCR_AI Talk" {
Name "SCR_AI Talk"
EditorPos -153.255 2556.307
InPorts {
SingleInputPortContainer SingleInputPortContainer {
Port -1
PortName "SpeakerIn"
}
SingleInputPortContainer SingleInputPortContainer {
Port -1
PortName "TargetIn"
}
SingleInputPortContainer SingleInputPortContainer {
Port -1
PortName "LocationIn"
}
SingleInputPortContainer SingleInputPortContainer {
Port -1
PortName "EnumIn"
}
}
Group "{619AE77C783232F7}"
m_messageType REPORT_NEGATIVE
m_ePreset MANDATORY
}
SCR_AIFailAction "SCR_AI Fail Action" {
Name "SCR_AI Fail Action"
EditorPos -30.897 2555.629
Group "{619AE77C783232F7}"
m_eFailReason TARGET_UNREACHABLE
}
AITaskReturnState "Return State" {
Name "Return State"
EditorPos 95.77 2555.712
Group "{619AE77C783232F7}"
Result RUNNING
}
}
Group "{619AE77C783232F7}"
}
}
Group "{619AE77C783232F7}"
}
AITaskAim Aim {
Name "Aim"
EditorPos 353.709 2413.569
Group "{619AE77C783232F7}"
InAimAtPosition 22
PrecisionXZ 0.05
PrecisionY 0.05
}
AITaskSetVariable "Set Variable" {
Name "Set Variable"
EditorPos 697.464 2397.535
Group "{619AE77C783232F7}"
SetValue "true"
OutVariable 23
}
AITaskGetOutVehicle "Get Out Vehicle" {
Name "Get Out Vehicle"
EditorPos 910.25 2399.999
Group "{619AE77C783232F7}"
}
AITaskIdle Idle {
Name "Idle"
EditorPos 1101.667 2391.666
Group "{619AE77C783232F7}"
Period 0.75
PeriodRandom 0
}
}
Group "{619AE77C783232F7}"
}
}
NegativeCondition 1
InVariable 24
TestType EqualsValue
TestValue "true"
}
DecoTestVariable "Test Variable" {
Name "Test Variable"
EditorPos 350.389 1454.611
Nodes {
AITaskReturnState "Return State" {
Name "Return State"
EditorPos 349.948 1608.115
Result SUCCESS
}
}
InVariable 24
TestType EqualsValue
TestValue "true"
}
Sequence Sequence {
Name "Sequence"
EditorPos 637.139 1525.278
Nodes {
AITaskIdle Idle {
Name "Idle"
EditorPos 560 1643.75
Group "{619AE77BE5296DF2}"
PeriodRandom 0
}
AITaskReturnState "Return State" {
Name "Return State"
EditorPos 692.833 1641.25
Group "{619AE77BE5296DF2}"
Result FAIL
}
}
Group "{619AE77BE5296DF2}"
}
}
}
Selector Selector {
Name "Selector"
EditorPos 2100.833 754.167
Nodes {
SCR_AIFindItemInInventory "SCR_AI Find Item In Inventory" {
Name "SCR_AI Find Item In Inventory"
EditorPos 1820.595 1035.833
InPorts {
SingleInputPortContainer SingleInputPortContainer {
Port 13
PortName "PrefabResourceName"
}
}
OutPorts {
SingleOutputPortContainer SingleOutputPortContainer {
Port 14
PortName "ItemEntity"
}
}
}
Sequence Sequence {
Name "Sequence"
EditorPos 2577.5 1823
Nodes {
Sequence Sequence {
Name "Sequence"
EditorPos 1923.916 2246.194
Nodes {
AITaskCreatePosition "Create Position" {
Name "Create Position"
EditorPos 1717.386 2367.864
Group "{618C93F9D918DCD9}"
InEntity 3
OutPosition 2
}
SCR_AIFindArsenalWithPrefab "SCR_AI Find Arsenal With Prefab" {
Name "SCR_AI Find Arsenal With Prefab"
EditorPos 1830.487 2493.422
InPorts {
SingleInputPortContainer SingleInputPortContainer {
Port 2
PortName "Pos"
}
SingleInputPortContainer SingleInputPortContainer {
Port 4
PortName "PrefabResourceName"
}
}
OutPorts {
SingleOutputPortContainer SingleOutputPortContainer {
Port 5
PortName "ArsenalEntity"
}
}
Group "{618C93F9D918DCD9}"
m_fSearchRadius 20
}
AITaskCharacterSetMovementSpeed "Character Set Movement Speed" {
Name "Character Set Movement Speed"
EditorPos 1993 2373.167
Group "{618C93F9D918DCD9}"
"Movement speed" RUN
}
}
Group "{618C93F9D918DCD9}"
}
Selector Selector {
Name "Selector"
EditorPos 2580.178 2035.203
Nodes {
AITaskMoveToEntity "Move To Entity" {
Name "Move To Entity"
EditorPos 2380.512 2174.286
Group "{618C93F9D918DCD9}"
PrecisionXZ 2
InEntity 9
}
AITaskReturnState "Return State" {
Name "Return State"
EditorPos 2668.428 2175.453
Group "{618C93F9D918DCD9}"
Result SUCCESS
}
}
Group "{618C93F9D918DCD9}"
}
SCR_AITakeItemFromArsenal "SCR_AI Take Item From Arsenal" {
Name "SCR_AI Take Item From Arsenal"
EditorPos 2894.548 2307.881
InPorts {
SingleInputPortContainer SingleInputPortContainer {
Port 6
PortName "ArsenalEntity"
}
SingleInputPortContainer SingleInputPortContainer {
Port 7
PortName "PrefabResourceName"
}
}
OutPorts {
SingleOutputPortContainer SingleOutputPortContainer {
Port 8
PortName "ItemEntity"
}
SingleOutputPortContainer SingleOutputPortContainer {
Port -1
PortName "CountItemsTaken"
}
}
Group "{618C93F9D918DCD9}"
m_iMaxItemsToTake 4
}
}
Group "{618C93F9D918DCD9}"
}
Sequence Sequence {
Name "Sequence"
EditorPos 2608.667 990
Nodes {
SCR_AITalk "SCR_AI Talk" {
Name "SCR_AI Talk"
EditorPos 2485.833 1116.944
InPorts {
SingleInputPortContainer SingleInputPortContainer {
Port -1
PortName "SpeakerIn"
}
SingleInputPortContainer SingleInputPortContainer {
Port -1
PortName "TargetIn"
}
SingleInputPortContainer SingleInputPortContainer {
Port -1
PortName "LocationIn"
}
SingleInputPortContainer SingleInputPortContainer {
Port -1
PortName "EnumIn"
}
}
Group "{619AE77C86E958CB}"
m_messageType REPORT_NO_AMMO
m_ePreset MANDATORY
}
SCR_AIFailAction "SCR_AI Fail Action" {
Name "SCR_AI Fail Action"
EditorPos 2605 1116.944
Group "{619AE77C86E958CB}"
m_eFailReason NO_AMMO
}
AITaskReturnState "Return State" {
Name "Return State"
EditorPos 2736.166 1116.944
Group "{619AE77C86E958CB}"
Result RUNNING
}
}
Group "{619AE77C86E958CB}"
}
}
}
SCR_AITakeGadgetInLeftHand "SCR_AI Take Gadget In Left Hand" {
Name "SCR_AI Take Gadget In Left Hand"
EditorPos 3229.69 912.619
InPorts {
SingleInputPortContainer SingleInputPortContainer {
Port 15
PortName "ItemIn"
}
}
OutPorts {
SingleOutputPortContainer SingleOutputPortContainer {
Port -1
PortName "ItemOut"
}
}
m_eGadgetType NONE
}
Sequence Sequence {
Name "Sequence"
EditorPos 4223.904 609.286
Nodes {
AITaskCharacterSetMovementSpeed "Character Set Movement Speed" {
Name "Character Set Movement Speed"
EditorPos 3828.833 809.333
Group "{618C93F9C535F544}"
"Movement speed" RUN
}
Selector Selector {
Name "Selector"
EditorPos 4224.476 805.571
Nodes {
AITaskMoveToEntity "Move To Entity" {
Name "Move To Entity"
EditorPos 4009.333 942.667
Group "{618C93F9C535F544}"
PrecisionXZ 1.5
InEntity 10
}
AITaskReturnState "Return State" {
Name "Return State"
EditorPos 4313.857 945.047
Group "{618C93F9C535F544}"
Result SUCCESS
}
}
Group "{618C93F9C535F544}"
}
Selector Selector {
Name "Selector"
EditorPos 5528.9 1018.859
Nodes {
Sequence Sequence {
Name "Sequence"
EditorPos 5132.62 1133.074
Nodes {
DecoTestVariable "Test Variable" {
Name "Test Variable"
EditorPos 4678.954 1280.82
Nodes {
SCR_AIConfigureArtilleryAmmo "SCR_AI Configure Artillery Ammo" {
Name "SCR_AI Configure Artillery Ammo"
EditorPos 4615.083 1454.909
InPorts {
SingleInputPortContainer SingleInputPortContainer {
Port 12
PortName "AmmoEntity"
}
SingleInputPortContainer SingleInputPortContainer {
Port 28
PortName "InitSpeedId"
}
}
Group "{618C93F9C535F544}"
}
}
Group "{618C93F9C535F544}"
NegativeCondition 1
InVariable 28
TestType EqualsValue
TestValue "-1"
}
SCR_AIShootStaticArtillery "SCR_AI Shoot Static Artillery" {
Name "SCR_AI Shoot Static Artillery"
EditorPos 5066.497 1316.781
InPorts {
SingleInputPortContainer SingleInputPortContainer {
Port 11
PortName "ArtilleryEntity"
}
SingleInputPortContainer SingleInputPortContainer {
Port 12
PortName "AmmoEntity"
}
}
Group "{618C93F9C535F544}"
}
AITaskIdle Idle {
Name "Idle"
EditorPos 5311.732 1318.751
Group "{618C93F9C535F544}"
Period 0
PeriodRandom 0
}
SCR_AIStaticArtilleryBehavior_ShootingLogic "SCR_AI Static Artillery Behavior_ Shooting Logic" {
Name "SCR_AI Static Artillery Behavior_ Shooting Logic"
EditorPos 5446.416 1323.941
OutPorts {
SingleOutputPortContainer SingleOutputPortContainer {
Port 25
PortName "AimingNeeded"
}
}
Group "{618C93F9C535F544}"
m_iShotsBetweenAiming 5
}
DecoTestVariable "Test Variable" {
Name "Test Variable"
EditorPos 5875.542 1327.115
Nodes {
AITaskSetVariable "Set Variable" {
Name "Set Variable"
EditorPos 5853.542 1466.37
Group "{618C93F9C535F544}"
SetValue "false"
OutVariable 26
}
}
Group "{618C93F9C535F544}"
InVariable 25
TestType EqualsValue
TestValue "true"
}
}
Group "{618C93F9C535F544}"
}
AITaskReturnState "Return State" {
Name "Return State"
EditorPos 5616.589 1132.723
Group "{618C93F9C535F544}"
Result SUCCESS
}
}
Group "{618C93F9C535F544}"
}
AITaskIdle Idle {
Name "Idle"
EditorPos 5794.508 1010.276
Group "{618C93F9C535F544}"
Period 0
PeriodRandom 0
}
}
Group "{618C93F9C535F544}"
}
}
}
}
RepeatTimes -1
}
}
}
}
Variables {
BtVariableEntity artilleryEntity {
Flags 0
Desc "IEntity"
}
BtVariableResourceName ammoPrefab {
Flags 0
Desc "ResourceName"
}
BtVariableVector vArtilleryPos {
Flags 0
Desc "vector"
}
BtVariableEntity arsenalEntity {
Flags 0
Desc "IEntity"
}
BtVariableEntity artilleryAmmoEntity {
Flags 0
Desc "IEntity"
}
BtVariableVector vTargetPos {
Flags 0
Desc "vector"
}
BtVariableVector vAimPos {
Flags 0
Desc "vector"
}
BtVariableBool bTurretAimed {
Flags 0
Desc "bool"
}
BtVariableBool bDoAimingAgain {
Flags 0
Desc "bool"
}
BtVariableInteger iInitSpeedId {
Flags 0
Desc "int"
}
}
VariablesRefs {
VariableReference artilleryEntity {
VariableType 0
EditorPos -944 976
}
VariableReference ammoPrefab {
VariableType 1
EditorPos -944 1136
}
VariableReference vArtilleryPos {
VariableType 2
EditorPos 1616 2528
Group "{618C93F9D918DCD9}"
}
VariableReference artilleryEntity {
VariableType 0
EditorPos 1520 2432
Group "{618C93F9D918DCD9}"
}
VariableReference ammoPrefab {
VariableType 1
EditorPos 1552 2608
Group "{618C93F9D918DCD9}"
}
VariableReference arsenalEntity {
VariableType 3
EditorPos 1920 2608
Group "{618C93F9D918DCD9}"
}
VariableReference arsenalEntity {
VariableType 3
EditorPos 2688 2304
Group "{618C93F9D918DCD9}"
}
VariableReference ammoPrefab {
VariableType 1
EditorPos 2624 2384
Group "{618C93F9D918DCD9}"
}
VariableReference artilleryAmmoEntity {
VariableType 4
EditorPos 2896 2432
Group "{618C93F9D918DCD9}"
}
VariableReference arsenalEntity {
VariableType 3
EditorPos 2192 2208
Group "{618C93F9D918DCD9}"
}
VariableReference artilleryEntity {
VariableType 0
EditorPos 3792 976
Group "{618C93F9C535F544}"
}
VariableReference artilleryEntity {
VariableType 0
EditorPos 4864 1312
Group "{618C93F9C535F544}"
}
VariableReference artilleryAmmoEntity {
VariableType 4
EditorPos 4336 1456
Group "{618C93F9C535F544}"
}
VariableReference ammoPrefab {
VariableType 1
EditorPos 1568 1072
}
VariableReference artilleryAmmoEntity {
VariableType 4
EditorPos 1824 1136
}
VariableReference artilleryAmmoEntity {
VariableType 4
EditorPos 2976 976
}
VariableReference artilleryEntity {
VariableType 0
EditorPos -864 2368
Group "{619AE77C783232F7}"
}
VariableReference vTargetPos {
VariableType 5
EditorPos -944 1056
}
VariableReference vTargetPos {
VariableType 5
EditorPos -848 2528
Group "{619AE77C783232F7}"
}
VariableReference ammoPrefab {
VariableType 1
EditorPos -928 2448
Group "{619AE77C783232F7}"
}
VariableReference vAimPos {
VariableType 6
EditorPos -224 2352
Group "{619AE77C783232F7}"
}
VariableReference artilleryEntity {
VariableType 0
EditorPos -1472 2896
Group "{619AE77C783232F7}"
}
VariableReference vAimPos {
VariableType 6
EditorPos 192 2448
Group "{619AE77C783232F7}"
}
VariableReference bTurretAimed {
VariableType 7
EditorPos 736 2512
Group "{619AE77C783232F7}"
}
VariableReference bTurretAimed {
VariableType 7
EditorPos -64 1504
}
VariableReference bDoAimingAgain {
VariableType 8
EditorPos 5568 1424
Group "{618C93F9C535F544}"
}
VariableReference bTurretAimed {
VariableType 7
EditorPos 5856 1584
Group "{618C93F9C535F544}"
}
VariableReference iInitSpeedId {
VariableType 9
EditorPos -224 2448
Group "{619AE77C783232F7}"
}
VariableReference iInitSpeedId {
VariableType 9
EditorPos 4416 1536
Group "{618C93F9C535F544}"
}
}
Groups {
BTGroup "{618C93F9C535F544}" {
Name "Shoot artillery"
Color 0.6 0.6 0.6 0.251
}
BTGroup "{618C93F9D918DCD9}" {
Name "Find ammo in arsenal"
Color 0.6 0.6 0.6 0.251
}
BTGroup "{619AE77C783232F7}" {
Name "Aim mortar"
Color 0.6 0.6 0.6 0.251
}
BTGroup "{619AE77C86E958CB}" {
Name "No ammo for artillery"
Color 0.6 0.6 0.6 0.251
}
BTGroup "{619AE77BE5296DF2}" {
Name "Unable to get in or aim artillery"
Color 0.6 0.6 0.6 0.251
}
}
}
@@ -0,0 +1,7 @@
MetaFileClass {
Name "{D0BDF32990D2C687}AI/BehaviorTrees/ERR/MortarRapidFire.bt"
Configurations {
BehaviorTreeResourceClass PC {}
BehaviorTreeResourceClass HEADLESS {}
}
}