Added option to stop all ground movement.

This commit is contained in:
iTracerFacer 2024-12-05 10:14:08 -06:00
parent 29ab7a877f
commit eb2d3bca1e
4 changed files with 549 additions and 61 deletions

View File

@ -1,10 +1,9 @@
CarrierMenu = MENU_MISSION:New("Carrier Operations", missionMenu)
CarrierLayout4SpawnsClearDeck = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Clear Deck 4 Spawns", CarrierMenu, CarrierClearDeck4Spawns)
CarrierLayoutBlockedDeck4Spawns = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Blocked Deck 4 Spawns", CarrierMenu, CarrierBlockedDeck4Spawns)
CarrierLayout8SpawnsClearDeck = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Clear Deck 8 Spawns", CarrierMenu, CarrierClearDeck8Spawns)
CarrierLayoutBlockedDeck8Spawns = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Blocked Deck 8 Spawns", CarrierMenu, CarrierBlockedDeck8Spawns)
CarrierLayoutMassRecoveryCat2Tomcats = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Mass Recovery", CarrierMenu, CarrierMassRecoveryCat2Tomcats)
CarrierLayoutCleanDeck = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Clear Deck", CarrierMenu, CarrierCleanDeck)
-- This script takes Layouts orginally created by Redkite: https://www.youtube.com/user/RedKiteRender/
-- and rotates through the layouts to spawn them on the carrier deck.
-- Adds a menu item to clear the deck of all spawned objects.
local RotateLayoutInterval = 300 -- Time in seconds to rotate through the layouts
local function CarrierCleanDeck()
@ -2064,13 +2063,495 @@ local function CarrierBlockedDeck4Spawns()
end
local function CarrierCleanDeck16Spawns()
-- Created by Redkite: https://www.youtube.com/user/RedKiteRender/
local staticObj = {
["name"] = "16temp Finger Seahawk", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["livery_id"] = "standard",
["category"] = "Helicopters",
["offsets"] =
{
["y"] = -25.023610410048,
["angle"] = 1.7976891295542,
["x"] = -120.511512843,
}, -- end of ["offsets"]
["type"] = "SH-60B",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp Junk Yard Tug", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["offsets"] =
{
["y"] = 29.219321732642,
["angle"] = 2.4958208303519,
["x"] = -77.186823118536,
}, -- end of ["offsets"]
["type"] = "AS32-31A",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp LSO Station 3", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["category"] = "Personnel",
["offsets"] =
{
["y"] = -22.370473980031,
["angle"] = 2.4434609527921,
["x"] = -130.61201797701,
}, -- end of ["offsets"]
["shape_name"] = "carrier_lso_usa",
["type"] = "Carrier LSO Personell",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp LSO Station 1", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["category"] = "Personnel",
["offsets"] =
{
["y"] = -21.789118479996,
["angle"] = 4.2935099599061,
["x"] = -129.42353100701,
}, -- end of ["offsets"]
["shape_name"] = "carrier_lso1_usa",
["type"] = "Carrier LSO Personell 1",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp LSO Station 2", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["livery_id"] = "white",
["category"] = "Personnel",
["offsets"] =
{
["y"] = -22.656188270019,
["angle"] = 1.850049007114,
["x"] = -129.497732263,
}, -- end of ["offsets"]
["shape_name"] = "carrier_tech_USA",
["type"] = "us carrier tech",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp Corral Tech 1", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["livery_id"] = "yellow",
["category"] = "Personnel",
["offsets"] =
{
["y"] = 24.378384780779,
["angle"] = 3.1764992386297,
["x"] = -1.862423344297,
}, -- end of ["offsets"]
["shape_name"] = "carrier_tech_USA",
["type"] = "us carrier tech",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp Corral Tech 2", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["livery_id"] = "yellow",
["category"] = "Personnel",
["offsets"] =
{
["y"] = 24.943464248674,
["angle"] = 5.218534463463,
["x"] = -2.5415543022973,
}, -- end of ["offsets"]
["shape_name"] = "carrier_tech_USA",
["type"] = "us carrier tech",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp Yunk Yard Seaman", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["category"] = "Personnel",
["offsets"] =
{
["y"] = 30.850786532392,
["angle"] = 4.7472955654246,
["x"] = -76.189816852042,
}, -- end of ["offsets"]
["shape_name"] = "carrier_seaman_USA",
["type"] = "Carrier Seaman",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp Corral Tug", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["category"] = "ADEquipment",
["offsets"] =
{
["y"] = 25.915128857188,
["angle"] = 2.4958208303519,
["x"] = -1.4404247678031,
}, -- end of ["offsets"]
["type"] = "AS32-31A",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp EL1 Tech 1", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["livery_id"] = "yellow",
["category"] = "Personnel",
["offsets"] =
{
["y"] = 19.968042107823,
["angle"] = 1.5707963267949,
["x"] = 28.511725836535,
}, -- end of ["offsets"]
["shape_name"] = "carrier_tech_USA",
["type"] = "us carrier tech",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp Patio Firetruck", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["category"] = "ADEquipment",
["offsets"] =
{
["y"] = 29.26265261037,
["angle"] = 1.7453292519943,
["x"] = -112.85393314034,
}, -- end of ["offsets"]
["type"] = "AS32-p25",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp Patio Tech", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["livery_id"] = "white",
["category"] = "Personnel",
["offsets"] =
{
["y"] = 26.2488428746,
["angle"] = 3.700098014228,
["x"] = -111.91510989917,
}, -- end of ["offsets"]
["shape_name"] = "carrier_tech_USA",
["type"] = "us carrier tech",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
end
local function CarrierBlockedDeck16Spawns()
-- Created by Redkite: https://www.youtube.com/user/RedKiteRender/
local staticObj = {
["name"] = "16temp Blocker Point S3", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["livery_id"] = "usaf standard",
["category"] = "Planes",
["offsets"] =
{
["y"] = 34.469735879975,
["angle"] = 6.0911990894602,
["x"] = 67.739295549996,
}, -- end of ["offsets"]
["type"] = "S-3B",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp Blocker Island Seahawk", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["livery_id"] = "standard",
["category"] = "Helicopters",
["offsets"] =
{
["y"] = 15.023588829965,
["angle"] = 6.0039326268605,
["x"] = -44.319651074009,
}, -- end of ["offsets"]
["type"] = "SH-60B",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp Blocker Island Hornet", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["livery_id"] = "VFA-37",
["category"] = "Planes",
["offsets"] =
{
["y"] = 17.969597139978,
["angle"] = 5.7595865315813,
["x"] = -61.257363910001,
}, -- end of ["offsets"]
["type"] = "FA-18C_hornet",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
local staticObj = {
["name"] = "16temp Blocker Yunk Yard Tomcat", -- unit name (Name this something identifiable if you wish to remove it later)
-- Copy and paste over this with the units information
["livery_id"] = "VF-102 Diamondbacks",
["category"] = "Planes",
["offsets"] =
{
["y"] = 20.798515920003,
["angle"] = 5.7246799465414,
["x"] = -78.309457666997,
}, -- end of ["offsets"]
["type"] = "F-14B",
-- Copy and paste over this with the units information end
-- these can be left as is, but is required.
["groupId"] = 33, -- id's of the unit we're spawning (will auto increment if id taken?)
["unitId"] = 33,
["y"] = -00127900, -- The initial location of the unit (required else unit will offet on origin of map)
["x"] = -00126557,
["heading"] = 37.55948550292,
["linkUnit"] = shipID, -- This value must be set Via 'shipID = #' where # is the id of the ship you wish to spawn on
["linkOffset"] = true,
["dead"] = false,
["rate"] = 30,
}
coalition.addStaticObject(country.id.USA, staticObj)
-- ********************************************************
end
local carrierLayouts = {
CarrierClearDeck8Spawns,
CarrierBlockedDeck8Spawns,
CarrierClearDeck4Spawns,
CarrierBlockedDeck4Spawns,
CarrierMassRecoveryCat2Tomcats
CarrierMassRecoveryCat2Tomcats,
CarrierCleanDeck16Spawns,
CarrierBlockedDeck16Spawns
}
local currentLayoutIndex = 1
@ -2089,8 +2570,11 @@ local function cycleCarrierLayouts()
currentLayoutIndex = currentLayoutIndex % #carrierLayouts + 1
-- Schedule the next execution in 15 minutes (900 seconds)
timer.scheduleFunction(cycleCarrierLayouts, nil, timer.getTime() + 900)
timer.scheduleFunction(cycleCarrierLayouts, nil, timer.getTime() + RotateLayoutInterval)
end
-- Start the cycle
cycleCarrierLayouts()
CarrierMenu = MENU_MISSION:New("Carrier Operations", missionMenu)
CarrierLayoutCleanDeck = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Clear Deck", CarrierMenu, CarrierCleanDeck)

View File

@ -97,7 +97,9 @@
-- Infantry Patrol Settings
-- Due to some maps or locations where infantry moving is either not desired or has problems with the terrain you can disable infantry moving patrols.
-- Set to false, infantry units will spawn, and never move from their spawn location. This could be considered a defensive position and probably a good idea.
local ENABLE_CAPTURE_ZONE_MESSAGES = false -- Enable or disable attack messages when a zone is attacked.
local MOVING_ARMOR_PATROLS = false -- Units with armor will move to patrol zones if set to true. (default is true)
local MOVING_INFANTRY_PATROLS = false -- Units with infantry will not move to patrol zones if set to false. (default is false, to many moving units can cause performance issues)
local ENABLE_WAREHOUSE_MARKERS = true -- Enable or disable the warehouse markers on the map.
local UPDATE_MARK_POINTS_SCHED = 60 -- Update the map markers for warehouses every 60 seconds. ENABLE_WAREHOUSE_MARKERS must be set to true for this to work.
@ -109,7 +111,7 @@ local SPAWN_SCHED_RED_INFANTRY = 1800 -- Spawn Red Infantry groups every 1800 se
local INIT_RED_ARMOR = 15 -- Initial number of Red Armor groups
local MAX_RED_ARMOR = 200 -- Maximum number of Red Armor groups
local SPAWN_SCHED_RED_ARMOR = 300 -- Spawn Red Armor groups every 300 seconds
local SPAWN_SCHED_RED_ARMOR = 600 -- Spawn Red Armor groups every 300 seconds
local INIT_BLUE_INFANTRY = 25 -- Initial number of Blue Infantry groups
local MAX_BLUE_INFANTRY = 100 -- Maximum number of Blue Infantry groups
@ -691,6 +693,7 @@ end
-- Function to assign tasks to groups
local function AssignTasks(group, zoneStates)
if MOVING_ARMOR_PATROLS == true then
if not group or not group.GetCoalition or not group.GetCoordinate or not group.GetVelocity then
env.info("AssignTasks: Invalid group or missing methods")
return
@ -753,6 +756,7 @@ local function AssignTasks(group, zoneStates)
else
env.info("AssignTasks: No suitable zone found for group " .. group:GetName())
end
end
end