mirror of
https://github.com/iTracerFacer/DCS_MissionDev.git
synced 2025-12-03 04:14:46 +00:00
Operation Thunderbolt 1.0.0
This commit is contained in:
parent
88be6d1b42
commit
027e5370b2
Binary file not shown.
Binary file not shown.
9971
DCS_Normandy/Operation Thunderbolt/Moose_BomberEscort.lua
Normal file
9971
DCS_Normandy/Operation Thunderbolt/Moose_BomberEscort.lua
Normal file
File diff suppressed because it is too large
Load Diff
@ -100,8 +100,8 @@ local INIT_RED_INFANTRY = 15 -- Initial number of Red Infantry groups
|
|||||||
local MAX_RED_INFANTRY = 100 -- Maximum number of Red Infantry groups
|
local MAX_RED_INFANTRY = 100 -- Maximum number of Red Infantry groups
|
||||||
local SPAWN_SCHED_RED_INFANTRY = 1200 -- Base spawn frequency for Red Infantry (seconds)
|
local SPAWN_SCHED_RED_INFANTRY = 1200 -- Base spawn frequency for Red Infantry (seconds)
|
||||||
|
|
||||||
local INIT_RED_ARMOR = 30 -- Initial number of Red Armor groups
|
local INIT_RED_ARMOR = 25 -- Initial number of Red Armor groups
|
||||||
local MAX_RED_ARMOR = 500 -- Maximum number of Red Armor groups
|
local MAX_RED_ARMOR = 100 -- Maximum number of Red Armor groups
|
||||||
local SPAWN_SCHED_RED_ARMOR = 200 -- Base spawn frequency for Red Armor (seconds)
|
local SPAWN_SCHED_RED_ARMOR = 200 -- Base spawn frequency for Red Armor (seconds)
|
||||||
|
|
||||||
-- Blue Side Settings
|
-- Blue Side Settings
|
||||||
@ -109,8 +109,8 @@ local INIT_BLUE_INFANTRY = 15 -- Initial number of Blue Infantry group
|
|||||||
local MAX_BLUE_INFANTRY = 100 -- Maximum number of Blue Infantry groups
|
local MAX_BLUE_INFANTRY = 100 -- Maximum number of Blue Infantry groups
|
||||||
local SPAWN_SCHED_BLUE_INFANTRY = 1200 -- Base spawn frequency for Blue Infantry (seconds)
|
local SPAWN_SCHED_BLUE_INFANTRY = 1200 -- Base spawn frequency for Blue Infantry (seconds)
|
||||||
|
|
||||||
local INIT_BLUE_ARMOR = 30 -- Initial number of Blue Armor groups
|
local INIT_BLUE_ARMOR = 25 -- Initial number of Blue Armor groups
|
||||||
local MAX_BLUE_ARMOR = 500 -- Maximum number of Blue Armor groups
|
local MAX_BLUE_ARMOR = 100 -- Maximum number of Blue Armor groups
|
||||||
local SPAWN_SCHED_BLUE_ARMOR = 200 -- Base spawn frequency for Blue Armor (seconds)
|
local SPAWN_SCHED_BLUE_ARMOR = 200 -- Base spawn frequency for Blue Armor (seconds)
|
||||||
|
|
||||||
local ASSIGN_TASKS_SCHED = 900 -- How often to reassign tasks to idle groups (seconds)
|
local ASSIGN_TASKS_SCHED = 900 -- How often to reassign tasks to idle groups (seconds)
|
||||||
@ -133,7 +133,7 @@ local BLUE_ARMOR_SPAWN_GROUP = "BlueArmorGroup"
|
|||||||
-- AI Tasking Behavior
|
-- AI Tasking Behavior
|
||||||
-- Note: DCS engine can crash with "CREATING PATH MAKES TOO LONG" if units try to path too far
|
-- Note: DCS engine can crash with "CREATING PATH MAKES TOO LONG" if units try to path too far
|
||||||
-- Keep these values conservative to reduce pathfinding load and avoid server crashes
|
-- Keep these values conservative to reduce pathfinding load and avoid server crashes
|
||||||
local MAX_ATTACK_DISTANCE = 22000 -- Maximum distance in meters for attacking enemy zones. Units won't attack zones farther than this. (25km ≈ 13.5nm)
|
local MAX_ATTACK_DISTANCE = 45000 -- Maximum distance in meters for attacking enemy zones. Units won't attack zones farther than this. (25km ≈ 13.5nm)
|
||||||
local ATTACK_RETRY_COOLDOWN = 1800 -- Seconds a group will wait before re-attempting an attack if no valid enemy zone was found (30 minutes)
|
local ATTACK_RETRY_COOLDOWN = 1800 -- Seconds a group will wait before re-attempting an attack if no valid enemy zone was found (30 minutes)
|
||||||
|
|
||||||
-- Define warehouses for each side
|
-- Define warehouses for each side
|
||||||
@ -144,7 +144,6 @@ local redWarehouses = {
|
|||||||
STATIC:FindByName("RedWarehouse4-1"),
|
STATIC:FindByName("RedWarehouse4-1"),
|
||||||
STATIC:FindByName("RedWarehouse5-1"),
|
STATIC:FindByName("RedWarehouse5-1"),
|
||||||
STATIC:FindByName("RedWarehouse6-1"),
|
STATIC:FindByName("RedWarehouse6-1"),
|
||||||
STATIC:FindByName("RedWarehouse7-1"),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local blueWarehouses = {
|
local blueWarehouses = {
|
||||||
@ -158,38 +157,33 @@ local blueWarehouses = {
|
|||||||
|
|
||||||
-- Define unit templates (these groups must exist in mission editor as LATE ACTIVATE)
|
-- Define unit templates (these groups must exist in mission editor as LATE ACTIVATE)
|
||||||
local redInfantryTemplates = {
|
local redInfantryTemplates = {
|
||||||
"RedInfantry1",
|
"German Infantry Squad-1",
|
||||||
"RedInfantry2",
|
"German Infantry Squad-2",
|
||||||
"RedInfantry3",
|
"German Infantry Squad-3",
|
||||||
"RedInfantry4",
|
"German Infantry Squad-4",
|
||||||
"RedInfantry5",
|
|
||||||
"RedInfantry6"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local redArmorTemplates = {
|
local redArmorTemplates = {
|
||||||
"RedArmor1",
|
"German Panzer Division-1",
|
||||||
"RedArmor2",
|
"German Panzer Division-2",
|
||||||
"RedArmor3",
|
"German Panzer Division-3",
|
||||||
"RedArmor4",
|
"German Panzer Division-4",
|
||||||
"RedArmor5",
|
"German Panzer Division-5",
|
||||||
"RedArmor6"
|
"German Panzer Division-6"
|
||||||
}
|
}
|
||||||
|
|
||||||
local blueInfantryTemplates = {
|
local blueInfantryTemplates = {
|
||||||
"BlueInfantry1",
|
"US Infantry Squad-1",
|
||||||
"BlueInfantry2",
|
|
||||||
"BlueInfantry3",
|
|
||||||
"BlueInfantry4",
|
|
||||||
"BlueInfantry5",
|
|
||||||
"BlueInfantry6"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local blueArmorTemplates = {
|
local blueArmorTemplates = {
|
||||||
"BlueArmor1",
|
"British Infantry Division-1",
|
||||||
"BlueArmor2",
|
"British Infantry Division-2",
|
||||||
"BlueArmor3",
|
"British Infantry Division-3",
|
||||||
"BlueArmor4",
|
"British Infantry Division-4",
|
||||||
"BlueArmor5"
|
"British Infantry Division-5",
|
||||||
|
"British Infantry Division-6"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ RED_SQUADRON_CONFIG = {
|
|||||||
templateName = "Bernay Saint Martin FW190D9", -- Change to your RED template name
|
templateName = "Bernay Saint Martin FW190D9", -- Change to your RED template name
|
||||||
displayName = "Bernay Saint Martin FW190D9", -- Change to your preferred name
|
displayName = "Bernay Saint Martin FW190D9", -- Change to your preferred name
|
||||||
airbaseName = "Bernay Saint Martin", -- Change to your RED airbase
|
airbaseName = "Bernay Saint Martin", -- Change to your RED airbase
|
||||||
aircraft = 12, -- Adjust aircraft count
|
aircraft = 30, -- Adjust aircraft count
|
||||||
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
||||||
altitude = 20000, -- Patrol altitude (feet)
|
altitude = 20000, -- Patrol altitude (feet)
|
||||||
speed = 350, -- Patrol speed (knots)
|
speed = 350, -- Patrol speed (knots)
|
||||||
@ -138,7 +138,7 @@ RED_SQUADRON_CONFIG = {
|
|||||||
templateName = "Bernay Saint Martin FW190A8", -- Change to your RED template name
|
templateName = "Bernay Saint Martin FW190A8", -- Change to your RED template name
|
||||||
displayName = "Bernay Saint Martin FW190A8", -- Change to your preferred name
|
displayName = "Bernay Saint Martin FW190A8", -- Change to your preferred name
|
||||||
airbaseName = "Bernay Saint Martin", -- Change to your RED airbase
|
airbaseName = "Bernay Saint Martin", -- Change to your RED airbase
|
||||||
aircraft = 14, -- Adjust aircraft count
|
aircraft = 26, -- Adjust aircraft count
|
||||||
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
||||||
altitude = 20000, -- Patrol altitude (feet)
|
altitude = 20000, -- Patrol altitude (feet)
|
||||||
speed = 350, -- Patrol speed (knots)
|
speed = 350, -- Patrol speed (knots)
|
||||||
@ -161,6 +161,141 @@ RED_SQUADRON_CONFIG = {
|
|||||||
ignoreLowPriority = false, -- Ignore threats below threshold in secondary zones
|
ignoreLowPriority = false, -- Ignore threats below threshold in secondary zones
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
templateName = "Ronai BF109", -- Change to your RED template name
|
||||||
|
displayName = "Ronai BF109", -- Change to your preferred name
|
||||||
|
airbaseName = "Ronai", -- Change to your RED airbase
|
||||||
|
aircraft = 25, -- Adjust aircraft count
|
||||||
|
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
||||||
|
altitude = 20000, -- Patrol altitude (feet)
|
||||||
|
speed = 300, -- Patrol speed (knots)
|
||||||
|
patrolTime = 25, -- Time on station (minutes)
|
||||||
|
type = "FIGHTER",
|
||||||
|
|
||||||
|
-- Zone-based Areas of Responsibility (optional - leave nil for global response)
|
||||||
|
primaryZone = "BATTLEGROUND", -- Main responsibility area (zone name from mission editor)
|
||||||
|
secondaryZone = "CHANNEL", -- Secondary coverage area (zone name)
|
||||||
|
tertiaryZone = nil, -- Emergency/fallback zone (zone name)
|
||||||
|
|
||||||
|
-- Zone behavior settings (optional - uses defaults if not specified)
|
||||||
|
zoneConfig = {
|
||||||
|
primaryResponse = 1.0, -- Intercept ratio multiplier in primary zone
|
||||||
|
secondaryResponse = 0.6, -- Intercept ratio multiplier in secondary zone
|
||||||
|
tertiaryResponse = 1.4, -- Intercept ratio multiplier in tertiary zone
|
||||||
|
maxRange = 200, -- Maximum engagement range from airbase (nm)
|
||||||
|
enableFallback = false, -- Auto-switch to tertiary when base threatened
|
||||||
|
priorityThreshold = 4, -- Min aircraft count for "major threat"
|
||||||
|
ignoreLowPriority = false, -- Ignore threats below threshold in secondary zones
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
templateName = "Ronai FW190A8", -- Change to your RED template name
|
||||||
|
displayName = "Ronai FW190A8", -- Change to your preferred name
|
||||||
|
airbaseName = "Ronai", -- Change to your RED airbase
|
||||||
|
aircraft = 35, -- Adjust aircraft count
|
||||||
|
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
||||||
|
altitude = 20000, -- Patrol altitude (feet)
|
||||||
|
speed = 300, -- Patrol speed (knots)
|
||||||
|
patrolTime = 25, -- Time on station (minutes)
|
||||||
|
type = "FIGHTER",
|
||||||
|
|
||||||
|
-- Zone-based Areas of Responsibility (optional - leave nil for global response)
|
||||||
|
primaryZone = "BATTLEGROUND", -- Main responsibility area (zone name from mission editor)
|
||||||
|
secondaryZone = "CHANNEL", -- Secondary coverage area (zone name)
|
||||||
|
tertiaryZone = nil, -- Emergency/fallback zone (zone name)
|
||||||
|
|
||||||
|
-- Zone behavior settings (optional - uses defaults if not specified)
|
||||||
|
zoneConfig = {
|
||||||
|
primaryResponse = 1.0, -- Intercept ratio multiplier in primary zone
|
||||||
|
secondaryResponse = 0.6, -- Intercept ratio multiplier in secondary zone
|
||||||
|
tertiaryResponse = 1.4, -- Intercept ratio multiplier in tertiary zone
|
||||||
|
maxRange = 200, -- Maximum engagement range from airbase (nm)
|
||||||
|
enableFallback = false, -- Auto-switch to tertiary when base threatened
|
||||||
|
priorityThreshold = 4, -- Min aircraft count for "major threat"
|
||||||
|
ignoreLowPriority = false, -- Ignore threats below threshold in secondary zones
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
templateName = "Lessay BF109", -- Change to your RED template name
|
||||||
|
displayName = "Lessay BF109", -- Change to your preferred name
|
||||||
|
airbaseName = "Lessay", -- Change to your RED airbase
|
||||||
|
aircraft = 26, -- Adjust aircraft count
|
||||||
|
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
||||||
|
altitude = 20000, -- Patrol altitude (feet)
|
||||||
|
speed = 300, -- Patrol speed (knots)
|
||||||
|
patrolTime = 25, -- Time on station (minutes)
|
||||||
|
type = "FIGHTER",
|
||||||
|
|
||||||
|
-- Zone-based Areas of Responsibility (optional - leave nil for global response)
|
||||||
|
primaryZone = "BATTLEGROUND", -- Main responsibility area (zone name from mission editor)
|
||||||
|
secondaryZone = "CHANNEL", -- Secondary coverage area (zone name)
|
||||||
|
tertiaryZone = nil, -- Emergency/fallback zone (zone name)
|
||||||
|
|
||||||
|
-- Zone behavior settings (optional - uses defaults if not specified)
|
||||||
|
zoneConfig = {
|
||||||
|
primaryResponse = 1.0, -- Intercept ratio multiplier in primary zone
|
||||||
|
secondaryResponse = 0.6, -- Intercept ratio multiplier in secondary zone
|
||||||
|
tertiaryResponse = 1.4, -- Intercept ratio multiplier in tertiary zone
|
||||||
|
maxRange = 200, -- Maximum engagement range from airbase (nm)
|
||||||
|
enableFallback = false, -- Auto-switch to tertiary when base threatened
|
||||||
|
priorityThreshold = 4, -- Min aircraft count for "major threat"
|
||||||
|
ignoreLowPriority = false, -- Ignore threats below threshold in secondary zones
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
templateName = "Lessay FW190D9", -- Change to your RED template name
|
||||||
|
displayName = "Lessay FW190D9", -- Change to your preferred name
|
||||||
|
airbaseName = "Lessay", -- Change to your RED airbase
|
||||||
|
aircraft = 30, -- Adjust aircraft count
|
||||||
|
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
||||||
|
altitude = 20000, -- Patrol altitude (feet)
|
||||||
|
speed = 300, -- Patrol speed (knots)
|
||||||
|
patrolTime = 25, -- Time on station (minutes)
|
||||||
|
type = "FIGHTER",
|
||||||
|
|
||||||
|
-- Zone-based Areas of Responsibility (optional - leave nil for global response)
|
||||||
|
primaryZone = "BATTLEGROUND", -- Main responsibility area (zone name from mission editor)
|
||||||
|
secondaryZone = "CHANNEL", -- Secondary coverage area (zone name)
|
||||||
|
tertiaryZone = nil, -- Emergency/fallback zone (zone name)
|
||||||
|
|
||||||
|
-- Zone behavior settings (optional - uses defaults if not specified)
|
||||||
|
zoneConfig = {
|
||||||
|
primaryResponse = 1.0, -- Intercept ratio multiplier in primary zone
|
||||||
|
secondaryResponse = 0.6, -- Intercept ratio multiplier in secondary zone
|
||||||
|
tertiaryResponse = 1.4, -- Intercept ratio multiplier in tertiary zone
|
||||||
|
maxRange = 200, -- Maximum engagement range from airbase (nm)
|
||||||
|
enableFallback = false, -- Auto-switch to tertiary when base threatened
|
||||||
|
priorityThreshold = 4, -- Min aircraft count for "major threat"
|
||||||
|
ignoreLowPriority = false, -- Ignore threats below threshold in secondary zones
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
templateName = "Fecamp-Benouville BF109", -- Change to your RED template name
|
||||||
|
displayName = "Fecamp-Benouville BF109", -- Change to your preferred name
|
||||||
|
airbaseName = "Fecamp-Benouville", -- Change to your RED airbase
|
||||||
|
aircraft = 30, -- Adjust aircraft count
|
||||||
|
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
||||||
|
altitude = 20000, -- Patrol altitude (feet)
|
||||||
|
speed = 300, -- Patrol speed (knots)
|
||||||
|
patrolTime = 25, -- Time on station (minutes)
|
||||||
|
type = "FIGHTER",
|
||||||
|
|
||||||
|
-- Zone-based Areas of Responsibility (optional - leave nil for global response)
|
||||||
|
primaryZone = "CHANNEL", -- Main responsibility area (zone name from mission editor)
|
||||||
|
secondaryZone = "BATTLEGROUND", -- Secondary coverage area (zone name)
|
||||||
|
tertiaryZone = nil, -- Emergency/fallback zone (zone name)
|
||||||
|
|
||||||
|
-- Zone behavior settings (optional - uses defaults if not specified)
|
||||||
|
zoneConfig = {
|
||||||
|
primaryResponse = 1.0, -- Intercept ratio multiplier in primary zone
|
||||||
|
secondaryResponse = 0.6, -- Intercept ratio multiplier in secondary zone
|
||||||
|
tertiaryResponse = 1.4, -- Intercept ratio multiplier in tertiary zone
|
||||||
|
maxRange = 200, -- Maximum engagement range from airbase (nm)
|
||||||
|
enableFallback = false, -- Auto-switch to tertiary when base threatened
|
||||||
|
priorityThreshold = 4, -- Min aircraft count for "major threat"
|
||||||
|
ignoreLowPriority = false, -- Ignore threats below threshold in secondary zones
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
-- ═══════════════════════════════════════════════════════════════════════════
|
-- ═══════════════════════════════════════════════════════════════════════════
|
||||||
Loading…
x
Reference in New Issue
Block a user