mirror of
https://github.com/iTracerFacer/DCS_MissionDev.git
synced 2025-12-03 04:14:46 +00:00
380 lines
24 KiB
Lua
380 lines
24 KiB
Lua
|
|
--[[ THIS FILE MUST BE LOADED BEFORE THE MAIN Moose_TADC.lua SCRIPT
|
|
═══════════════════════════════════════════════════════════════════════════════
|
|
SQUADRON CONFIGURATION
|
|
═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
INSTRUCTIONS:
|
|
1. Create fighter aircraft templates for BOTH coalitions in the mission editor
|
|
2. Place them at or near the airbases you want them to operate from
|
|
3. Configure RED squadrons in RED_SQUADRON_CONFIG
|
|
4. Configure BLUE squadrons in BLUE_SQUADRON_CONFIG
|
|
|
|
TEMPLATE NAMING SUGGESTIONS:
|
|
• RED: "RED_CAP_Batumi_F15", "RED_INTERCEPT_Senaki_MiG29"
|
|
• BLUE: "BLUE_CAP_Nellis_F16", "BLUE_INTERCEPT_Creech_F22"
|
|
• Include coalition and airbase name for easy identification
|
|
|
|
AIRBASE NAMES:
|
|
• Use exact names as they appear in DCS (case sensitive)
|
|
• RED examples: "Batumi", "Senaki", "Gudauta"
|
|
• BLUE examples: "Nellis AFB", "McCarran International", "Tonopah Test Range"
|
|
• Find airbase names in the mission editor
|
|
|
|
AIRCRAFT NUMBERS:
|
|
• Set realistic numbers based on mission requirements
|
|
• Consider aircraft consumption and cargo replenishment
|
|
• Balance between realism and gameplay performance
|
|
|
|
ZONE-BASED AREAS OF RESPONSIBILITY:
|
|
• Create zones in mission editor (MOOSE polygons, circles, etc.)
|
|
• primaryZone: Squadron's main area (full response)
|
|
• secondaryZone: Backup/support area (reduced response)
|
|
• tertiaryZone: Emergency fallback area (enhanced response)
|
|
• Leave zones as nil for global threat response
|
|
• Multiple squadrons can share overlapping zones
|
|
• Use zone names exactly as they appear in mission editor
|
|
|
|
ZONE BEHAVIOR EXAMPLES:
|
|
• Border Defense: primaryZone = "SECTOR_ALPHA", secondaryZone = "BUFFER_ZONE"
|
|
• Base Defense: tertiaryZone = "BASE_PERIMETER", enableFallback = true
|
|
• Layered Defense: Different zones per squadron with overlap
|
|
• Emergency Response: High tertiaryResponse ratio for critical areas
|
|
]]
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════════
|
|
-- RED COALITION SQUADRONS
|
|
-- ═══════════════════════════════════════════════════════════════════════════
|
|
|
|
RED_SQUADRON_CONFIG = {
|
|
--[[ EXAMPLE RED SQUADRON - CUSTOMIZE FOR YOUR MISSION
|
|
{
|
|
templateName = "RED_CAP_Batumi_F15", -- Template name from mission editor
|
|
displayName = "Batumi F-15C CAP", -- Human-readable name for logs
|
|
airbaseName = "Batumi", -- Exact airbase name from DCS
|
|
aircraft = 12, -- Maximum aircraft in squadron
|
|
skill = AI.Skill.GOOD, -- AI skill level
|
|
altitude = 20000, -- Patrol altitude (feet)
|
|
speed = 350, -- Patrol speed (knots)
|
|
patrolTime = 25, -- Time on station (minutes)
|
|
type = "FIGHTER"
|
|
|
|
-- Zone-based Areas of Responsibility (optional - leave nil for global response)
|
|
primaryZone = "RED_BORDER", -- Main responsibility area (zone name from mission editor)
|
|
secondaryZone = nil, -- 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
|
|
}
|
|
},
|
|
]]
|
|
|
|
-- ADD YOUR RED SQUADRONS HERE
|
|
{
|
|
templateName = "Bernay Saint Martin BF109", -- Change to your RED template name
|
|
displayName = "Bernay Saint Martin BF109", -- Change to your preferred name
|
|
airbaseName = "Bernay Saint Martin", -- Change to your RED airbase
|
|
aircraft = 26, -- Adjust aircraft count
|
|
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT, ACE
|
|
altitude = 20000, -- Patrol altitude (feet)
|
|
speed = 350, -- 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 = "Bernay Saint Martin FW190D9", -- Change to your RED template name
|
|
displayName = "Bernay Saint Martin FW190D9", -- Change to your preferred name
|
|
airbaseName = "Bernay Saint Martin", -- Change to your RED airbase
|
|
aircraft = 30, -- Adjust aircraft count
|
|
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
|
altitude = 20000, -- Patrol altitude (feet)
|
|
speed = 350, -- 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 = "Bernay Saint Martin FW190A8", -- Change to your RED template name
|
|
displayName = "Bernay Saint Martin FW190A8", -- Change to your preferred name
|
|
airbaseName = "Bernay Saint Martin", -- Change to your RED airbase
|
|
aircraft = 26, -- Adjust aircraft count
|
|
skill = AI.Skill.ACE, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
|
altitude = 20000, -- Patrol altitude (feet)
|
|
speed = 350, -- 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 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
|
|
}
|
|
}
|
|
}
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════════
|
|
-- BLUE COALITION SQUADRONS
|
|
-- ═══════════════════════════════════════════════════════════════════════════
|
|
|
|
BLUE_SQUADRON_CONFIG = {
|
|
--[[ EXAMPLE BLUE SQUADRON - CUSTOMIZE FOR YOUR MISSION
|
|
{
|
|
templateName = "BLUE_CAP_Nellis_F16", -- Template name from mission editor
|
|
displayName = "Nellis F-16C CAP", -- Human-readable name for logs
|
|
airbaseName = "Nellis AFB", -- Exact airbase name from DCS
|
|
aircraft = 14, -- Maximum aircraft in squadron
|
|
skill = AI.Skill.EXCELLENT, -- AI skill level
|
|
altitude = 22000, -- Patrol altitude (feet)
|
|
speed = 380, -- Patrol speed (knots)
|
|
patrolTime = 28, -- Time on station (minutes)
|
|
type = "FIGHTER" -- Aircraft type
|
|
},
|
|
]]
|
|
|
|
-- ADD YOUR BLUE SQUADRONS HERE
|
|
|
|
{
|
|
templateName = "Chailey P51", -- Change to your BLUE template name
|
|
displayName = "Chailey P51", -- Change to your preferred name
|
|
airbaseName = "Chailey", -- Change to your BLUE airbase
|
|
aircraft = 26, -- Adjust aircraft count
|
|
skill = AI.Skill.EXCELLENT, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
|
altitude = 18000, -- Patrol altitude (feet)
|
|
speed = 320, -- Patrol speed (knots)
|
|
patrolTime = 22, -- 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 = nil, -- 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 = true, -- 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 = "Chailey P47", -- Change to your BLUE template name
|
|
displayName = "Chailey P47", -- Change to your preferred name
|
|
airbaseName = "Chailey", -- Change to your BLUE airbase
|
|
aircraft = 26, -- Adjust aircraft count
|
|
skill = AI.Skill.EXCELLENT, -- AVERAGE, GOOD, HIGH, EXCELLENT
|
|
altitude = 18000, -- Patrol altitude (feet)
|
|
speed = 320, -- Patrol speed (knots)
|
|
patrolTime = 22, -- 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 = nil, -- 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 = true, -- Auto-switch to tertiary when base threatened
|
|
priorityThreshold = 4, -- Min aircraft count for "major threat"
|
|
ignoreLowPriority = false, -- Ignore threats below threshold in secondary zones
|
|
}
|
|
},
|
|
}
|
|
|
|
|