mirror of
https://github.com/ciribob/DCS-CTLD.git
synced 2025-08-15 06:17:22 +00:00
Added minimum distance from friendly logistics option
This commit is contained in:
49
CTLD.lua
49
CTLD.lua
@@ -52,6 +52,8 @@ ctld.maximumDistanceLogistic = 200 -- max distance from vehicle to logistics to
|
|||||||
ctld.maximumSearchDistance = 4000 -- max distance for troops to search for enemy
|
ctld.maximumSearchDistance = 4000 -- max distance for troops to search for enemy
|
||||||
ctld.maximumMoveDistance = 2000 -- max distance for troops to move from drop point if no enemy is nearby
|
ctld.maximumMoveDistance = 2000 -- max distance for troops to move from drop point if no enemy is nearby
|
||||||
|
|
||||||
|
ctld.minimumDeployDistance = 1000 -- minimum distance from a friendly pickup zone where you can deploy a crate
|
||||||
|
|
||||||
ctld.numberOfTroops = 10 -- default number of troops to load on a transport heli or C-130
|
ctld.numberOfTroops = 10 -- default number of troops to load on a transport heli or C-130
|
||||||
-- also works as maximum size of group that'll fit into a helicopter unless overridden
|
-- also works as maximum size of group that'll fit into a helicopter unless overridden
|
||||||
ctld.enableFastRopeInsertion = true -- allows you to drop troops by fast rope
|
ctld.enableFastRopeInsertion = true -- allows you to drop troops by fast rope
|
||||||
@@ -2888,6 +2890,16 @@ function ctld.unpackCrates(_arguments)
|
|||||||
local _crates = ctld.getCratesAndDistance(_heli)
|
local _crates = ctld.getCratesAndDistance(_heli)
|
||||||
local _crate = ctld.getClosestCrate(_heli, _crates)
|
local _crate = ctld.getClosestCrate(_heli, _crates)
|
||||||
|
|
||||||
|
|
||||||
|
if ctld.inLogisticsZone(_heli) == true or ctld.farEnoughFromLogisticZone(_heli) == true then
|
||||||
|
|
||||||
|
ctld.displayMessageToGroup(_heli, "You can't unpack that here! Take it to where it's needed!", 20)
|
||||||
|
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if _crate ~= nil and _crate.dist < 750
|
if _crate ~= nil and _crate.dist < 750
|
||||||
and (_crate.details.unit == "FOB" or _crate.details.unit == "FOB-SMALL") then
|
and (_crate.details.unit == "FOB" or _crate.details.unit == "FOB-SMALL") then
|
||||||
|
|
||||||
@@ -2897,13 +2909,6 @@ function ctld.unpackCrates(_arguments)
|
|||||||
|
|
||||||
elseif _crate ~= nil and _crate.dist < 200 then
|
elseif _crate ~= nil and _crate.dist < 200 then
|
||||||
|
|
||||||
if ctld.inLogisticsZone(_heli) == true then
|
|
||||||
|
|
||||||
ctld.displayMessageToGroup(_heli, "You can't unpack that here! Take it to where it's needed!", 20)
|
|
||||||
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if ctld.forceCrateToBeMoved and ctld.crateMove[_crate.crateUnit:getName()] then
|
if ctld.forceCrateToBeMoved and ctld.crateMove[_crate.crateUnit:getName()] then
|
||||||
ctld.displayMessageToGroup(_heli,"Sorry you must move this crate before you unpack it!", 20)
|
ctld.displayMessageToGroup(_heli,"Sorry you must move this crate before you unpack it!", 20)
|
||||||
return
|
return
|
||||||
@@ -4385,6 +4390,36 @@ function ctld.inLogisticsZone(_heli)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- are far enough from a friendly logistics zone
|
||||||
|
function ctld.farEnoughFromLogisticZone(_heli)
|
||||||
|
|
||||||
|
if ctld.inAir(_heli) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local _heliPoint = _heli:getPoint()
|
||||||
|
|
||||||
|
local _farEnough = true
|
||||||
|
|
||||||
|
for _, _name in pairs(ctld.logisticUnits) do
|
||||||
|
|
||||||
|
local _logistic = StaticObject.getByName(_name)
|
||||||
|
|
||||||
|
if _logistic ~= nil and _logistic:getCoalition() == _heli:getCoalition() then
|
||||||
|
|
||||||
|
--get distance
|
||||||
|
local _dist = ctld.getDistance(_heliPoint, _logistic:getPoint())
|
||||||
|
|
||||||
|
if _dist <= ctld.minimumDeployDistance then
|
||||||
|
_farEnough = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return _farEnough
|
||||||
|
end
|
||||||
|
|
||||||
function ctld.refreshSmoke()
|
function ctld.refreshSmoke()
|
||||||
|
|
||||||
if ctld.disableAllSmoke == true then
|
if ctld.disableAllSmoke == true then
|
||||||
|
|||||||
Reference in New Issue
Block a user