From 927625ad6462ebaa93730cc559c358480f301c44 Mon Sep 17 00:00:00 2001 From: "Marcos \"Tupper\" Romero" Date: Thu, 17 Dec 2020 09:45:55 -0700 Subject: [PATCH 01/11] Update CSAR.lua Generates Csar every time even when crash --- CSAR.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CSAR.lua b/CSAR.lua index 97b6724..a28c660 100644 --- a/CSAR.lua +++ b/CSAR.lua @@ -320,7 +320,7 @@ function csar.eventHandler:onEvent(_event) return true - elseif (_event.id == 9) then + --[[ elseif (_event.id == 9) then -- Pilot dead env.info("Event unit - Pilot Dead") @@ -355,8 +355,8 @@ function csar.eventHandler:onEvent(_event) end return - - elseif world.event.S_EVENT_EJECTION == _event.id then +]] + elseif _event.id == 9 or world.event.S_EVENT_EJECTION == _event.id then env.info("Event unit - Pilot Ejected") From cdc057086b3004cd9db66e85f01505e07c8c1d7b Mon Sep 17 00:00:00 2001 From: "Marcos \"Tupper\" Romero" Date: Thu, 17 Dec 2020 10:00:22 -0700 Subject: [PATCH 02/11] Update CSAR.lua Csar on crash,. added config on top to activate / deactivate --- CSAR.lua | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/CSAR.lua b/CSAR.lua index a28c660..d795cb1 100644 --- a/CSAR.lua +++ b/CSAR.lua @@ -8,6 +8,8 @@ -- 2 - Disable Aircraft for Pilot when he's shot down -- timeout to reenable pilot for aircraft -- 3 - Pilot Life Limit - No Aircraft Disabling + + csar = {} -- SETTINGS FOR MISSION DESIGNER vvvvvvvvvvvvvvvvvv @@ -140,6 +142,8 @@ csar.maxLives = 8 -- Maximum pilot lives csar.countCSARCrash = false -- If you set to true, pilot lives count for CSAR and CSAR aircraft will count. +csar.csarOncrash = true -- If set to true, will generate a csar when crash as well. + csar.reenableIfCSARCrashes = true -- If a CSAR heli crashes, the pilots are counted as rescued anyway. Set to false to Stop this -- - I recommend you leave the option on below IF USING MODE 1 otherwise the @@ -320,7 +324,7 @@ function csar.eventHandler:onEvent(_event) return true - --[[ elseif (_event.id == 9) then + elseif (_event.id == 9 and csar.csarOncrash == false) then -- Pilot dead env.info("Event unit - Pilot Dead") @@ -355,9 +359,11 @@ function csar.eventHandler:onEvent(_event) end return -]] - elseif _event.id == 9 or world.event.S_EVENT_EJECTION == _event.id then + elseif _event.id == 9 or world.event.S_EVENT_EJECTION == _event.id then + if _event.id == 9 and csar.csarOncrash == false then + return + end env.info("Event unit - Pilot Ejected") local _unit = _event.initiator From 9bcc07249ff1c957b112da93b483760264198d96 Mon Sep 17 00:00:00 2001 From: "Marcos \"Tupper\" Romero" Date: Thu, 17 Dec 2020 10:08:42 -0700 Subject: [PATCH 03/11] Update README.md csar.csarOncrash Update documentation --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1ad273a..2399830 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,8 @@ csar.maxLives = 8 -- Maximum pilot lives csar.countCSARCrash = false -- If you set to true, pilot lives count for CSAR and CSAR aircraft will count. +csar.csarOncrash = true -- If set to true, will generate CSAR even when crash + csar.reenableIfCSARCrashes = true -- If a CSAR heli crashes, the pilots are counted as rescued anyway. Set to false to Stop this -- - I recommend you leave the option on below IF USING MODE 1 otherwise the From af9c131fdb65af5c7e0f6a08f3fe2dd94490373f Mon Sep 17 00:00:00 2001 From: Marcos Romero Date: Sat, 19 Dec 2020 14:33:48 -0700 Subject: [PATCH 04/11] Update CSAR.lua --- CSAR.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CSAR.lua b/CSAR.lua index d795cb1..3bbfdb7 100644 --- a/CSAR.lua +++ b/CSAR.lua @@ -153,7 +153,7 @@ csar.disableTimeoutTime = 20 -- Time in minutes for TIMEOUT csar.destructionHeight = 150 -- height in meters an aircraft will be destroyed at if the aircraft is disabled -csar.enableForAI = false -- set to false to disable AI units from being rescued. +csar.enableForAI = true -- set to false to disable AI units from being rescued. csar.enableForRED = true -- enable for red side From d205de29f223d488a9234976965ee1b2fe169c42 Mon Sep 17 00:00:00 2001 From: Marcos Romero Date: Sat, 19 Dec 2020 22:50:46 -0700 Subject: [PATCH 05/11] Update CSAR.lua 1) Csar Selection : Change from the unit name deffinition to two options csar.csarunits : should't be changed anymore a)EnableAll Slots = will enable all helicopters (defined in csar.AircraftType) to act as csar b)Prefix : WIll add units which name contains one of the prefix in the list. 2) Aircraft Type / Limit: Allows to set up a limit per Aircraft 3) csar.autosmoke = Activates or deactivates the automatic smoke 4) csar.allowDownedPilotCAcontrol, allows the player to control the Downed pilot with Combined arms 5) csar weight. Simulates Downed pilot weight increase / decrease 6) Add option to the radio menu to request smoke signal (Must be inside 8km) --- CSAR.lua | 244 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 148 insertions(+), 96 deletions(-) diff --git a/CSAR.lua b/CSAR.lua index 3bbfdb7..6046dba 100644 --- a/CSAR.lua +++ b/CSAR.lua @@ -13,96 +13,24 @@ csar = {} -- SETTINGS FOR MISSION DESIGNER vvvvvvvvvvvvvvvvvv -csar.csarUnits = { - "helicargo1", - "helicargo2", - "helicargo3", - "helicargo4", - "helicargo5", - "helicargo6", - "helicargo7", - "helicargo8", - "helicargo9", - "helicargo10", +csar.enableAllslots = true -- Doesn't require to set the Unit name check Aircraft Type and Limit below +csar.useprefix = false -- Use the Prefixed defined below, Requires Unit have the Prefix defined below +-- Prefix settting +csar.csarPrefix = { "helicargo", "MEDEVAC"} - "helicargo11", - "helicargo12", - "helicargo13", - "helicargo14", - "helicargo15", - "helicargo16", - "helicargo17", - "helicargo18", - "helicargo19", - "helicargo20", +-- All slot / Limit settings +csar.aircraftType = {} -- Type and limit +csar.aircraftType["SA342Mistral"] = 2 +csar.aircraftType["SA342Minigun"] = 2 +csar.aircraftType["SA342L"] = 2 +csar.aircraftType["SA342M"] = 2 +csar.aircraftType["UH-1H"] = 8 +csar.aircraftType["Mi-8MT"] = 16 - "helicargo21", - "helicargo22", - "helicargo23", - "helicargo24", - "helicargo25", - - "MEDEVAC #1", - "MEDEVAC #2", - "MEDEVAC #3", - "MEDEVAC #4", - "MEDEVAC #5", - "MEDEVAC #6", - "MEDEVAC #7", - "MEDEVAC #8", - "MEDEVAC #9", - "MEDEVAC #10", - "MEDEVAC #11", - "MEDEVAC #12", - "MEDEVAC #13", - "MEDEVAC #14", - "MEDEVAC #15", - "MEDEVAC #16", - - "MEDEVAC RED #1", - "MEDEVAC RED #2", - "MEDEVAC RED #3", - "MEDEVAC RED #4", - "MEDEVAC RED #5", - "MEDEVAC RED #6", - "MEDEVAC RED #7", - "MEDEVAC RED #8", - "MEDEVAC RED #9", - "MEDEVAC RED #10", - "MEDEVAC RED #11", - "MEDEVAC RED #12", - "MEDEVAC RED #13", - "MEDEVAC RED #14", - "MEDEVAC RED #15", - "MEDEVAC RED #16", - "MEDEVAC RED #17", - "MEDEVAC RED #18", - "MEDEVAC RED #19", - "MEDEVAC RED #20", - "MEDEVAC RED #21", - - "MEDEVAC BLUE #1", - "MEDEVAC BLUE #2", - "MEDEVAC BLUE #3", - "MEDEVAC BLUE #4", - "MEDEVAC BLUE #5", - "MEDEVAC BLUE #6", - "MEDEVAC BLUE #7", - "MEDEVAC BLUE #8", - "MEDEVAC BLUE #9", - "MEDEVAC BLUE #10", - "MEDEVAC BLUE #11", - "MEDEVAC BLUE #12", - "MEDEVAC BLUE #13", - "MEDEVAC BLUE #14", - "MEDEVAC BLUE #15", - "MEDEVAC BLUE #16", - "MEDEVAC BLUE #17", - "MEDEVAC BLUE #18", - "MEDEVAC BLUE #19", - "MEDEVAC BLUE #20", - "MEDEVAC BLUE #21", -} -- List of all the MEDEVAC _UNIT NAMES_ (the line where it says "Pilot" in the ME)! +csar.autosmoke = false -- Automatically Smoke when CSAR helicopter is at 5 km + + +csar.csarUnits = {} -- DO NOT CHANGE csar.bluemash = { "BlueMASH #1", @@ -144,6 +72,8 @@ csar.countCSARCrash = false -- If you set to true, pilot lives count for CSAR an csar.csarOncrash = true -- If set to true, will generate a csar when crash as well. +csar.allowDownedPilotCAcontrol = true -- Set to false if you don't want to allow control by Combined arms + csar.reenableIfCSARCrashes = true -- If a CSAR heli crashes, the pilots are counted as rescued anyway. Set to false to Stop this -- - I recommend you leave the option on below IF USING MODE 1 otherwise the @@ -177,6 +107,8 @@ csar.invisiblecrew = true -- Set to true to make wounded crew insvisible csar.messageTime = 30 -- Time to show the intial wounded message for in seconds +csar.weight = 100 + csar.loadDistance = 60 -- configure distance for pilot to get in helicopter in meters. csar.radioSound = "beacon.ogg" -- the name of the sound file to use for the Pilot radio beacons. If this isnt added to the mission BEACONS WONT WORK! @@ -310,7 +242,7 @@ function csar.eventHandler:onEvent(_event) --env.info(string.format("Schedule Respawn %s %s",_heliName,_woundedName)) -- queue up script -- Schedule timer to check when to pop smoke - timer.scheduleFunction(csar.checkWoundedGroupStatus, { _heliName, _woundedName }, timer.getTime() + 5) + -- timer.scheduleFunction(csar.checkWoundedGroupStatus, { _heliName, _woundedName }, timer.getTime() + 5) end end end @@ -891,8 +823,9 @@ function csar.spawnGroup(_deadUnit) local _spawnedGroup = Group.getByName(mist.dynAdd(_group).name) -- Turn off AI - trigger.action.setGroupAIOff(_spawnedGroup) - + if csar.allowDownedPilotCAcontrol == false then + trigger.action.setGroupAIOff(_spawnedGroup) + end return _spawnedGroup end @@ -1059,7 +992,11 @@ function csar.pickupUnit(_heliUnit, _pilotName, _woundedGroup, _woundedGroupName end -- if the heli can't pick them up, show a message and return - if _unitsInHelicopter + 1 > csar.max_units then + local _maxUnits = csar.aircraftType[_heliUnit:getTypeName()] + if _maxUnits == nil then + _maxUnits = csar.max_units + end + if _unitsInHelicopter + 1 > _maxUnits then csar.displayMessageToSAR(_heliUnit, string.format("%s, %s. We're already crammed with %d guys! Sorry!", _pilotName, _heliName, _unitsInHelicopter, _unitsInHelicopter), 10) return true @@ -1100,9 +1037,9 @@ function csar.checkCloseWoundedGroup(_distance, _heliUnit, _heliName, _woundedGr local _woundedCount = 1 local _reset = true - + if csar.autosmoke == true then csar.popSmokeForGroup(_woundedGroupName, _woundedLeader) - + end if csar.heliVisibleMessage[_lookupKeyHeli] == nil then csar.displayMessageToSAR(_heliUnit, string.format("%s: %s. I hear you! Damn that thing is loud! Land or hover by the smoke.", _heliName, _pilotName), 30) @@ -1133,8 +1070,12 @@ function csar.checkCloseWoundedGroup(_distance, _heliUnit, _heliName, _woundedGr else local _unitsInHelicopter = csar.pilotsOnboard(_heliName) - - if csar.inAir(_heliUnit) and _unitsInHelicopter + 1 <= csar.max_units then + local _maxUnits = csar.aircraftType[_heliUnit:getTypeName()] + if _maxUnits == nil then + _maxUnits = csar.max_units + end + + if csar.inAir(_heliUnit) and _unitsInHelicopter + 1 <= _maxUnits then if _distance < 8.0 then @@ -1164,6 +1105,7 @@ function csar.checkCloseWoundedGroup(_distance, _heliUnit, _heliName, _woundedGr csar.displayMessageToSAR(_heliUnit, "Too high to winch " .. _pilotName .. " \nReduce height and hover for 10 seconds!", 5, true) end end + end end end @@ -1544,6 +1486,36 @@ function csar.displayToAllSAR(_message, _side, _ignore) end end end +function csar.reqsmoke( _unitName ) + + local _heli = csar.getSARHeli(_unitName) + if _heli == nil then + return + end + + local _closet = csar.getClosetDownedPilot(_heli) + + if _closet ~= nil and _closet.pilot ~= nil and _closet.distance < 8000.0 then + + local _clockDir = csar.getClockDirection(_heli, _closet.pilot) + + local _msg = string.format("%s - %.2f KHz ADF - %.3fM - Popping Blue smoke at your %s ", _closet.groupInfo.desc, _closet.groupInfo.frequency / 1000, _closet.distance, _clockDir) + csar.displayMessageToSAR(_heli, _msg, 20) + + local _smokecolor + if (_closet.pilot:getCoalition() == 2) then + _smokecolor = csar.bluesmokecolor + else + _smokecolor = csar.redsmokecolor + end + + trigger.action.smoke(_closet.pilot:getPoint(), _smokecolor) + + else + csar.displayMessageToSAR(_heli, "No Pilots within 8KM", 20) + end + +end function csar.getClosetMASH(_heli) @@ -1603,13 +1575,91 @@ function csar.checkOnboard(_unitName) end end +function csar.addweight( _heli ) + local cargoWeight = 0 + + local _heliName = _heli:getName() + if ctld ~= nil and ctld.troopWeight ~= nil then + -- TODO Count CTLD troops + + end + ctld.troopWeight = 100 + if csar.inTransitGroups[_heliName] then + local csarcount = 0 + for _, _group in pairs(csar.inTransitGroups[_heliName]) do + csarcount = csarcount + 1 + end + cargoWeight = cargoWeight + csar.weight * csarcount + end + + trigger.action.setUnitInternalCargo(_heli:getName(),0 ) -- Set To to recalculate + trigger.action.setUnitInternalCargo(_heli:getName(), cargoWeight) + +end -- Adds menuitem to all medevac units that are active function csar.addMedevacMenuItem() -- Loop through all Medevac units timer.scheduleFunction(csar.addMedevacMenuItem, nil, timer.getTime() + 5) + local _allHeliGroups = coalition.getGroups(coalition.side.BLUE, Group.Category.HELICOPTER) + + for key, val in pairs (coalition.getGroups(coalition.side.RED, Group.Category.HELICOPTER)) do + table.insert(_allHeliGroups, val) + end + + for _key, _group in pairs (_allHeliGroups) do + + local _unit = _group:getUnit(1) -- Asume that there is only one unit in the flight for players + if _unit == nil then return end + if _unit:isExist() ~= true then return false end + local unitName = _unit:getName() + + if csar.enableAllslots == true then + -- Enable all helicopters + local _type = _unit:getTypeName() + if csar.aircraftType[_type] ~= nil then + if csar.csarUnits[_unit:getName()] == nil then + csar.csarUnits[_unit:getName()] = _unit:getName() + + for _woundedName, _groupInfo in pairs(csar.woundedGroups) do + if _groupInfo.side == _group:getCoalition() then + + -- Schedule timer to check when to pop smoke + timer.scheduleFunction(csar.checkWoundedGroupStatus, { _unit:getName() , _woundedName }, timer.getTime() + 5) + end + end + end + end + + elseif csar.useprefix == true then + --use prefix + local upperCaseUnitname = string.upper(unitName) + + for key, prefix in pairs (csar.csarPrefix) do + local upperCasePrefix = string.upper(prefix) + + if string.match(upperCaseUnitname, upperCasePrefix) then + + if csar.csarUnits[_unit:getName()] == nil then + csar.csarUnits[_unit:getName()] = _unit:getName() + for _woundedName, _groupInfo in pairs(csar.woundedGroups) do + if _groupInfo.side == _group:getCoalition() then + -- Schedule timer to check when to pop smoke + timer.scheduleFunction(csar.checkWoundedGroupStatus, { _unit:getName() , _woundedName }, timer.getTime() + 5) + end + end + end + break + end + end + + end + + + end + for _, _unitName in pairs(csar.csarUnits) do local _unit = csar.getSARHeli(_unitName) @@ -1632,6 +1682,8 @@ function csar.addMedevacMenuItem() missionCommands.addCommandForGroup(_groupId, "Check Onboard", _rootPath, csar.checkOnboard, _unitName) missionCommands.addCommandForGroup(_groupId, "Request Signal Flare", _rootPath, csar.signalFlare, _unitName) + missionCommands.addCommandForGroup(_groupId, "Request Smoke", _rootPath, csar.reqsmoke, _unitName) + end end else From d905a640cdf2db2f255c65fb08298aa783c9f811 Mon Sep 17 00:00:00 2001 From: "Marcos \"Tupper\" Romero" Date: Sat, 19 Dec 2020 22:59:59 -0700 Subject: [PATCH 06/11] Update README.md --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 2399830..2e421ed 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,22 @@ The script has lots of configuration options that can be used to further customi ````lua +csar.enableAllslots = true -- Doesn't require to set the Unit name check Aircraft Type and Limit below +csar.useprefix = false -- Use the Prefixed defined below, Requires Unit have the Prefix defined below +-- Prefix settting +csar.csarPrefix = { "helicargo", "MEDEVAC"} + +-- All slot / Limit settings +csar.aircraftType = {} -- Type and limit +csar.aircraftType["SA342Mistral"] = 2 +csar.aircraftType["SA342Minigun"] = 2 +csar.aircraftType["SA342L"] = 2 +csar.aircraftType["SA342M"] = 2 +csar.aircraftType["UH-1H"] = 8 +csar.aircraftType["Mi-8MT"] = 16 + + + csar.csarMode = 0 -- 0 - No Limit - NO Aircraft disabling @@ -33,6 +49,10 @@ csar.countCSARCrash = false -- If you set to true, pilot lives count for CSAR an csar.csarOncrash = true -- If set to true, will generate CSAR even when crash +csar.autosmoke = false -- Automatically Smoke when CSAR helicopter is at 5 km + +csar.allowDownedPilotCAcontrol = true -- Set to false if you don't want to allow control by Combined arms + csar.reenableIfCSARCrashes = true -- If a CSAR heli crashes, the pilots are counted as rescued anyway. Set to false to Stop this -- - I recommend you leave the option on below IF USING MODE 1 otherwise the @@ -44,6 +64,8 @@ csar.destructionHeight = 150 -- height in meters an aircraft will be destroyed a csar.enableForAI = false -- set to false to disable AI units from being rescued. +csar.weight = 100 -- Downed pilot weight when picked up + csar.enableForRED = true -- enable for red side csar.enableForBLUE = true -- enable for blue side From 438c14b53db56fecf68637e02b035c3a21b1b3a8 Mon Sep 17 00:00:00 2001 From: Marcos Romero Date: Sun, 20 Dec 2020 02:09:46 -0700 Subject: [PATCH 07/11] Update CSAR.lua Added option to have the Pilot to run to the Rescue helicopter. --- CSAR.lua | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 80 insertions(+), 9 deletions(-) diff --git a/CSAR.lua b/CSAR.lua index 6046dba..99430fa 100644 --- a/CSAR.lua +++ b/CSAR.lua @@ -74,6 +74,8 @@ csar.csarOncrash = true -- If set to true, will generate a csar when crash as we csar.allowDownedPilotCAcontrol = true -- Set to false if you don't want to allow control by Combined arms + + csar.reenableIfCSARCrashes = true -- If a CSAR heli crashes, the pilots are counted as rescued anyway. Set to false to Stop this -- - I recommend you leave the option on below IF USING MODE 1 otherwise the @@ -109,12 +111,17 @@ csar.messageTime = 30 -- Time to show the intial wounded message for in seconds csar.weight = 100 +csar.pilotRuntoExtractPoint = true -- Downed Pilot will run to the rescue helicopter up to csar.extractDistance METERS + csar.loadDistance = 60 -- configure distance for pilot to get in helicopter in meters. +csar.extractDistance = 500 -- Distance the Downed pilot will run to the rescue helicopter +csar.loadtimemax = 135 csar.radioSound = "beacon.ogg" -- the name of the sound file to use for the Pilot radio beacons. If this isnt added to the mission BEACONS WONT WORK! csar.allowFARPRescue = true --allows pilot to be rescued by landing at a FARP or Airbase +csar.landedStatus = {} -- tracks status of a helis hover above a downed pilot -- SETTINGS FOR MISSION DESIGNER ^^^^^^^^^^^^^^^^^^^* -- *************************************************************** @@ -1024,7 +1031,47 @@ function csar.pickupUnit(_heliUnit, _pilotName, _woundedGroup, _woundedGroupName return true end +function csar.getAliveGroup(_groupName) + local _group = Group.getByName(_groupName) + + if _group and _group:isExist() == true and #_group:getUnits() > 0 then + return _group + end + + return nil +end +function csar.orderGroupToMoveToPoint(_leader, _destination) + + local _group = _leader:getGroup() + + local _path = {} + table.insert(_path, mist.ground.buildWP(_leader:getPoint(), 'Off Road', 50)) + table.insert(_path, mist.ground.buildWP(_destination, 'Off Road', 50)) + + local _mission = { + id = 'Mission', + params = { + route = { + points =_path + }, + }, + } + + -- delayed 2 second to work around bug + timer.scheduleFunction(function(_arg) + local _grp = csar.getAliveGroup(_arg[1]) + + if _grp ~= nil then + local _controller = _grp:getController(); + Controller.setOption(_controller, AI.Option.Ground.id.ALARM_STATE, AI.Option.Ground.val.ALARM_STATE.GREEN) + Controller.setOption(_controller, AI.Option.Ground.id.ROE, AI.Option.Ground.val.ROE.WEAPON_HOLD) + _controller:setTask(_arg[2]) + end + end + , {_group:getName(), _mission}, timer.getTime() + 2) + +end -- Helicopter is within 3km function csar.checkCloseWoundedGroup(_distance, _heliUnit, _heliName, _woundedGroup, _woundedGroupName) @@ -1037,13 +1084,17 @@ function csar.checkCloseWoundedGroup(_distance, _heliUnit, _heliName, _woundedGr local _woundedCount = 1 local _reset = true + if csar.autosmoke == true then - csar.popSmokeForGroup(_woundedGroupName, _woundedLeader) + csar.popSmokeForGroup(_woundedGroupName, _woundedLeader) end + if csar.heliVisibleMessage[_lookupKeyHeli] == nil then - - csar.displayMessageToSAR(_heliUnit, string.format("%s: %s. I hear you! Damn that thing is loud! Land or hover by the smoke.", _heliName, _pilotName), 30) - + if csar.autosmoke == true then + csar.displayMessageToSAR(_heliUnit, string.format("%s: %s. I hear you! Damn that thing is loud! Land or hover by the smoke.", _heliName, _pilotName), 30) + else + csar.displayMessageToSAR(_heliUnit, string.format("%s: %s. I hear you! Damn that thing is loud! Request a Flare or Smoke if you need", _heliName, _pilotName), 30) + end --mark as shown for THIS heli and THIS group csar.heliVisibleMessage[_lookupKeyHeli] = true end @@ -1051,9 +1102,11 @@ function csar.checkCloseWoundedGroup(_distance, _heliUnit, _heliName, _woundedGr if (_distance < 500) then if csar.heliCloseMessage[_lookupKeyHeli] == nil then - - csar.displayMessageToSAR(_heliUnit, string.format("%s: %s. You're close now! Land or hover at the smoke.", _heliName, _pilotName), 10) - + if csar.autosmoke == true then + csar.displayMessageToSAR(_heliUnit, string.format("%s: %s. You're close now! Land or hover at the smoke.", _heliName, _pilotName), 10) + else + csar.displayMessageToSAR(_heliUnit, string.format("%s: %s. You're close now! Land in a safe place, i will go there ", _heliName, _pilotName), 10) + end --mark as shown for THIS heli and THIS group csar.heliCloseMessage[_lookupKeyHeli] = true end @@ -1062,11 +1115,29 @@ function csar.checkCloseWoundedGroup(_distance, _heliUnit, _heliName, _woundedGr if csar.inAir(_heliUnit) == false then -- if you land on them, doesnt matter if they were heading to someone else as you're closer, you win! :) + if csar.pilotRuntoExtractPoint == true then + if (_distance < csar.extractDistance) then + local _time = csar.landedStatus[_lookupKeyHeli] + if _time == nil then + --csar.displayMessageToSAR(_heliUnit, "Landed at " .. _distance, 10, true) + csar.landedStatus[_lookupKeyHeli] = math.floor( (_distance * csar.loadtimemax ) / csar.extractDistance ) + _time = csar.landedStatus[_lookupKeyHeli] + csar.orderGroupToMoveToPoint(_woundedLeader, _heliUnit:getPoint()) + csar.displayMessageToSAR(_heliUnit, "Wait till " .. _pilotName .. ". Gets in \n\n" .. _time .. " more seconds.", 10, true) + else + _time = csar.landedStatus[_lookupKeyHeli] - 1 + csar.landedStatus[_lookupKeyHeli] = _time + end + if _time <= 0 then + csar.landedStatus[_lookupKeyHeli] = nil + return csar.pickupUnit(_heliUnit, _pilotName, _woundedGroup, _woundedGroupName) + end + end + else if (_distance < csar.loadDistance) then - return csar.pickupUnit(_heliUnit, _pilotName, _woundedGroup, _woundedGroupName) end - + end else local _unitsInHelicopter = csar.pilotsOnboard(_heliName) From c3e4bbe6e580086c40130cdb94ececa74b1cbab1 Mon Sep 17 00:00:00 2001 From: Marcos Romero Date: Sun, 20 Dec 2020 02:10:04 -0700 Subject: [PATCH 08/11] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2e421ed..8b92fc8 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,8 @@ csar.countCSARCrash = false -- If you set to true, pilot lives count for CSAR an csar.csarOncrash = true -- If set to true, will generate CSAR even when crash +csar.pilotRuntoExtractPoint = true -- Downed Pilot will run to the rescue helicopter up to csar.extractDistance METERS + csar.autosmoke = false -- Automatically Smoke when CSAR helicopter is at 5 km csar.allowDownedPilotCAcontrol = true -- Set to false if you don't want to allow control by Combined arms From 55ce0217f73a19d177b445fd9aab2c410b9ec94a Mon Sep 17 00:00:00 2001 From: Marcos Romero Date: Sun, 20 Dec 2020 23:58:38 -0700 Subject: [PATCH 09/11] Update CSAR.lua Added back the Fixed units names -Changed the _lookKeyHeli cause was having issues to get the Id when the unit was nil, and needed to reset some variables there.. Some messages where not showing up, for example the You're close .. if you died after the message was shown you never see the message again with the same unit / downed pilot csar.helicloseMessage now is reset when the unit dissapears. Same issue with the Landed status variable I use to make the pilots run.. --- CSAR.lua | 207 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 153 insertions(+), 54 deletions(-) diff --git a/CSAR.lua b/CSAR.lua index 99430fa..63444b9 100644 --- a/CSAR.lua +++ b/CSAR.lua @@ -13,11 +13,10 @@ csar = {} -- SETTINGS FOR MISSION DESIGNER vvvvvvvvvvvvvvvvvv -csar.enableAllslots = true -- Doesn't require to set the Unit name check Aircraft Type and Limit below -csar.useprefix = false -- Use the Prefixed defined below, Requires Unit have the Prefix defined below --- Prefix settting -csar.csarPrefix = { "helicargo", "MEDEVAC"} +--Enable CSar Options -HELICOPTERS +--enableAllslots and Use prefix will work for Helicopter +csar.enableAllslots = false -- Doesn't require to set the Unit name check Aircraft Type and Limit below -- All slot / Limit settings csar.aircraftType = {} -- Type and limit csar.aircraftType["SA342Mistral"] = 2 @@ -27,10 +26,104 @@ csar.aircraftType["SA342M"] = 2 csar.aircraftType["UH-1H"] = 8 csar.aircraftType["Mi-8MT"] = 16 +-- Prefix Settings - Only For helicopters +csar.useprefix = true -- Use the Prefixed defined below, Requires Unit have the Prefix defined below +csar.csarPrefix = { "helicargo", "MEDEVAC"} + +-- Fixed Unit Name. +--Enable Csar Options for the units with the names in the list below +csar.csarUnits = { + "helicargo1", + "helicargo2", + "helicargo3", + "helicargo4", + "helicargo5", + "helicargo6", + "helicargo7", + "helicargo8", + "helicargo9", + "helicargo10", + + "helicargo11", + "helicargo12", + "helicargo13", + "helicargo14", + "helicargo15", + "helicargo16", + "helicargo17", + "helicargo18", + "helicargo19", + "helicargo20", + + "helicargo21", + "helicargo22", + "helicargo23", + "helicargo24", + "helicargo25", + + "MEDEVAC #1", + "MEDEVAC #2", + "MEDEVAC #3", + "MEDEVAC #4", + "MEDEVAC #5", + "MEDEVAC #6", + "MEDEVAC #7", + "MEDEVAC #8", + "MEDEVAC #9", + "MEDEVAC #10", + "MEDEVAC #11", + "MEDEVAC #12", + "MEDEVAC #13", + "MEDEVAC #14", + "MEDEVAC #15", + "MEDEVAC #16", + + "MEDEVAC RED #1", + "MEDEVAC RED #2", + "MEDEVAC RED #3", + "MEDEVAC RED #4", + "MEDEVAC RED #5", + "MEDEVAC RED #6", + "MEDEVAC RED #7", + "MEDEVAC RED #8", + "MEDEVAC RED #9", + "MEDEVAC RED #10", + "MEDEVAC RED #11", + "MEDEVAC RED #12", + "MEDEVAC RED #13", + "MEDEVAC RED #14", + "MEDEVAC RED #15", + "MEDEVAC RED #16", + "MEDEVAC RED #17", + "MEDEVAC RED #18", + "MEDEVAC RED #19", + "MEDEVAC RED #20", + "MEDEVAC RED #21", + + "MEDEVAC BLUE #1", + "MEDEVAC BLUE #2", + "MEDEVAC BLUE #3", + "MEDEVAC BLUE #4", + "MEDEVAC BLUE #5", + "MEDEVAC BLUE #6", + "MEDEVAC BLUE #7", + "MEDEVAC BLUE #8", + "MEDEVAC BLUE #9", + "MEDEVAC BLUE #10", + "MEDEVAC BLUE #11", + "MEDEVAC BLUE #12", + "MEDEVAC BLUE #13", + "MEDEVAC BLUE #14", + "MEDEVAC BLUE #15", + "MEDEVAC BLUE #16", + "MEDEVAC BLUE #17", + "MEDEVAC BLUE #18", + "MEDEVAC BLUE #19", + "MEDEVAC BLUE #20", + "MEDEVAC BLUE #21", +} -- List of all the MEDEVAC _UNIT NAMES_ (the line where it says "Pilot" in the ME)! + csar.autosmoke = false -- Automatically Smoke when CSAR helicopter is at 5 km - - -csar.csarUnits = {} -- DO NOT CHANGE csar.bluemash = { "BlueMASH #1", @@ -249,7 +342,9 @@ function csar.eventHandler:onEvent(_event) --env.info(string.format("Schedule Respawn %s %s",_heliName,_woundedName)) -- queue up script -- Schedule timer to check when to pop smoke - -- timer.scheduleFunction(csar.checkWoundedGroupStatus, { _heliName, _woundedName }, timer.getTime() + 5) + + timer.scheduleFunction(csar.checkWoundedGroupStatus, { _heliName, _woundedName }, timer.getTime() + 5) + end end end @@ -909,7 +1004,6 @@ function csar.initSARForPilot(_downedGroup, _freq) end function csar.checkWoundedGroupStatus(_argument) - local _status, _err = pcall(function(_args) local _heliName = _args[1] local _woundedGroupName = _args[2] @@ -920,6 +1014,7 @@ function csar.checkWoundedGroupStatus(_argument) -- if wounded group is not here then message alread been sent to SARs -- stop processing any further if csar.woundedGroups[_woundedGroupName] == nil then + return end @@ -928,6 +1023,11 @@ function csar.checkWoundedGroupStatus(_argument) -- in transit cleanup -- csar.inTransitGroups[_heliName] = nil + local _woundedLeader = _woundedGroup[1] + local _lookupKeyHeli = _heliName .. "_" .. _woundedLeader:getID() --lookup key for message state tracking + csar.heliVisibleMessage[_lookupKeyHeli] = nil + csar.heliCloseMessage[_lookupKeyHeli] = nil + csar.landedStatus[_lookupKeyHeli] = nil return end @@ -940,7 +1040,7 @@ function csar.checkWoundedGroupStatus(_argument) if csar.checkGroupNotKIA(_woundedGroup, _woundedGroupName, _heliUnit, _heliName) then local _woundedLeader = _woundedGroup[1] - local _lookupKeyHeli = _heliUnit:getID() .. "_" .. _woundedLeader:getID() --lookup key for message state tracking + local _lookupKeyHeli = _heliUnit:getName() .. "_" .. _woundedLeader:getID() --lookup key for message state tracking local _distance = csar.getDistance(_heliUnit:getPoint(), _woundedLeader:getPoint()) @@ -1077,7 +1177,7 @@ end function csar.checkCloseWoundedGroup(_distance, _heliUnit, _heliName, _woundedGroup, _woundedGroupName) local _woundedLeader = _woundedGroup[1] - local _lookupKeyHeli = _heliUnit:getID() .. "_" .. _woundedLeader:getID() --lookup key for message state tracking + local _lookupKeyHeli = _heliUnit:getName() .. "_" .. _woundedLeader:getID() --lookup key for message state tracking local _pilotName = csar.woundedGroups[_woundedGroupName].desc @@ -1123,7 +1223,7 @@ function csar.checkCloseWoundedGroup(_distance, _heliUnit, _heliName, _woundedGr csar.landedStatus[_lookupKeyHeli] = math.floor( (_distance * csar.loadtimemax ) / csar.extractDistance ) _time = csar.landedStatus[_lookupKeyHeli] csar.orderGroupToMoveToPoint(_woundedLeader, _heliUnit:getPoint()) - csar.displayMessageToSAR(_heliUnit, "Wait till " .. _pilotName .. ". Gets in \n\n" .. _time .. " more seconds.", 10, true) + csar.displayMessageToSAR(_heliUnit, "Wait till " .. _pilotName .. ". Gets in \n" .. _time .. " more seconds.", 10, true) else _time = csar.landedStatus[_lookupKeyHeli] - 1 csar.landedStatus[_lookupKeyHeli] = _time @@ -1683,54 +1783,53 @@ function csar.addMedevacMenuItem() for _key, _group in pairs (_allHeliGroups) do local _unit = _group:getUnit(1) -- Asume that there is only one unit in the flight for players - if _unit == nil then return end - if _unit:isExist() ~= true then return false end - local unitName = _unit:getName() - - if csar.enableAllslots == true then - -- Enable all helicopters - local _type = _unit:getTypeName() - if csar.aircraftType[_type] ~= nil then - if csar.csarUnits[_unit:getName()] == nil then - csar.csarUnits[_unit:getName()] = _unit:getName() - - for _woundedName, _groupInfo in pairs(csar.woundedGroups) do - if _groupInfo.side == _group:getCoalition() then + if _unit ~= nil then + if _unit:isExist() == true then + local unitName = _unit:getName() + if csar.enableAllslots == true then + -- Enable all helicopters + local _type = _unit:getTypeName() + if csar.aircraftType[_type] ~= nil then + if csar.csarUnits[_unit:getName()] == nil then + csar.csarUnits[_unit:getName()] = _unit:getName() - -- Schedule timer to check when to pop smoke - timer.scheduleFunction(csar.checkWoundedGroupStatus, { _unit:getName() , _woundedName }, timer.getTime() + 5) - end - end - end - end - - elseif csar.useprefix == true then - --use prefix - local upperCaseUnitname = string.upper(unitName) - - for key, prefix in pairs (csar.csarPrefix) do - local upperCasePrefix = string.upper(prefix) - - if string.match(upperCaseUnitname, upperCasePrefix) then - - if csar.csarUnits[_unit:getName()] == nil then - csar.csarUnits[_unit:getName()] = _unit:getName() - for _woundedName, _groupInfo in pairs(csar.woundedGroups) do - if _groupInfo.side == _group:getCoalition() then - -- Schedule timer to check when to pop smoke - timer.scheduleFunction(csar.checkWoundedGroupStatus, { _unit:getName() , _woundedName }, timer.getTime() + 5) + for _woundedName, _groupInfo in pairs(csar.woundedGroups) do + if _groupInfo.side == _group:getCoalition() then + + -- Schedule timer to check when to pop smoke + timer.scheduleFunction(csar.checkWoundedGroupStatus, { _unit:getName() , _woundedName }, timer.getTime() + 5) + end end - end - end - break + end + end + + elseif csar.useprefix == true then + --use prefix + local upperCaseUnitname = string.upper(unitName) + + for key, prefix in pairs (csar.csarPrefix) do + local upperCasePrefix = string.upper(prefix) + + if string.match(upperCaseUnitname, upperCasePrefix) then + + if csar.csarUnits[_unit:getName()] == nil then + csar.csarUnits[_unit:getName()] = _unit:getName() + for _woundedName, _groupInfo in pairs(csar.woundedGroups) do + if _groupInfo.side == _group:getCoalition() then + -- Schedule timer to check when to pop smoke + timer.scheduleFunction(csar.checkWoundedGroupStatus, { _unit:getName() , _woundedName }, timer.getTime() + 5) + end + end + end + break + end + end + end end - end - - end - + for _, _unitName in pairs(csar.csarUnits) do local _unit = csar.getSARHeli(_unitName) From 907524d1e97930061d5f32832523bc4f7455192d Mon Sep 17 00:00:00 2001 From: Marcos Romero Date: Mon, 21 Dec 2020 13:39:26 -0700 Subject: [PATCH 10/11] Update CSAR.lua Corrrected Pick up time bug Added Function csar.spawnCsarAtZone( _zone, _coalition, _description, _randomPoint) --- CSAR.lua | 130 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 98 insertions(+), 32 deletions(-) diff --git a/CSAR.lua b/CSAR.lua index 63444b9..191c73b 100644 --- a/CSAR.lua +++ b/CSAR.lua @@ -32,7 +32,7 @@ csar.csarPrefix = { "helicargo", "MEDEVAC"} -- Fixed Unit Name. --Enable Csar Options for the units with the names in the list below -csar.csarUnits = { +csar.csarFixedUnits = { "helicargo1", "helicargo2", "helicargo3", @@ -215,6 +215,8 @@ csar.radioSound = "beacon.ogg" -- the name of the sound file to use for the Pilo csar.allowFARPRescue = true --allows pilot to be rescued by landing at a FARP or Airbase csar.landedStatus = {} -- tracks status of a helis hover above a downed pilot + +csar.csarUnits = {} -- SETTINGS FOR MISSION DESIGNER ^^^^^^^^^^^^^^^^^^^* -- *************************************************************** @@ -309,6 +311,73 @@ function csar.pilotsOnboard(_heliName) return count end +function csar.addCsar(_coalition , _country, _point, _typeName, _unitName, _playerName, _freq, noMessage, _description ) + + local _spawnedGroup = csar.spawnGroup( _coalition, _country, _point, _typeName ) + csar.addSpecialParametersToGroup(_spawnedGroup) + + if noMessage ~= true then + trigger.action.outTextForCoalition(_spawnedGroup:getCoalition(), "MAYDAY MAYDAY! " .. _typeName .. " is down. ", 10) + end + + if _freq == nil then + _freq = csar.generateADFFrequency() + end + + if _freq ~= nil then + csar.addBeaconToGroup(_spawnedGroup:getName(), _freq) + end + + + csar.handleEjectOrCrash(_playerName, false) + +-- Generate DESCRIPTION text + local _text = " " + if _playerName ~= nil then + _text = "Pilot " .. _playerName .. " of " .. _unitName .. " - " .. _typeName + elseif _typeName ~= nil then + _text = "AI Pilot of " .. _unitName .. " - " .. _typeName + else + _text = _description + end + + csar.woundedGroups[_spawnedGroup:getName()] = { side = _spawnedGroup:getCoalition(), originalUnit = _unitName, desc = _text, typename = _typeName, frequency = _freq, player = _playerName } + + csar.initSARForPilot(_spawnedGroup, _freq, noMessage) + + if _spawnedGroup ~= nil then + local _controller = _spawnedGroup:getController(); + Controller.setOption(_controller, AI.Option.Ground.id.ALARM_STATE, AI.Option.Ground.val.ALARM_STATE.GREEN) + Controller.setOption(_controller, AI.Option.Ground.id.ROE, AI.Option.Ground.val.ROE.WEAPON_HOLD) + end + +end + +function csar.spawnCsarAtZone( _zone, _coalition, _description, _randomPoint) + local _country + local freq = csar.generateADFFrequency() + local _triggerZone = trigger.misc.getZone(_zone) -- trigger to use as reference position + if _triggerZone == nil then + trigger.action.outText("Csar.lua ERROR: Cant find zone called " .. _zone, 10) + return + end + + local pos + if _randomPoint == true then + pos = mist.getRandomPointInZone(_zone) + pos.z = pos.y + pos.y = 0 + else + pos = mist.utils.zoneToVec3(_zone) + end + if _coalition == coalition.side.BLUE then + _country = country.id.USA + else + _country = country.id.RUSSIA + end + csar.addCsar(_coalition, _country, pos, nil, nil, nil, freq, true, _description) + +end -- Handles all world events csar.eventHandler = {} function csar.eventHandler:onEvent(_event) @@ -434,30 +503,9 @@ function csar.eventHandler:onEvent(_event) - local _spawnedGroup = csar.spawnGroup(_unit) - csar.addSpecialParametersToGroup(_spawnedGroup) - - trigger.action.outTextForCoalition(_unit:getCoalition(), "MAYDAY MAYDAY! " .. _unit:getTypeName() .. " shot down. Chute Spotted!", 10) - local _freq = csar.generateADFFrequency() - - csar.addBeaconToGroup(_spawnedGroup:getName(), _freq) - - --handle lives and plane disabling - csar.handleEjectOrCrash(_unit, false) - - -- Generate DESCRIPTION text - local _text = " " - if _unit:getPlayerName() ~= nil then - _text = "Pilot " .. _unit:getPlayerName() .. " of " .. _unit:getName() .. " - " .. _unit:getTypeName() - else - _text = "AI Pilot of " .. _unit:getName() .. " - " .. _unit:getTypeName() - end - - csar.woundedGroups[_spawnedGroup:getName()] = { side = _spawnedGroup:getCoalition(), originalUnit = _unit:getName(), frequency = _freq, desc = _text, player = _unit:getPlayerName() } - - csar.initSARForPilot(_spawnedGroup, _freq) - + csar.addCsar(_coalition, _unit:getCountry(), _unit:getPoint() , _unit:getTypeName(), _unit:getName(), _unit:getPlayerName(), _freq, false, 0) + return true elseif world.event.S_EVENT_LAND == _event.id then @@ -894,15 +942,15 @@ csar.addSpecialParametersToGroup = function(_spawnedGroup) end end -function csar.spawnGroup(_deadUnit) +function csar.spawnGroup( _coalition, _country, _point, _typeName ) local _id = mist.getNextGroupId() local _groupName = "Downed Pilot #" .. _id - local _side = _deadUnit:getCoalition() + local _side = _coalition - local _pos = _deadUnit:getPoint() + local _pos = _point local _group = { ["visible"] = false, @@ -920,7 +968,7 @@ function csar.spawnGroup(_deadUnit) end _group.category = Group.Category.GROUND; - _group.country = _deadUnit:getCountry(); + _group.country = _country; local _spawnedGroup = Group.getByName(mist.dynAdd(_group).name) @@ -1014,22 +1062,27 @@ function csar.checkWoundedGroupStatus(_argument) -- if wounded group is not here then message alread been sent to SARs -- stop processing any further if csar.woundedGroups[_woundedGroupName] == nil then - return end - + + local _woundedLeader = _woundedGroup[1] + local _lookupKeyHeli = _heliName .. "_" .. _woundedLeader:getID() --lookup key for message state tracking + if _heliUnit == nil then -- stop wounded moving, head back to smoke as target heli is DEAD -- in transit cleanup -- csar.inTransitGroups[_heliName] = nil - local _woundedLeader = _woundedGroup[1] - local _lookupKeyHeli = _heliName .. "_" .. _woundedLeader:getID() --lookup key for message state tracking + csar.heliVisibleMessage[_lookupKeyHeli] = nil csar.heliCloseMessage[_lookupKeyHeli] = nil csar.landedStatus[_lookupKeyHeli] = nil + return end + + + -- double check that this function hasnt been queued for the wrong side @@ -1227,6 +1280,7 @@ function csar.checkCloseWoundedGroup(_distance, _heliUnit, _heliName, _woundedGr else _time = csar.landedStatus[_lookupKeyHeli] - 1 csar.landedStatus[_lookupKeyHeli] = _time + end if _time <= 0 then csar.landedStatus[_lookupKeyHeli] = nil @@ -1830,6 +1884,18 @@ function csar.addMedevacMenuItem() end end + for key, unitName in pairs(csar.csarFixedUnits) do + if csar.csarUnits[unitName] == nil then + csar.csarUnits[unitName] = unitName + for _woundedName, _groupInfo in pairs(csar.woundedGroups) do + if _groupInfo.side == _group:getCoalition() then + -- Schedule timer to check when to pop smoke + timer.scheduleFunction(csar.checkWoundedGroupStatus, { unitName , _woundedName }, timer.getTime() + 5) + end + end + end + end + for _, _unitName in pairs(csar.csarUnits) do local _unit = csar.getSARHeli(_unitName) From d52f2cd4fca008cf156b3c6badd82356042a8d98 Mon Sep 17 00:00:00 2001 From: Marcos Romero Date: Mon, 21 Dec 2020 14:06:41 -0700 Subject: [PATCH 11/11] Create CSAR TEST1.miz --- CSAR TEST1.miz | Bin 0 -> 74776 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 CSAR TEST1.miz diff --git a/CSAR TEST1.miz b/CSAR TEST1.miz new file mode 100644 index 0000000000000000000000000000000000000000..a760f6076de2898afb9c7344a181ea189ca799fe GIT binary patch literal 74776 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 l|Nk-ld#L|c%wJNd|1