From 8011b7bce20704e7d3a47b68a2eb535819936fc7 Mon Sep 17 00:00:00 2001 From: Ciaran Fisher Date: Sun, 7 Jun 2015 21:45:50 +0100 Subject: [PATCH] Beacon Test Test for new beacon drop --- CTLD.lua | 1121 +++++++++++++++++++++++++++++----------- beaconsilent.ogg | Bin 0 -> 9400 bytes test-mission-night.miz | Bin 472200 -> 478309 bytes test-mission.miz | Bin 572724 -> 578834 bytes 4 files changed, 828 insertions(+), 293 deletions(-) create mode 100644 beaconsilent.ogg diff --git a/CTLD.lua b/CTLD.lua index a9f36ef..fbb2c5b 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -10,7 +10,7 @@ See https://github.com/ciribob/DCS-CTLD for a user manual and the latest version - Version: 1.08 - 31/05/2015 - Radio Beacons - Menu Restructure + Version: 1.10 - 07/06/2015 - Deployable Radio Beacons... ish ]] @@ -48,7 +48,12 @@ ctld.troopPickupAtFOB = true -- if true, troops can also be picked up at a creat ctld.buildTimeFOB = 120 --time in seconds for the FOB to be built -ctld.radioSound = "beacon.ogg" -- the name of the sound file to use for the FOB radio beacons +ctld.radioSound = "beacon.ogg" -- the name of the sound file to use for the FOB radio beacons. If this isnt added to the mission BEACONS WONT WORK! +ctld.radioSoundFC3 = "beaconsilent.ogg" -- name of the second silent radio file, used so FC3 aircraft dont hear ALL the beacon noises... :) + +ctld.deployedBeaconBattery = 15 -- the battery on deployed beacons will last for this number minutes before needing to be re-deployed + +ctld.enabledRadioBeaconDrop = true -- if its set to false then beacons cannot be dropped by units -- ***************** JTAC CONFIGURATION ***************** @@ -69,7 +74,7 @@ ctld.JTAC_jtacStatusF10 = true -- enables F10 JTAC Status menu ctld.JTAC_location = true -- shows location of target in JTAC message -ctld.JTAC_lock = "all" -- "vehicle" OR "troop" OR "all" forces JTAC to only lock vehicles or troops or all ground units +ctld.JTAC_lock = "all" -- "vehicle" OR "troop" OR "all" forces JTAC to only lock vehicles or troops or all ground units -- ***************** Pickup and dropoff zones ***************** @@ -77,6 +82,7 @@ ctld.JTAC_lock = "all" -- "vehicle" OR "troop" OR "all" forces JTAC to only loc -- Use any of the predefined names or set your own ones + ctld.pickupZones = { { "pickzone1", "blue" }, { "pickzone2", "blue" }, @@ -167,7 +173,6 @@ ctld.transportPilotNames = { "transport23", "transport24", "transport25", - } -- *************** Optional Extractable GROUPS ***************** @@ -237,10 +242,8 @@ ctld.vehicleTransportEnabled = { -- when we unpack -- ctld.spawnableCrates = { - -- name of the sub menu on F10 for spawning crates ["Ground Forces"] = { - --crates you can spawn -- weight in KG -- Desc is the description on the F10 MENU @@ -248,21 +251,19 @@ ctld.spawnableCrates = { -- cratesRequired - if set requires that many crates of the same type within 100m of each other in order build the unit -- side is optional but 2 is BLUE and 1 is RED -- dont use that option with the HAWK Crates - { weight = 1400, desc = "HMMWV - TOW", unit = "M1045 HMMWV TOW" , side = 2 }, + { weight = 1400, desc = "HMMWV - TOW", unit = "M1045 HMMWV TOW", side = 2 }, { weight = 1200, desc = "HMMWV - MG", unit = "M1043 HMMWV Armament", side = 2 }, - { weight = 1700, desc = "BTR-D", unit = "BTR_D", side = 1 }, - { weight = 1900, desc = "BRDM-2", unit = "BRDM-2", side = 1 }, + { weight = 1700, desc = "BTR-D", unit = "BTR_D", side = 1 }, + { weight = 1900, desc = "BRDM-2", unit = "BRDM-2", side = 1 }, - { weight = 1100, desc = "HMMWV - JTAC", unit = "Hummer", side = 2, }, -- used as jtac and unarmed, not on the crate list if JTAC is disabled - { weight = 1500, desc = "SKP-11 - JTAC", unit = "SKP-11", side = 1, }, -- used as jtac and unarmed, not on the crate list if JTAC is disabled + { weight = 1100, desc = "HMMWV - JTAC", unit = "Hummer", side = 2, }, -- used as jtac and unarmed, not on the crate list if JTAC is disabled + { weight = 1500, desc = "SKP-11 - JTAC", unit = "SKP-11", side = 1, }, -- used as jtac and unarmed, not on the crate list if JTAC is disabled { weight = 200, desc = "2B11 Mortar", unit = "2B11 mortar" }, -- { weight = 500, desc = "M-109", unit = "M-109", cratesRequired = 3 }, }, - ["AA Crates"] = { - { weight = 210, desc = "Stinger", unit = "Stinger manpad", side = 2 }, { weight = 215, desc = "Igla", unit = "SA-18 Igla manpad", side = 1 }, @@ -271,12 +272,11 @@ ctld.spawnableCrates = { { weight = 1020, desc = "HAWK Track Radar", unit = "Hawk tr" }, -- { weight = 505, desc = "M6 Linebacker", unit = "M6 Linebacker", cratesRequired = 3 }, }, - } -- if the unit is on this list, it will be made into a JTAC ctld.jtacUnitTypes = { - "SKP","Hummer" -- there are some wierd encoding issues so if you write SKP-11 it wont match as the - sign is encoded differently... + "SKP", "Hummer" -- there are some wierd encoding issues so if you write SKP-11 it wont match as the - sign is encoded differently... } -- *************************************************************** @@ -286,7 +286,7 @@ ctld.jtacUnitTypes = { ----------------------------------------------------------------- -- Spawn group at a trigger and set them as extractable. Usage: --- ctld.spawnGroupAtTrigger("groupside", number, "triggerName", radius) +-- ctld.spawnGroupAtTrigger("groupside", number, "triggerName", radius) -- Variables: -- "groupSide" = "red" for Russia "blue" for USA -- _number = number of groups to spawn @@ -326,9 +326,9 @@ function ctld.spawnGroupAtTrigger(_groupSide, _number, _triggerName, _searchRadi local _alt = land.getHeight(_pos2) local _pos3 = { x = _pos2.x, y = _alt, z = _pos2.y } - local _groupDetails = ctld.generateTroopTypes(_groupSide,_number,_country) + local _groupDetails = ctld.generateTroopTypes(_groupSide, _number, _country) - local _droppedTroops = ctld.spawnDroppedGroup(_pos3, _groupDetails, false,_searchRadius); + local _droppedTroops = ctld.spawnDroppedGroup(_pos3, _groupDetails, false, _searchRadius); if _groupSide == 1 then @@ -337,13 +337,12 @@ function ctld.spawnGroupAtTrigger(_groupSide, _number, _triggerName, _searchRadi table.insert(ctld.droppedTroopsBLUE, _droppedTroops:getName()) end - end -- Preloads a transport with troops or vehicles -- replaces any troops currently on board -function ctld.preLoadTransport(_unitName, _number,_troops) +function ctld.preLoadTransport(_unitName, _number, _troops) local _unit = ctld.getTransportUnit(_unitName) @@ -351,10 +350,9 @@ function ctld.preLoadTransport(_unitName, _number,_troops) -- will replace any units currently on board -- if not ctld.troopsOnboard(_unit,_troops) then - ctld.loadTroops(_unit,_troops,_number) + ctld.loadTroops(_unit, _troops, _number) -- end end - end @@ -364,7 +362,6 @@ end -- *************************************************************** ---------------- INTERNAL FUNCTIONS ---------------- - function ctld.getTransportUnit(_unitName) if _unitName == nil then @@ -381,15 +378,15 @@ function ctld.getTransportUnit(_unitName) return nil end -function ctld.spawnCrateStatic(_country,_unitId,_point,_name,_weight) +function ctld.spawnCrateStatic(_country, _unitId, _point, _name, _weight) local _crate = { ["category"] = "Cargo", ["shape_name"] = "ab-212_cargo", ["type"] = "Cargo1", ["unitId"] = _unitId, - ["y"] = _point.z , - ["x"] = _point.x , + ["y"] = _point.z, + ["x"] = _point.x, ["mass"] = _weight, ["name"] = _name, ["canCargo"] = true, @@ -405,34 +402,34 @@ function ctld.spawnCrateStatic(_country,_unitId,_point,_name,_weight) return _spawnedCrate end -function ctld.spawnFOBCrateStatic(_country,_unitId,_point,_name) +function ctld.spawnFOBCrateStatic(_country, _unitId, _point, _name) local _crate = { ["category"] = "Fortifications", ["shape_name"] = "konteiner_red1", ["type"] = "Container red 1", ["unitId"] = _unitId, - ["y"] = _point.z , - ["x"] = _point.x , + ["y"] = _point.z, + ["x"] = _point.x, ["name"] = _name, ["canCargo"] = false, ["heading"] = 0, } - local _spawnedCrate = coalition.addStaticObject(_country, _crate) + local _spawnedCrate = coalition.addStaticObject(_country, _crate) return _spawnedCrate end -function ctld.spawnFOB(_country,_unitId,_point,_name) +function ctld.spawnFOB(_country, _unitId, _point, _name) local _crate = { ["category"] = "Fortifications", ["type"] = "outpost", ["unitId"] = _unitId, - ["y"] = _point.z , - ["x"] = _point.x , + ["y"] = _point.z, + ["x"] = _point.x, ["name"] = _name, ["canCargo"] = false, ["heading"] = 0, @@ -447,7 +444,7 @@ function ctld.spawnFOB(_country,_unitId,_point,_name) ["rate"] = 100, ["y"] = _point.z + -36.57142857, ["x"] = _point.x + 14.85714286, - ["name"] = "FOB Watchtower #".._id, + ["name"] = "FOB Watchtower #" .. _id, ["category"] = "Fortifications", ["canCargo"] = false, ["heading"] = 0, @@ -573,7 +570,7 @@ function ctld.spawnCrate(_args) return end - if ctld.isJTACUnitType(_crateType.unit) then + if ctld.isJTACUnitType(_crateType.unit) then local _limitHit = false @@ -593,10 +590,9 @@ function ctld.spawnCrate(_args) end if _limitHit then - ctld.displayMessageToGroup(_heli, "No more JTAC Crates Left!",10) + ctld.displayMessageToGroup(_heli, "No more JTAC Crates Left!", 10) return end - end local _position = _heli:getPosition() @@ -618,7 +614,7 @@ function ctld.spawnCrate(_args) local _name = string.format("%s #%i", _crateType.desc, _unitId) - local _spawnedCrate = ctld.spawnCrateStatic(_heli:getCountry(),_unitId,{x=_point.x+_xOffset,z=_point.z + _yOffset},_name,_crateType.weight) + local _spawnedCrate = ctld.spawnCrateStatic(_heli:getCountry(), _unitId, { x = _point.x + _xOffset, z = _point.z + _yOffset }, _name, _crateType.weight) if _side == 1 then -- _spawnedCrate = coalition.addStaticObject(_side, _spawnedCrate) @@ -635,7 +631,7 @@ function ctld.spawnCrate(_args) end end -function ctld.troopsOnboard(_heli,_troops) +function ctld.troopsOnboard(_heli, _troops) if ctld.inTransitTroops[_heli:getName()] ~= nil then @@ -655,7 +651,6 @@ function ctld.troopsOnboard(_heli,_troops) else return false end - end else @@ -675,7 +670,7 @@ function ctld.getPlayerNameOrType(_heli) end -function ctld.deployTroops(_heli,_troops) +function ctld.deployTroops(_heli, _troops) local _onboard = ctld.inTransitTroops[_heli:getName()] @@ -696,7 +691,6 @@ function ctld.deployTroops(_heli,_troops) ctld.inTransitTroops[_heli:getName()].troops = nil trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " dropped troops from " .. _heli:getTypeName() .. " into combat", 10) - end else if _onboard.vehicles ~= nil and #_onboard.vehicles.units > 0 then @@ -713,20 +707,18 @@ function ctld.deployTroops(_heli,_troops) ctld.inTransitTroops[_heli:getName()].vehicles = nil - trigger.action.outTextForCoalition(_heli:getCoalition(),ctld.getPlayerNameOrType(_heli) .. " dropped vehicles from " .. _heli:getTypeName() .. " into combat", 10) - + trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " dropped vehicles from " .. _heli:getTypeName() .. " into combat", 10) end end - end -function ctld.generateTroopTypes(_side,_count, _country) +function ctld.generateTroopTypes(_side, _count, _country) local _troops = {} - for _i = 1,_count do + for _i = 1, _count do local _unitType = "Soldier AK" @@ -750,18 +742,17 @@ function ctld.generateTroopTypes(_side,_count, _country) local _unitId = mist.getNextUnitId() - _troops[_i] = {type = _unitType, unitId = _unitId, name = string.format("Dropped %s #%i",_unitType,_unitId)} - + _troops[_i] = { type = _unitType, unitId = _unitId, name = string.format("Dropped %s #%i", _unitType, _unitId) } end local _groupId = mist.getNextGroupId() - local _details = {units = _troops, groupId = _groupId, groupName = string.format("Dropped Group %i",_groupId), side=_side, country=_country} + local _details = { units = _troops, groupId = _groupId, groupName = string.format("Dropped Group %i", _groupId), side = _side, country = _country } return _details end -- load troops onto vehicle -function ctld.loadTroops(_heli,_troops, _number) +function ctld.loadTroops(_heli, _troops, _number) -- load troops + vehicles if c130 or herc -- "M1045 HMMWV TOW" @@ -774,7 +765,7 @@ function ctld.loadTroops(_heli,_troops, _number) end if _onboard == nil then - _onboard = { troops = {}, vehicles = {} } + _onboard = { troops = {}, vehicles = {} } end local _list @@ -786,9 +777,9 @@ function ctld.loadTroops(_heli,_troops, _number) if _troops then - _onboard.troops = ctld.generateTroopTypes(_heli:getCoalition(),_number,_heli:getCountry()) + _onboard.troops = ctld.generateTroopTypes(_heli:getCoalition(), _number, _heli:getCountry()) - trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " loaded ".._number.." troops into " .. _heli:getTypeName(), 10) + trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " loaded " .. _number .. " troops into " .. _heli:getTypeName(), 10) else @@ -796,15 +787,13 @@ function ctld.loadTroops(_heli,_troops, _number) local _count = #_list - trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " loaded ".._count.." vehicles into " .. _heli:getTypeName(), 10) - + trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " loaded " .. _count .. " vehicles into " .. _heli:getTypeName(), 10) end ctld.inTransitTroops[_heli:getName()] = _onboard - end -function ctld.generateVehiclesForTransport(_side,_country) +function ctld.generateVehiclesForTransport(_side, _country) local _vehicles = {} local _list @@ -817,18 +806,16 @@ function ctld.generateVehiclesForTransport(_side,_country) for _i, _type in ipairs(_list) do - local _unitId= mist.getNextUnitId() - - _vehicles[_i] = {type = _type, unitId = _unitId, name = string.format("Dropped %s #%i",_type,_unitId)} + local _unitId = mist.getNextUnitId() + _vehicles[_i] = { type = _type, unitId = _unitId, name = string.format("Dropped %s #%i", _type, _unitId) } end local _groupId = mist.getNextGroupId() - local _details = {units = _vehicles, groupId = _groupId, groupName = string.format("Dropped Group %i",_groupId), side=_side, country=_country } + local _details = { units = _vehicles, groupId = _groupId, groupName = string.format("Dropped Group %i", _groupId), side = _side, country = _country } return _details - end function ctld.loadUnloadFOBCrate(_args) @@ -848,7 +835,7 @@ function ctld.loadUnloadFOBCrate(_args) local _side = _heli:getCoalition() local _inZone = ctld.inLogisticsZone(_heli) - local _crateOnboard = ctld.inTransitFOBCrates[_heli:getName()] ~= nil + local _crateOnboard = ctld.inTransitFOBCrates[_heli:getName()] ~= nil if _inZone == false and _crateOnboard == true then @@ -869,7 +856,7 @@ function ctld.loadUnloadFOBCrate(_args) local _name = string.format("FOB Crate #%i", _unitId) - local _spawnedCrate = ctld.spawnFOBCrateStatic(_heli:getCountry(),mist.getNextUnitId(),{x=_point.x+_xOffset,z=_point.z + _yOffset},_name) + local _spawnedCrate = ctld.spawnFOBCrateStatic(_heli:getCountry(), mist.getNextUnitId(), { x = _point.x + _xOffset, z = _point.z + _yOffset }, _name) if _side == 1 then ctld.droppedFOBCratesRED[_name] = _name @@ -919,9 +906,7 @@ function ctld.loadUnloadFOBCrate(_args) else ctld.displayMessageToGroup(_heli, "There are no friendly logistic units nearby to load a FOB crate from!", 10) end - end - end function ctld.loadUnloadTroops(_args) @@ -969,7 +954,7 @@ function ctld.loadUnloadTroops(_args) -- end -- end - if _inZone == true and ctld.troopsOnboard(_heli,_troops) then + if _inZone == true and ctld.troopsOnboard(_heli, _troops) then if _troops then ctld.displayMessageToGroup(_heli, "Dropped troops back to base", 20) @@ -978,30 +963,28 @@ function ctld.loadUnloadTroops(_args) else ctld.displayMessageToGroup(_heli, "Dropped vehicles back to base", 20) ctld.inTransitTroops[_heli:getName()].vehicles = nil - end - elseif _inZone == false and ctld.troopsOnboard(_heli,_troops) then + elseif _inZone == false and ctld.troopsOnboard(_heli, _troops) then - ctld.deployTroops(_heli,_troops) + ctld.deployTroops(_heli, _troops) - elseif _inZone == true and not ctld.troopsOnboard(_heli,_troops) then + elseif _inZone == true and not ctld.troopsOnboard(_heli, _troops) then - ctld.loadTroops(_heli,_troops) + ctld.loadTroops(_heli, _troops) else -- search for nearest troops to pickup - ctld.extractTroops(_heli,_troops) + ctld.extractTroops(_heli, _troops) end - end -function ctld.extractTroops(_heli,_troops) +function ctld.extractTroops(_heli, _troops) local _onboard = ctld.inTransitTroops[_heli:getName()] if _onboard == nil then - _onboard = { troops = nil, vehicles = nil } + _onboard = { troops = nil, vehicles = nil } end if _troops then @@ -1068,11 +1051,9 @@ function ctld.extractTroops(_heli,_troops) _onboard.vehicles = nil ctld.displayMessageToGroup(_heli, "No extractable vehicles nearby and not in a pickup zone", 20) end - end ctld.inTransitTroops[_heli:getName()] = _onboard - end @@ -1106,7 +1087,7 @@ function ctld.checkTroopStatus(_args) _txt = _txt .. " " .. #_troops.units .. " troops onboard\n" end - if _vehicles ~= nil and _vehicles.units ~= nil and #_vehicles.units > 0 then + if _vehicles ~= nil and _vehicles.units ~= nil and #_vehicles.units > 0 then _txt = _txt .. " " .. #_vehicles.units .. " vehicles onboard\n" end @@ -1129,60 +1110,91 @@ end -- Removes troops from transport when it dies function ctld.checkTransportStatus() - timer.scheduleFunction(ctld.checkTransportStatus,nil,timer.getTime()+3) + timer.scheduleFunction(ctld.checkTransportStatus, nil, timer.getTime() + 3) - for _,_name in ipairs(ctld.transportPilotNames) do + for _, _name in ipairs(ctld.transportPilotNames) do local _transUnit = ctld.getTransportUnit(_name) if _transUnit == nil then --env.info("CTLD Transport Unit Dead event") ctld.inTransitTroops[_name] = nil + ctld.inTransitFOBCrates[_name] = nil end - end - end --recreates beacons to make sure they work! function ctld.refreshRadioBeacons() - timer.scheduleFunction(ctld.refreshRadioBeacons,nil,timer.getTime()+60) + timer.scheduleFunction(ctld.refreshRadioBeacons, nil, timer.getTime() + 30) - for _fobName,_beaconDetails in ipairs(ctld.fobBeacons) do - local _fob = StaticObject.getByName(_fobName) - if _fob ~= nil and _fob:isExist() and _fob:getLife() > 0 then - ctld.createRadioBeacon(_beaconDetails.frequency,_fob:getPoint()) + for _index, _beaconDetails in ipairs(ctld.deployedRadioBeacons) do + + --trigger.action.outTextForCoalition(_beaconDetails.coalition,_beaconDetails.text,10) + if ctld.updateRadioBeacon(_beaconDetails.vhf,_beaconDetails.vhfGroup, _beaconDetails.uhf,_beaconDetails.uhfGroup, _beaconDetails.text, _beaconDetails.battery) == false then + + --search used frequencies + remove, add back to unused + + for _i, _freq in ipairs(ctld.usedUHFFrequencies) do + if _freq == _beaconDetails.uhf then + + table.insert(ctld.freeUHFFrequencies,_freq) + table.remove(ctld.usedUHFFrequencies,_i) + end + + end + + for _i, _freq in ipairs(ctld.usedVHFFrequencies) do + if _freq == _beaconDetails.vhf then + + table.insert(ctld.freeVHFFrequencies,_freq) + table.remove(ctld.usedVHFFrequencies,_i) + end + + end + +-- for _i, _freq in ipairs(ctld.usedFMFrequencies) do +-- if _freq == _beaconDetails.fm then +-- +-- table.insert(ctld.freeFMFrequencies,_freq) +-- table.remove(ctld.usedFMFrequencies,_i) +-- end +-- +-- end + + --clean up beacon table + table.remove(ctld.deployedRadioBeacons,_index) + end end - end -function ctld.getClockDirection(_heli,_crate) +function ctld.getClockDirection(_heli, _crate) -- Source: Helicopter Script - Thanks! local _position = _crate:getPosition().p -- get position of crate local _playerPosition = _heli:getPosition().p -- get position of helicopter - local _relativePosition = mist.vec.sub(_position,_playerPosition) + local _relativePosition = mist.vec.sub(_position, _playerPosition) local _playerHeading = mist.getHeading(_heli) -- the rest of the code determines the 'o'clock' bearing of the missile relative to the helicopter - local _headingVector = {x = math.cos(_playerHeading),y=0,z=math.sin(_playerHeading)} + local _headingVector = { x = math.cos(_playerHeading), y = 0, z = math.sin(_playerHeading) } - local _headingVectorPerpendicular = {x = math.cos(_playerHeading+math.pi/2),y=0,z=math.sin(_playerHeading+math.pi/2)} + local _headingVectorPerpendicular = { x = math.cos(_playerHeading + math.pi / 2), y = 0, z = math.sin(_playerHeading + math.pi / 2) } - local _forwardDistance = mist.vec.dp(_relativePosition,_headingVector) + local _forwardDistance = mist.vec.dp(_relativePosition, _headingVector) - local _rightDistance = mist.vec.dp(_relativePosition,_headingVectorPerpendicular) + local _rightDistance = mist.vec.dp(_relativePosition, _headingVectorPerpendicular) - local _angle = math.atan2(_rightDistance,_forwardDistance)*180/math.pi + local _angle = math.atan2(_rightDistance, _forwardDistance) * 180 / math.pi if _angle < 0 then - _angle = 360+_angle + _angle = 360 + _angle end - _angle = math.floor(_angle*12/360+0.5) + _angle = math.floor(_angle * 12 / 360 + 0.5) if _angle == 0 then _angle = 12 end @@ -1191,19 +1203,18 @@ function ctld.getClockDirection(_heli,_crate) end -function ctld.getCompassBearing(_ref,_unitPos) +function ctld.getCompassBearing(_ref, _unitPos) - _ref = mist.utils.makeVec3(_ref, 0) -- turn it into Vec3 if it is not already. - _unitPos = mist.utils.makeVec3(_unitPos,0) -- turn it into Vec3 if it is not already. + _ref = mist.utils.makeVec3(_ref, 0) -- turn it into Vec3 if it is not already. + _unitPos = mist.utils.makeVec3(_unitPos, 0) -- turn it into Vec3 if it is not already. - local _vec = {x = _unitPos.x - _ref.x, y = _unitPos.y - _ref.y, z = _unitPos.z - _ref.z} + local _vec = { x = _unitPos.x - _ref.x, y = _unitPos.y - _ref.y, z = _unitPos.z - _ref.z } local _dir = mist.utils.getDir(_vec, _ref) local _bearing = mist.utils.round(mist.utils.toDegree(_dir), 0) return _bearing - end function ctld.listNearbyCrates(_args) @@ -1222,7 +1233,7 @@ function ctld.listNearbyCrates(_args) for _, _crate in pairs(_crates) do if _crate.dist < 1000 and _crate.details.unit ~= "FOB" then - _message = string.format("%s\n%s crate - kg %i - %i m - %d o'clock", _message, _crate.details.desc, _crate.details.weight, _crate.dist,ctld.getClockDirection(_heli,_crate.crateUnit)) + _message = string.format("%s\n%s crate - kg %i - %i m - %d o'clock", _message, _crate.details.desc, _crate.details.weight, _crate.dist, ctld.getClockDirection(_heli, _crate.crateUnit)) end end @@ -1231,13 +1242,13 @@ function ctld.listNearbyCrates(_args) for _, _fobCrate in pairs(_crates) do if _fobCrate.dist < 1000 and _fobCrate.details.unit == "FOB" then - _fobMsg = _fobMsg..string.format("FOB Crate - %d m - %d o'clock\n", _fobCrate.dist, ctld.getClockDirection(_heli,_fobCrate.crateUnit)) + _fobMsg = _fobMsg .. string.format("FOB Crate - %d m - %d o'clock\n", _fobCrate.dist, ctld.getClockDirection(_heli, _fobCrate.crateUnit)) end end if _message ~= "" or _fobMsg ~= "" then - local _txt= "" + local _txt = "" if _message ~= "" then _txt = "Nearby Crates:\n" .. _message @@ -1246,11 +1257,10 @@ function ctld.listNearbyCrates(_args) if _fobMsg ~= "" then if _message ~= "" then - _txt = _txt.."\n\n" + _txt = _txt .. "\n\n" end - _txt = _txt.."Nearby FOB Crates (Not Slingloadable):\n" .. _fobMsg - + _txt = _txt .. "Nearby FOB Crates (Not Slingloadable):\n" .. _fobMsg end ctld.displayMessageToGroup(_heli, _txt, 20) @@ -1290,35 +1300,33 @@ function ctld.listFOBS(_args) else ctld.displayMessageToGroup(_heli, _msg, 20) end - end function ctld.getFOBPositionString(_fob) local _lat, _lon = coord.LOtoLL(_fob:getPosition().p) - local _latLngStr = mist.tostringLL(_lat, _lon,3,false) + local _latLngStr = mist.tostringLL(_lat, _lon, 3, false) - local _mgrsString = mist.tostringMGRS(coord.LLtoMGRS(coord.LOtoLL(_fob:getPosition().p)),5) + -- local _mgrsString = mist.tostringMGRS(coord.LLtoMGRS(coord.LOtoLL(_fob:getPosition().p)), 5) - local _message = _latLngStr .. " - MGRS ".._mgrsString + local _message = _latLngStr local _beaconInfo = ctld.fobBeacons[_fob:getName()] - if _beaconInfo ~=nil then - _message= string.format("%s - %.2f FM", _message,_beaconInfo.frequency / 1000000) + if _beaconInfo ~= nil then + _message = string.format("%s - %.2f KHz ", _message, _beaconInfo.vhf / 1000) + _message = string.format("%s - %.2f MHz ", _message, _beaconInfo.uhf / 1000000) + -- _message = string.format("%s - %.4f MHz ", _message, _beaconInfo.fm / 1000000) end return _message end - - function ctld.displayMessageToGroup(_unit, _text, _time) trigger.action.outTextForGroup(_unit:getGroup():getID(), _text, _time) - end --includes fob crates! @@ -1340,7 +1348,7 @@ function ctld.getCratesAndDistance(_heli) --in air seems buggy with crates so if in air is true, get the height above ground and the speed magnitude if _crate ~= nil and _crate:getLife() > 0 - and (_crate:inAir() == false or (land.getHeight(_crate:getPoint()) < 200 and mist.vec.mag(_crate:getVelocity()) < 1.0 )) then + and (_crate:inAir() == false or (land.getHeight(_crate:getPoint()) < 200 and mist.vec.mag(_crate:getVelocity()) < 1.0)) then local _dist = ctld.getDistance(_crate:getPoint(), _heli:getPoint()) @@ -1366,7 +1374,7 @@ function ctld.getCratesAndDistance(_heli) local _dist = ctld.getDistance(_crate:getPoint(), _heli:getPoint()) - local _crateDetails = { crateUnit = _crate, dist = _dist, details = {unit="FOB"}, } + local _crateDetails = { crateUnit = _crate, dist = _dist, details = { unit = "FOB" }, } table.insert(_crates, _crateDetails) end @@ -1376,7 +1384,7 @@ function ctld.getCratesAndDistance(_heli) end -function ctld.getClosestCrate(_heli, _crates,_type) +function ctld.getClosestCrate(_heli, _crates, _type) local _closetCrate = nil local _shortestDistance = -1 @@ -1384,7 +1392,7 @@ function ctld.getClosestCrate(_heli, _crates,_type) for _, _crate in pairs(_crates) do - if(_crate.details.unit == _type or _type == nil) then + if (_crate.details.unit == _type or _type == nil) then _distance = _crate.dist if _distance ~= nil and (_shortestDistance == -1 or _distance < _shortestDistance) then @@ -1420,16 +1428,13 @@ function ctld.findNearestHawk(_heli) _closestHawkGroup = _hawkGroup end end - end end if _closestHawkGroup ~= nil then - return {group = _closestHawkGroup, dist = _distance} + return { group = _closestHawkGroup, dist = _distance } end return nil - - end @@ -1447,7 +1452,7 @@ function ctld.unpackCrates(_args) if _crate ~= nil and _crate.dist < 750 and _crate.details.unit == "FOB" then - ctld.unpackFOBCrates(_crates,_heli) + ctld.unpackFOBCrates(_crates, _heli) return @@ -1464,7 +1469,7 @@ function ctld.unpackCrates(_args) if ctld.isMultiCrate(_crate.details) then -- multicrate - ctld.unpackMultiCrate(_heli,_crate,_crates) + ctld.unpackMultiCrate(_heli, _crate, _crates) else -- single crate @@ -1488,11 +1493,11 @@ function ctld.unpackCrates(_args) if ctld.isJTACUnitType(_crate.details.unit) and ctld.JTAC_dropEnabled then - local _code = table.remove(ctld.jtacGeneratedLaserCodes,1) + local _code = table.remove(ctld.jtacGeneratedLaserCodes, 1) --put to the end - table.insert(ctld.jtacGeneratedLaserCodes,_code) + table.insert(ctld.jtacGeneratedLaserCodes, _code) - ctld.JTACAutoLase(_spawnedGroups:getName(),_code) --(_jtacGroupName, _laserCode, _smoke, _lock, _colour) + ctld.JTACAutoLase(_spawnedGroups:getName(), _code) --(_jtacGroupName, _laserCode, _smoke, _lock, _colour) end end @@ -1505,7 +1510,7 @@ end -- builds a fob! -function ctld.unpackFOBCrates(_crates,_heli) +function ctld.unpackFOBCrates(_crates, _heli) if ctld.inLogisticsZone(_heli) == true then @@ -1526,7 +1531,6 @@ function ctld.unpackFOBCrates(_crates,_heli) if #_nearbyMultiCrates == ctld.cratesRequiredForFOB then break end - end end @@ -1553,86 +1557,424 @@ function ctld.unpackFOBCrates(_crates,_heli) local _centroid = ctld.getCentroid(_points) - timer.scheduleFunction( - function(_args) + timer.scheduleFunction(function(_args) - local _unitId = mist.getNextUnitId() - local _name = "Deployed FOB #".._unitId + local _unitId = mist.getNextUnitId() + local _name = "Deployed FOB #" .. _unitId - local _fob = ctld.spawnFOB(_args[2],_unitId,_args[1],_name) + local _fob = ctld.spawnFOB(_args[2], _unitId, _args[1], _name) - --make it able to deploy crates - table.insert(ctld.logisticUnits, _fob:getName()) + --make it able to deploy crates + table.insert(ctld.logisticUnits, _fob:getName()) - local _frequency = ctld.generateRadioFMRadioFrequency() + local _radioBeaconDetails = ctld.createRadioBeacon(_args[1], _args[3], _args[2],true) - ctld.fobBeacons[_name] = {frequency=_frequency, point=_fob:getPoint() } + ctld.fobBeacons[_name] = { vhf = _radioBeaconDetails.vhf, uhf = _radioBeaconDetails.uhf } - --started radio beacon - ctld.createRadioBeacon(_frequency,_fob:getPoint()) + if ctld.troopPickupAtFOB == true then + table.insert(ctld.builtFOBS, _fob:getName()) - if ctld.troopPickupAtFOB == true then - table.insert(ctld.builtFOBS, _fob:getName()) + trigger.action.outTextForCoalition(_args[3], "Finished building FOB! Crates and Troops can now be picked up.", 10) + else + trigger.action.outTextForCoalition(_args[3], "Finished building FOB! Crates can now be picked up.", 10) + end + end, { _centroid, _heli:getCountry(), _heli:getCoalition() }, timer.getTime() + ctld.buildTimeFOB) - trigger.action.outTextForCoalition(_args[3],"Finished building FOB! Crates and Troops can now be picked up.", 10) - else - trigger.action.outTextForCoalition(_args[3],"Finished building FOB! Crates can now be picked up.", 10) - end + local _txt = string.format("%s started building FOB using %d FOB crates, it will be finished in %d seconds.\nPosition marked with smoke.", ctld.getPlayerNameOrType(_heli), #_nearbyMultiCrates, ctld.buildTimeFOB) - end, {_centroid, _heli:getCountry(),_heli:getCoalition()}, timer.getTime() + ctld.buildTimeFOB) - - local _txt = string.format("%s started building FOB using %d FOB crates, it will be finished in %d seconds.\nPosition marked with smoke.",ctld.getPlayerNameOrType(_heli),#_nearbyMultiCrates,ctld.buildTimeFOB) - - trigger.action.smoke(_centroid,trigger.smokeColor.Green) + trigger.action.smoke(_centroid, trigger.smokeColor.Green) trigger.action.outTextForCoalition(_heli:getCoalition(), _txt, 10) else - local _txt = string.format("Cannot build FOB!\n\nIt requires %d FOB crates and there are %d \n\nOr the crates are not within 750m of each other",ctld.cratesRequiredForFOB,#_nearbyMultiCrates) + local _txt = string.format("Cannot build FOB!\n\nIt requires %d FOB crates and there are %d \n\nOr the crates are not within 750m of each other", ctld.cratesRequiredForFOB, #_nearbyMultiCrates) ctld.displayMessageToGroup(_heli, _txt, 20) end +end + +--spawns a radio beacon made up of two units, +-- one for VHF and one for UHF +-- The units are set to to NOT engage +function ctld.createRadioBeacon(_point, _coalition, _country,_isFOB) + + local _uhfGroup = ctld.spawnRadioBeaconUnit(_point, _country, "UHF") + local _vhfGroup = ctld.spawnRadioBeaconUnit(_point, _country, "VHF") + -- local _fmGroup = ctld.spawnRadioBeaconUnit(_point, _country, "FM") + + local _freq = ctld.generateADFFrequencies() + + --create timeout + local _battery = timer.getTime()+ (ctld.deployedBeaconBattery *60) + + local _lat, _lon = coord.LOtoLL(_point) + + local _latLngStr = mist.tostringLL(_lat, _lon, 3, false) + + --local _mgrsString = mist.tostringMGRS(coord.LLtoMGRS(coord.LOtoLL(_point)), 5) + + local _message = "" + + if _isFOB then + _message = "FOB ".._message + _battery = -1 --never run out of power! + end + + _message =_message.._latLngStr + + -- env.info("GEN UHF: ".. _freq.uhf) + -- env.info("GEN VHF: ".. _freq.vhf) + + _message = string.format("%s - %.2f KHz", _message, _freq.vhf / 1000) + + _message = string.format("%s - %.2f MHz", _message, _freq.uhf / 1000000) + + -- _message = string.format("%s - %.4f MHz ", _message, _freq.fm / 1000000) + + ctld.updateRadioBeacon(_freq.vhf, _vhfGroup:getName(), _freq.uhf,_uhfGroup:getName(), _message, _battery) + + local _beaconDetails = { + vhf=_freq.vhf, + vhfGroup=_vhfGroup:getName(), + uhf=_freq.uhf, + uhfGroup=_uhfGroup:getName(), + -- fm = _freq.fm, + -- fmGroup = _fmGroup:getName(), + text=_message, + battery=_battery, + coalition=_coalition, + } + + table.insert(ctld.deployedRadioBeacons,_beaconDetails) + + return _beaconDetails end -function ctld.createRadioBeacon(_frequency, _point) +function ctld.generateADFFrequencies() - trigger.action.radioTransmission(ctld.radioSound, _point, 1, true, _frequency, 1000) + if #ctld.freeUHFFrequencies <= 3 then + ctld.freeUHFFrequencies = ctld.usedUHFFrequencies + ctld.usedUHFFrequencies = {} + end + + --remove frequency at RANDOM + local _uhf = table.remove(ctld.freeUHFFrequencies,math.random(#ctld.freeUHFFrequencies)) + table.insert(ctld.usedUHFFrequencies,_uhf) + + + if #ctld.freeVHFFrequencies <= 3 then + ctld.freeVHFFrequencies = ctld.usedVHFFrequencies + ctld.usedVHFFrequencies = {} + end + + local _vhf = table.remove(ctld.freeVHFFrequencies,math.random(#ctld.freeVHFFrequencies)) + table.insert(ctld.usedVHFFrequencies,_vhf) +-- +-- if #ctld.freeFMFrequencies <= 3 then +-- ctld.freeFMFrequencies = ctld.usedFMFrequencies +-- ctld.usedFMFrequencies = {} +-- end +-- +-- local _fm = table.remove(ctld.freeFMFrequencies,math.random(#ctld.freeFMFrequencies)) +-- table.insert(ctld.usedFMFrequencies,_fm) + + -- return {uhf=_uhf,vhf=_vhf,fm=_fm} + return {uhf=_uhf,vhf=_vhf} end -function ctld.generateRadioFMRadioFrequency() - - --pick random frequency! - -- first digit 3-7 - -- second digit 0-5 - -- third digit 0-9 - -- fourth digit 0 or 5 - -- times by 10000 - local _first = math.random(3,7) - local _second = math.random(0,5) - local _third = math.random(0,9) +function ctld.spawnRadioBeaconUnit(_point, _country, _type) - local _frequency =( (100*_first)+(10*_second)+_third) * 100000 --extra 0 because we didnt bother with 4th digit + local _groupId = mist.getNextGroupId() - local _found = false - for _, _beacon in ipairs(ctld.fobBeacons) do + local _unitId = mist.getNextUnitId() - if _beacon.frequency == _frequency then - _found = true - break + local _radioGroup = { + ["visible"] = false, + ["groupId"] = _groupId, + ["hidden"] = false, + ["units"] = { + [1] = { + ["y"] = _point.z, + ["type"] = "2B11 mortar", + ["name"] = _type .. " Radio Beacon Unit #" .. _unitId, + ["unitId"] = _unitId, + ["heading"] = 0, + ["playerCanDrive"] = true, + ["skill"] = "Excellent", + ["x"] = _point.x, + } + }, + -- ["y"] = _positions[1].z, + -- ["x"] = _positions[1].x, + ["name"] = _type .. " Radio Beacon Group #" .. _groupId, + ["task"] = {}, + } + + return coalition.addGroup(_country, Group.Category.GROUND, _radioGroup) +end + +function ctld.updateRadioBeacon(_vhfFrequency, _vhfGroupName, _uhfFrequency,_uhfGroupName, _text, _battery) + + local _vhfGroup = Group.getByName(_vhfGroupName) + + local _uhfGroup = Group.getByName(_uhfGroupName) + + -- local _fmGroup = Group.getByName(_fmGroupName) + + local _radioLoop = {} + + if _vhfGroup ~= nil and _vhfGroup:getUnits() ~= nil and #_vhfGroup:getUnits() == 1 then + table.insert(_radioLoop,{group=_vhfGroup,freq=_vhfFrequency, silent=false, mode = 0}) + end + + if _uhfGroup ~= nil and _uhfGroup:getUnits() ~= nil and #_uhfGroup:getUnits() == 1 then + table.insert(_radioLoop,{group=_uhfGroup,freq=_uhfFrequency, silent=true,mode = 0}) + end + +-- if _fmGroup ~= nil and _fmGroup:getUnits() ~= nil and #_fmGroup:getUnits() == 1 then +-- table.insert(_radioLoop,{group=_fmGroup,freq=_fmFrequency,silent=false, mode = 1}) +-- end + + local _batLife = _battery - timer.getTime() + + if (_batLife <= 0 and _battery ~= -1) or #_radioLoop ~= 2 then + -- ran out of batteries + + if _vhfGroup ~= nil then + _vhfGroup:destroy() + end + if _uhfGroup ~= nil then + _uhfGroup:destroy() + end +-- if _fmGroup ~= nil then +-- _fmGroup:destroy() +-- end + + return false + end + + --fobs have unlimited battery life + if _battery ~= -1 then + _text = _text.." "..mist.utils.round(_batLife).." seconds of battery" + end + + for _,_radio in pairs(_radioLoop) do + + local _setFrequency = { + ["enabled"] = true, + ["auto"] = false, + ["id"] = "WrappedAction", + ["number"] = 1, -- first task + ["params"] = { + ["action"] = { + ["id"] = "SetFrequency", + ["params"] = { + ["modulation"] = _radio.mode, -- 0 is AM 1 is FM --if FM you cant read the message... might be the only fix to stop FC3 aircraft hearing it... :( + ["frequency"] = _radio.freq, + }, + }, + }, + } + + + local _radioText = _text + local _sound = ctld.radioSound + --dont show radio text on UHF as that should hide it from FC3 aircraft + if _radio.silent then + _radioText = "" + _sound = ctld.radioSoundFC3 end + + local _setupDetails = { + ["enabled"] = true, + ["auto"] = false, + ["id"] = "WrappedAction", + ["number"] = 2, -- second task + ["params"] = { + ["action"] = { + ["id"] = "TransmitMessage", + ["params"] = { + ["loop"] = true, --false works too + ["subtitle"] = _radioText, --_text + ["duration"] = 60, -- reset every 60 seconds --used to have timer.getTime() +60 + ["file"] = _sound, + }, + }, + } + } + + local _groupController = _radio.group:getController() + + --reset! + _groupController:resetTask() + + _groupController:setTask(_setFrequency) + _groupController:setTask(_setupDetails) + + --Make the unit NOT engage as its simulating a radio...! + _groupController:setOption(AI.Option.Ground.id.ROE, AI.Option.Ground.val.ROE.WEAPON_HOLD) + + --env.info("Radio Beacon: ".. _text) + + -- trigger.action.radioTransmission(ctld.radioSoundShort, _vhfGroup:getUnit(1):getPoint(), _radio.mode, false, _radio.freq, 1000) end - if _found then - --try again! - return ctld.generateRadioFMFrequency() - else - return _frequency + return true + + -- trigger.action.radioTransmission(ctld.radioSound, _point, 1, true, _frequency, 1000) +end + +function ctld.listRadioBeacons(_args) + + local _heli = ctld.getTransportUnit(_args[1]) + local _message = "" + + if _heli ~= nil then + + for _x,_details in pairs(ctld.deployedRadioBeacons) do + + if _details.coalition == _heli:getCoalition() then + _message = _message.._details.text.."\n" + end + end + + if _message ~= "" then + ctld.displayMessageToGroup(_heli, "Radio Beacons:\n".._message, 20) + else + ctld.displayMessageToGroup(_heli, "No Active Radio Beacons", 20) + end end + + + end +function ctld.dropRadioBeacon(_args) + + local _heli = ctld.getTransportUnit(_args[1]) + local _message = "" + + if _heli ~= nil and _heli:inAir() == false then + + --deploy 50 m infront + --try to spawn at 12 oclock to us + local _position = _heli:getPosition() + local _point = _heli:getPoint() + + local _angle = math.atan2(_position.x.z, _position.x.x) + + local _xOffset = math.cos(_angle) * 50 + local _yOffset = math.sin(_angle) * 50 + + local _radioBeaconDetails = ctld.createRadioBeacon({ x = _point.x + _xOffset, z = _point.z + _yOffset }, _heli:getCoalition(),_heli:getCountry(),false) + + -- mark with flare? + + trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " deployed a Radio Beacon.\n\n".._radioBeaconDetails.text, 20) + + else + ctld.displayMessageToGroup(_heli, "You need to land before you can deploy a Radio Beacon!", 20) + end + + +end + +--remove closet radio beacon +function ctld.removeRadioBeacon(_args) + + local _heli = ctld.getTransportUnit(_args[1]) + local _message = "" + + if _heli ~= nil and _heli:inAir() == false then + + -- mark with flare? + + local _closetBeacon= nil + local _shortestDistance = -1 + local _distance = 0 + + for _x,_details in pairs(ctld.deployedRadioBeacons) do + + if _details.coalition == _heli:getCoalition() then + + local _group = Group.getByName(_details.vhfGroup) + + if _group ~= nil and #_group:getUnits() == 1 then + + _distance = ctld.getDistance(_heli:getPoint(), _group:getUnit(1):getPoint()) + if _distance ~= nil and (_shortestDistance == -1 or _distance < _shortestDistance) then + _shortestDistance = _distance + _closetBeacon = _details + end + end + end + end + + if _closetBeacon ~= nil and _shortestDistance then + local _vhfGroup = Group.getByName(_closetBeacon.vhfGroup) + + local _uhfGroup = Group.getByName(_closetBeacon.uhfGroup) + + -- local _fmGroup = Group.getByName(_closetBeacon.fmGroup) + + if _vhfGroup ~= nil then + _vhfGroup:destroy() + end + if _uhfGroup ~= nil then + _uhfGroup:destroy() + end +-- if _fmGroup ~= nil then +-- _fmGroup:destroy() +-- end + + trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " removed a Radio Beacon.\n\n".._closetBeacon.text, 20) + else + ctld.displayMessageToGroup(_heli, "No Radio Beacons within 500m.", 20) + end + + else + ctld.displayMessageToGroup(_heli, "You need to land before remove a Radio Beacon", 20) + end + + +end + +--function ctld.generateRadioFMRadioFrequency() +-- +-- --pick random frequency! +-- -- first digit 3-7 +-- -- second digit 0-5 +-- -- third digit 0-9 +-- -- fourth digit 0 or 5 +-- -- times by 10000 +-- +-- +-- local _first = math.random(3, 7) +-- local _second = math.random(0, 5) +-- local _third = math.random(0, 9) +-- +-- local _frequency = ((100 * _first) + (10 * _second) + _third) * 100000 --extra 0 because we didnt bother with 4th digit +-- +-- local _found = false +-- for _, _beacon in ipairs(ctld.fobBeacons) do +-- +-- if _beacon.frequency == _frequency then +-- _found = true +-- break +-- end +-- end +-- +-- if _found then +-- --try again! +-- return ctld.generateRadioFMFrequency() +-- else +-- return _frequency +-- end +--end + -- gets the center of a bunch of points! -- return proper DCS point with height @@ -1645,9 +1987,9 @@ function ctld.getCentroid(_points) local _npoints = #_points - local _point= {x = _tx / _npoints, z = _ty / _npoints } + local _point = { x = _tx / _npoints, z = _ty / _npoints } - _point.y = land.getHeight({_point.x, _point.z}) + _point.y = land.getHeight({ _point.x, _point.z }) return _point end @@ -1661,18 +2003,17 @@ function ctld.isMultiCrate(_crateDetails) else return false end - end -function ctld.rearmHawk(_heli,_nearestCrate,_nearbyCrates) +function ctld.rearmHawk(_heli, _nearestCrate, _nearbyCrates) -- are we adding to existing hawk system? if _nearestCrate.details.unit == "Hawk ln" then -- find nearest COMPLETE hawk system - local _nearestHawk = ctld.findNearestHawk(_heli) + local _nearestHawk = ctld.findNearestHawk(_heli) - if _nearestHawk ~=nil and _nearestHawk.dist < 300 then + if _nearestHawk ~= nil and _nearestHawk.dist < 300 then if _heli:getCoalition() == 1 then ctld.spawnedCratesRED[_nearestCrate.crateUnit:getName()] = nil @@ -1689,8 +2030,8 @@ function ctld.rearmHawk(_heli,_nearestCrate,_nearbyCrates) for x = 1, #_units do if _units[x]:getLife() > 0 then - table.insert(_types,_units[x]:getTypeName()) - table.insert(_points,_units[x]:getPoint()) + table.insert(_types, _units[x]:getTypeName()) + table.insert(_points, _units[x]:getPoint()) end end end @@ -1717,14 +2058,13 @@ function ctld.rearmHawk(_heli,_nearestCrate,_nearbyCrates) return false end -function ctld.unpackHawk(_heli,_nearestCrate,_nearbyCrates) +function ctld.unpackHawk(_heli, _nearestCrate, _nearbyCrates) - if ctld.rearmHawk(_heli,_nearestCrate,_nearbyCrates) then + if ctld.rearmHawk(_heli, _nearestCrate, _nearbyCrates) then -- rearmed hawk return end - -- are there all the pieces close enough together local _hawkParts = { ["Hawk ln"] = false, ["Hawk tr"] = false, ["Hawk sr"] = false } @@ -1793,10 +2133,10 @@ function ctld.unpackHawk(_heli,_nearestCrate,_nearbyCrates) end end -function ctld.unpackMultiCrate(_heli,_nearestCrate,_nearbyCrates) +function ctld.unpackMultiCrate(_heli, _nearestCrate, _nearbyCrates) if string.match(_nearestCrate.details.desc, "HAWK") then - ctld.unpackHawk(_heli,_nearestCrate,_nearbyCrates) + ctld.unpackHawk(_heli, _nearestCrate, _nearbyCrates) return -- stop processing end @@ -1842,20 +2182,18 @@ function ctld.unpackMultiCrate(_heli,_nearestCrate,_nearbyCrates) end - local _spawnedGroup = ctld.spawnCrateGroup(_heli,{_point} ,{_nearestCrate.details.unit}) + local _spawnedGroup = ctld.spawnCrateGroup(_heli, { _point }, { _nearestCrate.details.unit }) - local _txt = string.format("%s successfully deployed %s to the field using %d crates",ctld.getPlayerNameOrType(_heli),_nearestCrate.details.desc,#_nearbyMultiCrates) + local _txt = string.format("%s successfully deployed %s to the field using %d crates", ctld.getPlayerNameOrType(_heli), _nearestCrate.details.desc, #_nearbyMultiCrates) trigger.action.outTextForCoalition(_heli:getCoalition(), _txt, 10) else - local _txt = string.format("Cannot build %s!\n\nIt requires %d crates and there are %d \n\nOr the crates are not within 300m of each other",_nearestCrate.details.desc,_nearestCrate.details.cratesRequired,#_nearbyMultiCrates) + local _txt = string.format("Cannot build %s!\n\nIt requires %d crates and there are %d \n\nOr the crates are not within 300m of each other", _nearestCrate.details.desc, _nearestCrate.details.cratesRequired, #_nearbyMultiCrates) ctld.displayMessageToGroup(_heli, _txt, 20) end - - end @@ -1881,7 +2219,7 @@ function ctld.spawnCrateGroup(_heli, _positions, _types) if #_positions == 1 then local _unitId = mist.getNextUnitId() - local _details = {type= _types[1], unitId = _unitId, name = string.format("Unpacked %s #%i",_types[1],_unitId)} + local _details = { type = _types[1], unitId = _unitId, name = string.format("Unpacked %s #%i", _types[1], _unitId) } _group.units[1] = ctld.createUnit(_positions[1].x + 5, _positions[1].z + 5, 120, _details) @@ -1890,7 +2228,7 @@ function ctld.spawnCrateGroup(_heli, _positions, _types) for _i, _pos in ipairs(_positions) do local _unitId = mist.getNextUnitId() - local _details = {type= _types[_i], unitId = _unitId, name = string.format("Unpacked %s #%i",_types[_i],_unitId)} + local _details = { type = _types[_i], unitId = _unitId, name = string.format("Unpacked %s #%i", _types[_i], _unitId) } _group.units[_i] = ctld.createUnit(_pos.x + 5, _pos.z + 5, 120, _details) end @@ -1911,7 +2249,7 @@ end -- spawn normal group -function ctld.spawnDroppedGroup(_point, _details, _spawnBehind,_maxSearch) +function ctld.spawnDroppedGroup(_point, _details, _spawnBehind, _maxSearch) local _groupName = _details.groupName @@ -1953,7 +2291,7 @@ function ctld.spawnDroppedGroup(_point, _details, _spawnBehind,_maxSearch) for _i, _detail in ipairs(_details.units) do - _group.units[_i] = ctld.createUnit(_pos.x + (_xOffset + 10 * _i), _pos.z + (_yOffset + 10 * _i), _angle,_detail) + _group.units[_i] = ctld.createUnit(_pos.x + (_xOffset + 10 * _i), _pos.z + (_yOffset + 10 * _i), _angle, _detail) end end @@ -1965,14 +2303,14 @@ function ctld.spawnDroppedGroup(_point, _details, _spawnBehind,_maxSearch) _maxSearch = ctld.maximumSearchDistance end - local _enemyPos = ctld.findNearestEnemy(_details.side,_point,_maxSearch) + local _enemyPos = ctld.findNearestEnemy(_details.side, _point, _maxSearch) ctld.orderGroupToMoveToPoint(_spawnedGroup:getUnit(1), _enemyPos) return _spawnedGroup end -function ctld.findNearestEnemy(_side,_point,_searchDistance) +function ctld.findNearestEnemy(_side, _point, _searchDistance) local _closestEnemy = nil @@ -2051,7 +2389,7 @@ function ctld.findNearestGroup(_heli, _groups) local _leader = nil - local _groupDetails = { groupId = _group:getID(), groupName = _group:getName(), side = _group:getCoalition(), units = {} } + local _groupDetails = { groupId = _group:getID(), groupName = _group:getName(), side = _group:getCoalition(), units = {} } -- find alive leader for x = 1, #_units do @@ -2060,10 +2398,10 @@ function ctld.findNearestGroup(_heli, _groups) if _leader == nil then _leader = _units[x] -- set country based on leader - _groupDetails.country = _leader:getCountry() + _groupDetails.country = _leader:getCountry() end - local _unitDetails = {type = _units[x]:getTypeName(), unitId = _units[x]:getID(), name = _units[x]:getName() } + local _unitDetails = { type = _units[x]:getTypeName(), unitId = _units[x]:getID(), name = _units[x]:getName() } table.insert(_groupDetails.units, _unitDetails) end @@ -2180,7 +2518,7 @@ function ctld.inPickupZone(_heli) --get distance to center - local _dist = ctld.getDistance(_heliPoint,_fob:getPoint()) + local _dist = ctld.getDistance(_heliPoint, _fob:getPoint()) if _dist <= 150 then return true @@ -2202,12 +2540,11 @@ function ctld.getSpawnedFobs(_heli) if _fob ~= nil and _fob:isExist() and _fob:getCoalition() == _heli:getCoalition() and _fob:getLife() > 0 then - table.insert(_fobs,_fob) + table.insert(_fobs, _fob) end end return _fobs - end -- are we in a dropoff zone @@ -2322,7 +2659,7 @@ function ctld.dropSmoke(_args) trigger.action.smoke(_pos3, _args[2]) - trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " dropped " .._colour .." smoke ", 10) + trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " dropped " .. _colour .. " smoke ", 10) end end @@ -2330,7 +2667,7 @@ function ctld.unitCanCarryVehicles(_unit) local _type = string.lower(_unit:getTypeName()) - for _,_name in ipairs(ctld.vehicleTransportEnabled) do + for _, _name in ipairs(ctld.vehicleTransportEnabled) do local _nameLower = string.lower(_name) if string.match(_type, _nameLower) then return true @@ -2344,16 +2681,14 @@ function ctld.isJTACUnitType(_type) _type = string.lower(_type) - for _,_name in ipairs(ctld.jtacUnitTypes) do + for _, _name in ipairs(ctld.jtacUnitTypes) do local _nameLower = string.lower(_name) if string.match(_type, _nameLower) then return true end - end return false - end @@ -2361,7 +2696,7 @@ end -- checks the status of all AI troop carriers and auto loads and unloads troops function ctld.checkAIStatus() - timer.scheduleFunction(ctld.checkAIStatus,nil,timer.getTime()+5) + timer.scheduleFunction(ctld.checkAIStatus, nil, timer.getTime() + 5) for _, _unitName in pairs(ctld.transportPilotNames) do @@ -2371,31 +2706,28 @@ function ctld.checkAIStatus() -- no player name means AI! - if ctld.inPickupZone(_unit) and not ctld.troopsOnboard(_unit,true) then + if ctld.inPickupZone(_unit) and not ctld.troopsOnboard(_unit, true) then - ctld.loadTroops(_unit,true) + ctld.loadTroops(_unit, true) - elseif ctld.inDropoffZone(_unit) and ctld.troopsOnboard(_unit,true) then + elseif ctld.inDropoffZone(_unit) and ctld.troopsOnboard(_unit, true) then - ctld.deployTroops(_unit,true) + ctld.deployTroops(_unit, true) end if ctld.unitCanCarryVehicles(_unit) then - if ctld.inPickupZone(_unit) and not ctld.troopsOnboard(_unit,false) then + if ctld.inPickupZone(_unit) and not ctld.troopsOnboard(_unit, false) then - ctld.loadTroops(_unit,false) + ctld.loadTroops(_unit, false) - elseif ctld.inDropoffZone(_unit) and ctld.troopsOnboard(_unit,false) then + elseif ctld.inDropoffZone(_unit) and ctld.troopsOnboard(_unit, false) then - ctld.deployTroops(_unit,false) + ctld.deployTroops(_unit, false) end - end - end end - end @@ -2413,22 +2745,21 @@ function ctld.addF10MenuOptions() local _groupId = _unit:getGroup():getID() - if ctld.addedTo[tostring(_groupId)] == nil and _unit:getPlayerName() ~= nil then + if ctld.addedTo[tostring(_groupId)] == nil then local _rootPath = missionCommands.addSubMenuForGroup(_groupId, "CTLD") - local _troopCommandsPath = missionCommands.addSubMenuForGroup(_groupId, "Troop Transport",_rootPath) - missionCommands.addCommandForGroup(_groupId, "Load / Unload Troops", _troopCommandsPath, ctld.loadUnloadTroops, { _unitName,true }) + local _troopCommandsPath = missionCommands.addSubMenuForGroup(_groupId, "Troop Transport", _rootPath) + missionCommands.addCommandForGroup(_groupId, "Load / Unload Troops", _troopCommandsPath, ctld.loadUnloadTroops, { _unitName, true }) if ctld.unitCanCarryVehicles(_unit) then - missionCommands.addCommandForGroup(_groupId, "Load / Unload Vehicles", _troopCommandsPath, ctld.loadUnloadTroops, { _unitName,false }) + missionCommands.addCommandForGroup(_groupId, "Load / Unload Vehicles", _troopCommandsPath, ctld.loadUnloadTroops, { _unitName, false }) if ctld.enabledFOBBuilding then - missionCommands.addCommandForGroup(_groupId, "Load / Unload FOB Crate", _troopCommandsPath, ctld.loadUnloadFOBCrate, { _unitName,false }) + missionCommands.addCommandForGroup(_groupId, "Load / Unload FOB Crate", _troopCommandsPath, ctld.loadUnloadFOBCrate, { _unitName, false }) end - end missionCommands.addCommandForGroup(_groupId, "Check Cargo", _troopCommandsPath, ctld.checkTroopStatus, { _unitName }) @@ -2440,19 +2771,19 @@ function ctld.addF10MenuOptions() -- add menu for spawning crates for _subMenuName, _crates in pairs(ctld.spawnableCrates) do - local _cratePath = missionCommands.addSubMenuForGroup(_groupId, _subMenuName,_rootPath) + local _cratePath = missionCommands.addSubMenuForGroup(_groupId, _subMenuName, _rootPath) for _, _crate in pairs(_crates) do - if ctld.isJTACUnitType(_crate.unit) == false or ( ctld.isJTACUnitType(_crate.unit) == true and ctld.JTAC_dropEnabled ) then + if ctld.isJTACUnitType(_crate.unit) == false or (ctld.isJTACUnitType(_crate.unit) == true and ctld.JTAC_dropEnabled) then if _crate.side == nil or (_crate.side == _unit:getCoalition()) then - missionCommands.addCommandForGroup(_groupId, _crate.desc, _cratePath, ctld.spawnCrate, { _unitName,_crate.weight }) + missionCommands.addCommandForGroup(_groupId, _crate.desc, _cratePath, ctld.spawnCrate, { _unitName, _crate.weight }) end end end end end - local _crateCommands = missionCommands.addSubMenuForGroup(_groupId, "CTLD Commands",_rootPath) + local _crateCommands = missionCommands.addSubMenuForGroup(_groupId, "CTLD Commands", _rootPath) missionCommands.addCommandForGroup(_groupId, "List Nearby Crates", _crateCommands, ctld.listNearbyCrates, { _unitName }) missionCommands.addCommandForGroup(_groupId, "Unpack Any Crate", _crateCommands, ctld.unpackCrates, { _unitName }) @@ -2461,20 +2792,36 @@ function ctld.addF10MenuOptions() end if ctld.enableSmokeDrop then - local _smokeCommands = missionCommands.addSubMenuForGroup(_groupId, "Smoke Markers",_rootPath) - missionCommands.addCommandForGroup(_groupId, "Drop Red Smoke",_smokeCommands, ctld.dropSmoke, { _unitName, trigger.smokeColor.Red }) + local _smokeCommands = missionCommands.addSubMenuForGroup(_groupId, "Smoke Markers", _rootPath) + missionCommands.addCommandForGroup(_groupId, "Drop Red Smoke", _smokeCommands, ctld.dropSmoke, { _unitName, trigger.smokeColor.Red }) missionCommands.addCommandForGroup(_groupId, "Drop Blue Smoke", _smokeCommands, ctld.dropSmoke, { _unitName, trigger.smokeColor.Blue }) missionCommands.addCommandForGroup(_groupId, "Drop Orange Smoke", _smokeCommands, ctld.dropSmoke, { _unitName, trigger.smokeColor.Orange }) - missionCommands.addCommandForGroup(_groupId, "Drop Green Smoke",_smokeCommands, ctld.dropSmoke, { _unitName, trigger.smokeColor.Green }) + missionCommands.addCommandForGroup(_groupId, "Drop Green Smoke", _smokeCommands, ctld.dropSmoke, { _unitName, trigger.smokeColor.Green }) + end + + if ctld.enabledRadioBeaconDrop then + local _radioCommands = missionCommands.addSubMenuForGroup(_groupId, "Radio Beacons", _rootPath) + missionCommands.addCommandForGroup(_groupId, "List Beacons", _radioCommands, ctld.listRadioBeacons, { _unitName }) + missionCommands.addCommandForGroup(_groupId, "Drop Beacon", _radioCommands, ctld.dropRadioBeacon, { _unitName }) + missionCommands.addCommandForGroup(_groupId, "Remove Closet Beacon", _radioCommands, ctld.removeRadioBeacon, { _unitName }) + end else if ctld.enableSmokeDrop then missionCommands.addSubMenuForGroup(_groupId, "Smoke Markers") missionCommands.addCommandForGroup(_groupId, "Drop Red Smoke", { "Smoke Markers" }, ctld.dropSmoke, { _unitName, trigger.smokeColor.Red }) missionCommands.addCommandForGroup(_groupId, "Drop Blue Smoke", { "Smoke Markers" }, ctld.dropSmoke, { _unitName, trigger.smokeColor.Blue }) - missionCommands.addCommandForGroup(_groupId, "Drop Orange Smoke", { "Smoke Markers"}, ctld.dropSmoke, { _unitName, trigger.smokeColor.Orange }) + missionCommands.addCommandForGroup(_groupId, "Drop Orange Smoke", { "Smoke Markers" }, ctld.dropSmoke, { _unitName, trigger.smokeColor.Orange }) missionCommands.addCommandForGroup(_groupId, "Drop Green Smoke", { "Smoke Markers" }, ctld.dropSmoke, { _unitName, trigger.smokeColor.Green }) end + + if ctld.enabledRadioBeaconDrop then + local _radioCommands = missionCommands.addSubMenuForGroup(_groupId, "Radio Beacons", _rootPath) + missionCommands.addCommandForGroup(_groupId, "List Beacons", _radioCommands, ctld.listRadioBeacons, { _unitName }) + missionCommands.addCommandForGroup(_groupId, "Drop Beacon", _radioCommands, ctld.dropRadioBeacon, { _unitName }) + missionCommands.addCommandForGroup(_groupId, "Remove Closet Beacon", _radioCommands, ctld.removeRadioBeacon, { _unitName }) + + end end ctld.addedTo[tostring(_groupId)] = true @@ -2484,6 +2831,16 @@ function ctld.addF10MenuOptions() end end + -- now do any player controlled aircraft that ARENT transport units + if ctld.enabledRadioBeaconDrop then + -- get all BLUE players + ctld.addRadioListCommand(coalition.side.BLUE) + + -- get all RED players + ctld.addRadioListCommand(coalition.side.RED) + end + + if ctld.JTAC_jtacStatusF10 then -- get all BLUE players ctld.addJTACRadioCommand(coalition.side.BLUE) @@ -2491,17 +2848,35 @@ function ctld.addF10MenuOptions() -- get all RED players ctld.addJTACRadioCommand(coalition.side.RED) end +end +--add to all players that arent transport +function ctld.addRadioListCommand(_side) + + local _players = coalition.getPlayers(_side) + + if _players ~= nil then + + for _, _playerUnit in pairs(_players) do + + local _groupId = _playerUnit:getGroup():getID() + + if ctld.addedTo[tostring(_groupId)] == nil then + missionCommands.addCommandForGroup(_groupId, "List Radio Beacons", nil, ctld.listRadioBeacons, { _playerUnit:getName() }) + ctld.addedTo[tostring(_groupId)] = true + end + end + end end function ctld.addJTACRadioCommand(_side) - local _players = coalition.getPlayers(_side) + local _players = coalition.getPlayers(_side) if _players ~= nil then - for _,_playerUnit in pairs(_players) do + for _, _playerUnit in pairs(_players) do local _groupId = _playerUnit:getGroup():getID() @@ -2512,11 +2887,8 @@ function ctld.addJTACRadioCommand(_side) ctld.jtacRadioAdded[tostring(_groupId)] = true -- env.info("Added command for " .. index) end - end - end - end --get distance in meters assuming a Flat world @@ -2564,7 +2936,7 @@ function ctld.JTACAutoLase(_jtacGroupName, _laserCode, _smoke, _lock, _colour) if _jtacGroup == nil or #_jtacGroup == 0 then if ctld.jtacUnits[_jtacGroupName] ~= nil then - ctld.notifyCoalition("JTAC Group " .. _jtacGroupName .. " KIA!", 10,ctld.jtacUnits[_jtacGroupName].side) + ctld.notifyCoalition("JTAC Group " .. _jtacGroupName .. " KIA!", 10, ctld.jtacUnits[_jtacGroupName].side) end --remove from list @@ -2577,12 +2949,12 @@ function ctld.JTACAutoLase(_jtacGroupName, _laserCode, _smoke, _lock, _colour) _jtacUnit = _jtacGroup[1] --add to list - ctld.jtacUnits[_jtacGroupName] = {name = _jtacUnit:getName(), side = _jtacUnit:getCoalition()} + ctld.jtacUnits[_jtacGroupName] = { name = _jtacUnit:getName(), side = _jtacUnit:getCoalition() } -- work out smoke colour if _colour == nil then - if _jtacUnit:getCoalition() == 1 then + if _jtacUnit:getCoalition() == 1 then _colour = ctld.JTAC_smokeColour_RED else _colour = ctld.JTAC_smokeColour_BLUE @@ -2592,14 +2964,12 @@ function ctld.JTACAutoLase(_jtacGroupName, _laserCode, _smoke, _lock, _colour) if _smoke == nil then - if _jtacUnit:getCoalition() == 1 then + if _jtacUnit:getCoalition() == 1 then _smoke = ctld.JTAC_smokeOn_RED else _smoke = ctld.JTAC_smokeOn_BLUE end - end - end @@ -2626,9 +2996,9 @@ function ctld.JTACAutoLase(_jtacGroupName, _laserCode, _smoke, _lock, _colour) local _tempUnit = Unit.getByName(_tempUnitInfo.name) if _tempUnit ~= nil and _tempUnit:getLife() > 0 and _tempUnit:isActive() == true then - ctld.notifyCoalition(_jtacGroupName .. " target " .. _tempUnitInfo.unitType .. " lost. Scanning for Targets. ", 10,_jtacUnit:getCoalition()) + ctld.notifyCoalition(_jtacGroupName .. " target " .. _tempUnitInfo.unitType .. " lost. Scanning for Targets. ", 10, _jtacUnit:getCoalition()) else - ctld.notifyCoalition(_jtacGroupName .. " target " .. _tempUnitInfo.unitType .. " KIA. Good Job! Scanning for Targets. ", 10,_jtacUnit:getCoalition()) + ctld.notifyCoalition(_jtacGroupName .. " target " .. _tempUnitInfo.unitType .. " KIA. Good Job! Scanning for Targets. ", 10, _jtacUnit:getCoalition()) end --remove from smoke list @@ -2639,7 +3009,6 @@ function ctld.JTACAutoLase(_jtacGroupName, _laserCode, _smoke, _lock, _colour) --stop lasing ctld.cancelLase(_jtacGroupName) - end @@ -2651,7 +3020,7 @@ function ctld.JTACAutoLase(_jtacGroupName, _laserCode, _smoke, _lock, _colour) -- store current target for easy lookup ctld.jtacCurrentTargets[_jtacGroupName] = { name = _enemyUnit:getName(), unitType = _enemyUnit:getTypeName(), unitId = _enemyUnit:getID() } - ctld.notifyCoalition(_jtacGroupName .. " lasing new target " .. _enemyUnit:getTypeName() .. '. CODE: ' .. _laserCode ..ctld.getPositionString(_enemyUnit) , 10,_jtacUnit:getCoalition()) + ctld.notifyCoalition(_jtacGroupName .. " lasing new target " .. _enemyUnit:getTypeName() .. '. CODE: ' .. _laserCode .. ctld.getPositionString(_enemyUnit), 10, _jtacUnit:getCoalition()) -- create smoke if _smoke == true then @@ -2783,7 +3152,6 @@ function ctld.laseUnit(_enemyUnit, _jtacUnit, _jtacGroupName, _laserCode) -- env.info(jtacUnit:getName() .. ' placed IR Pointer on '..enemyUnit:getName()) ctld.jtacIRPoints[_jtacGroupName] = _result.irPoint --store so we can remove after - end if _result.laserPoint then @@ -2797,16 +3165,14 @@ function ctld.laseUnit(_enemyUnit, _jtacUnit, _jtacGroupName, _laserCode) -- update lase - if _oldLase ~=nil then + if _oldLase ~= nil then _oldLase:setPoint(_enemyVectorUpdated) end if _oldIR ~= nil then _oldIR:setPoint(_enemyVectorUpdated) end - end - end -- get currently selected unit and check they're still in range @@ -2832,7 +3198,7 @@ function ctld.getCurrentUnit(_jtacUnit, _jtacGroupName) _tempPoint = _unit:getPoint() -- tempPosition = unit:getPosition() - _tempDist = ctld.getDistance(_unit:getPoint(), _jtacUnit:getPoint() ) + _tempDist = ctld.getDistance(_unit:getPoint(), _jtacUnit:getPoint()) if _tempDist < ctld.JTAC_maxDistance then -- calc visible @@ -2897,7 +3263,6 @@ function ctld.findNearestVisibleEnemy(_jtacUnit, _targetType) elseif _targetType == "troop" then _allowedTarget = ctld.isInfantry(_units[_x]) - end if _units[_x]:isActive() == true and _targeted == false and _allowedTarget == true then @@ -2918,7 +3283,6 @@ function ctld.findNearestVisibleEnemy(_jtacUnit, _targetType) _nearestDistance = _tempDist _nearestUnit = _units[_x] end - end end end @@ -2934,20 +3298,19 @@ function ctld.findNearestVisibleEnemy(_jtacUnit, _targetType) return _nearestUnit end + -- tests whether the unit is targeted by another JTAC function ctld.alreadyTarget(_jtacUnit, _enemyUnit) - for _ , _jtacTarget in pairs(ctld.jtacCurrentTargets) do + for _, _jtacTarget in pairs(ctld.jtacCurrentTargets) do if _jtacTarget.unitId == _enemyUnit:getID() then -- env.info("ALREADY TARGET") return true end - end return false - end @@ -2992,20 +3355,20 @@ function ctld.getJTACStatus(_side) --look up units _jtacUnit = Unit.getByName(_jtacDetails.name) - if _jtacUnit ~= nil and _jtacUnit:getLife() > 0 and _jtacUnit:isActive() == true and _jtacUnit:getCoalition() == _side then + if _jtacUnit ~= nil and _jtacUnit:getLife() > 0 and _jtacUnit:isActive() == true and _jtacUnit:getCoalition() == _side then local _enemyUnit = ctld.getCurrentUnit(_jtacUnit, _jtacGroupName) - local _laserCode = ctld.jtacLaserPointCodes[_jtacGroupName] + local _laserCode = ctld.jtacLaserPointCodes[_jtacGroupName] if _laserCode == nil then _laserCode = "UNKNOWN" end if _enemyUnit ~= nil and _enemyUnit:getLife() > 0 and _enemyUnit:isActive() == true then - _message = _message .. "" .. _jtacGroupName .. " targeting " .. _enemyUnit:getTypeName().. " CODE: ".. _laserCode .. ctld.getPositionString(_enemyUnit) .. "\n" + _message = _message .. "" .. _jtacGroupName .. " targeting " .. _enemyUnit:getTypeName() .. " CODE: " .. _laserCode .. ctld.getPositionString(_enemyUnit) .. "\n" else - _message = _message .. "" .. _jtacGroupName .. " searching for targets" .. ctld.getPositionString(_jtacUnit) .."\n" + _message = _message .. "" .. _jtacGroupName .. " searching for targets" .. ctld.getPositionString(_jtacUnit) .. "\n" end end end @@ -3015,7 +3378,7 @@ function ctld.getJTACStatus(_side) end - ctld.notifyCoalition(_message, 10,_side) + ctld.notifyCoalition(_message, 10, _side) end @@ -3025,9 +3388,9 @@ function ctld.isInfantry(_unit) local _typeName = _unit:getTypeName() --type coerce tostring - _typeName = string.lower(_typeName .."") + _typeName = string.lower(_typeName .. "") - local _soldierType = { "infantry","paratrooper","stinger","manpad","mortar"} + local _soldierType = { "infantry", "paratrooper", "stinger", "manpad", "mortar" } for _key, _value in pairs(_soldierType) do if string.match(_typeName, _value) then @@ -3036,7 +3399,6 @@ function ctld.isInfantry(_unit) end return false - end -- assume anything that isnt soldier is vehicle @@ -3047,7 +3409,6 @@ function ctld.isVehicle(_unit) end return true - end -- The entered value can range from 1111 - 1788, @@ -3068,13 +3429,13 @@ function ctld.generateLaserCode() while true do - _code = _code+1 + _code = _code + 1 - if not ctld.containsDigit(_code,8) - and not ctld.containsDigit(_code,9) - and not ctld.containsDigit(_code,0) then + if not ctld.containsDigit(_code, 8) + and not ctld.containsDigit(_code, 9) + and not ctld.containsDigit(_code, 0) then - table.insert(ctld.jtacGeneratedLaserCodes,_code) + table.insert(ctld.jtacGeneratedLaserCodes, _code) --env.info(_code.." Code") break @@ -3082,10 +3443,9 @@ function ctld.generateLaserCode() end _count = _count + 1 end - end -function ctld.containsDigit(_number,_numberToFind) +function ctld.containsDigit(_number, _numberToFind) local _thisNumber = _number local _thisDigit = 0 @@ -3101,9 +3461,164 @@ function ctld.containsDigit(_number,_numberToFind) end return false - end +-- 200 - 400 in 10KHz +-- 400 - 850 in 10 KHz +-- 850 - 1250 in 50 KHz +function ctld.generateVHFrequencies() + + --ignore list + --list of all frequencies in KHZ that could conflict with + -- 191 - 1290 KHz, beacon range + local _skipFrequencies = { + 745, --Astrahan + 381, + 384, + 300.50, + 312.5, + 1175, + 342, + 735, + 300.50, + 353.00, + 440, + 795, + 525, + 520, + 690, + 625, + 291.5, + 300.50, + 435, + 309.50, + 920, + 1065, + 274, + 312.50, + 580, + 602, + 297.50, + 750, + 485, + 950, + 214, + 1025, 730, 995, 455, 307, 670, 329, 395, 770, + 380, 705, 300.5, 507, 740, 1030, 515, + 330, 309.5, + 348, 462, 905, 352, 1210, 942, 435, + 324, + 320, 420, 311, 389, 396, 862, 680, 297.5, + 920, 662, + 866, 907, 309.5, 822, 515, 470, 342, 1182, 309.5, 720, 528, + 337, 312.5, 830, 740, 309.5, 641, 312, 722, 682, 1050, + 1116, 935, 1000, 430, 577 + } + + ctld.freeVHFFrequencies = {} + local _start = 200000 + + -- first range + while _start < 400000 do + + -- skip existing NDB frequencies + local _found = false + for _, value in pairs(_skipFrequencies) do + if value*1000 == _start then + _found = true + break + end + end + + + if _found == false then + table.insert(ctld.freeVHFFrequencies,_start) + end + + _start = _start + 10000 + end + + _start = 400000 + -- second range + while _start < 850000 do + + -- skip existing NDB frequencies + local _found = false + for _, value in pairs(_skipFrequencies) do + if value*1000 == _start then + _found = true + break + end + end + + if _found == false then + table.insert(ctld.freeVHFFrequencies,_start) + end + + + _start = _start + 10000 + end + + _start = 850000 + -- third range + while _start <= 1250000 do + + -- skip existing NDB frequencies + local _found = false + for _, value in pairs(_skipFrequencies) do + if value*1000 == _start then + _found = true + break + end + end + + if _found == false then + table.insert(ctld.freeVHFFrequencies,_start) + end + + _start = _start + 50000 + end +end + +-- 220 - 399 MHZ, increments of 0.5MHZ +function ctld.generateUHFrequencies() + + ctld.freeUHFFrequencies = {} + local _start = 220000000 + + while _start < 399000000 do + table.insert(ctld.freeUHFFrequencies, _start) + _start = _start + 500000 + end +end + + +-- 220 - 399 MHZ, increments of 0.5MHZ +-- -- first digit 3-7MHz +-- -- second digit 0-5KHz +-- -- third digit 0-9 +-- -- fourth digit 0 or 5 +-- -- times by 10000 +-- +--function ctld.generateFMFrequencies() +-- +-- ctld.freeFMFrequencies = {} +-- local _start = 220000000 +-- +-- while _start < 399000000 do +-- +-- _start = _start + 500000 +-- end +-- +-- for _first = 3,7 do +-- for _second = 0,5 do +-- for _third = 0,9 do +-- local _frequency = ((100 * _first) + (10 * _second) + _third) * 100000 --extra 0 because we didnt bother with 4th digit +-- table.insert(ctld.freeFMFrequencies, _frequency) +-- end +-- end +-- end +--end function ctld.getPositionString(_unit) @@ -3113,12 +3628,11 @@ function ctld.getPositionString(_unit) local _lat, _lon = coord.LOtoLL(_unit:getPosition().p) - local _latLngStr = mist.tostringLL(_lat, _lon,3,false) + local _latLngStr = mist.tostringLL(_lat, _lon, 3, false) - local _mgrsString = mist.tostringMGRS(coord.LLtoMGRS(coord.LOtoLL(_unit:getPosition().p)),5) - - return " @ " .. _latLngStr .. " - MGRS ".. _mgrsString + local _mgrsString = mist.tostringMGRS(coord.LLtoMGRS(coord.LOtoLL(_unit:getPosition().p)), 5) + return " @ " .. _latLngStr .. " - MGRS " .. _mgrsString end @@ -3147,11 +3661,17 @@ ctld.builtFOBS = {} -- stores fully built fobs ctld.completeHawkSystems = {} -- stores complete spawned groups from multiple crates -ctld.fobBeacons = {} -- stores radio beacons, refreshed every 60 seconds +ctld.fobBeacons = {} -- stores FOB radio beacon details, refreshed every 60 seconds ---ctld.radioFrequencyRED = 46000000 +ctld.deployedRadioBeacons = {} -- stores details of deployed radio beacons +ctld.usedUHFFrequencies = {} +ctld.usedVHFFrequencies = {} +--ctld.usedFMFrequencies = {} +ctld.freeUHFFrequencies = {} +ctld.freeVHFFrequencies = {} +--ctld.freeFMFrequencies = {} --used to lookup what the crate will contain ctld.crateLookupTable = {} @@ -3228,9 +3748,9 @@ end timer.scheduleFunction(ctld.refreshSmoke, nil, timer.getTime() + 5) timer.scheduleFunction(ctld.addF10MenuOptions, nil, timer.getTime() + 5) -timer.scheduleFunction(ctld.checkAIStatus,nil,timer.getTime() + 5) -timer.scheduleFunction(ctld.checkTransportStatus,nil,timer.getTime()+5) -timer.scheduleFunction(ctld.refreshRadioBeacons,nil,timer.getTime()+5) +timer.scheduleFunction(ctld.checkAIStatus, nil, timer.getTime() + 5) +timer.scheduleFunction(ctld.checkTransportStatus, nil, timer.getTime() + 5) +timer.scheduleFunction(ctld.refreshRadioBeacons, nil, timer.getTime() + 5) --event handler for deaths @@ -3242,6 +3762,21 @@ env.info("Generating Laser Codes") ctld.generateLaserCode() env.info("Generated Laser Codes") + + +env.info("Generating UHF Frequencies") +ctld.generateUHFrequencies() +env.info("Generated UHF Frequencies") + +env.info("Generating VHF Frequencies") +ctld.generateVHFrequencies() +env.info("Generated VHF Frequencies") + + +--env.info("Generating FM Frequencies") +--ctld.generateFMFrequencies() +--env.info("Generated FM Frequencies") + env.info("CTLD READY") --DEBUG FUNCTION -- for key, value in pairs(getmetatable(_spawnedCrate)) do diff --git a/beaconsilent.ogg b/beaconsilent.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a1f1e7c2fd70833b0a7cba8c2d6350b44b74620b GIT binary patch literal 9400 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

0ZFOSEK8qg8lJ`AIeC?e&7;jmoa`BA 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 delta 36018 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≦94!Z&;%#`+jx7p>1(_06*KYCY!tw4*WzOi)B;` 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 diff --git a/test-mission.miz b/test-mission.miz index dd04cb8aeeb8c2c147390c9b666cc92675b65449..473b4a438370e5c75ccd593ba8d2f055ef4d5e24 100644 GIT binary patch delta 43050 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 PkJ|IG{A~{5WAuLjJ99Jj delta 36943 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 S00#gE0D}Pl0GqoA000304)Fm1