From 574217d93157c90e5285f125f6bb8b40d51ea762 Mon Sep 17 00:00:00 2001 From: FullGas1 <51051389+FullGas1@users.noreply.github.com> Date: Sun, 6 Apr 2025 17:02:08 +0200 Subject: [PATCH 01/10] commit --- CTLD.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CTLD.lua b/CTLD.lua index 62af979..1035a7f 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -2583,7 +2583,7 @@ function ctld.spawnCrate(_arguments, bypassCrateWaitTime) if ctld.unitDynamicCargoCapable(_heli) then _model_type = "dynamic" - _point = ctld.getPointAt6Oclock(_heli, 15) + _point = ctld.getPointAt6Oclock(_heli, 30) _position = "6" end @@ -4950,7 +4950,10 @@ function ctld.unpackMultiCrate(_heli, _nearestCrate, _nearbyCrates) --- check crate count if #_nearbyMultiCrates == _nearestCrate.details.cratesRequired then - local _point = _nearestCrate.crateUnit:getPoint() + --local _point = _nearestCrate.crateUnit:getPoint() + local _point = _heli:getPoint() + local secureDistanceFromUnit = ctld.getSecureDistanceFromUnit(_heli:getName()) + _point.x = _point.x + secureDistanceFromUnit local _crateHdg = mist.getHeading(_nearestCrate.crateUnit, true) -- destroy crates From 540a31675488c50bcb3c722fcae2140f37fe2b55 Mon Sep 17 00:00:00 2001 From: FullGas1 <51051389+FullGas1@users.noreply.github.com> Date: Sun, 6 Apr 2025 17:12:44 +0200 Subject: [PATCH 02/10] commit --- CTLD.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CTLD.lua b/CTLD.lua index 1035a7f..5b0733a 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -2077,7 +2077,8 @@ function ctld.repackVehicle(_params, t) -- scan rrs table 'repackRequestsStack' local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit local _point = ctld.getPointAt6Oclock(PlayerTransportUnit, 15) if ctld.unitDynamicCargoCapable(PlayerTransportUnit) == false then - ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, nil) + --ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, nil) + ctld.spawnCrateStatic(refCountry, _unitId, _point, _name, crateWeight, playerCoa, playerHeading, nil) else ctld.spawnCrateStatic(refCountry, _unitId, _point, _name, crateWeight, playerCoa, playerHeading, "dynamic") end From bbde4ae62bd41ed692af23059a7a609c35aee61c Mon Sep 17 00:00:00 2001 From: FullGas1 <51051389+FullGas1@users.noreply.github.com> Date: Sun, 6 Apr 2025 17:16:28 +0200 Subject: [PATCH 03/10] comiit --- CTLD.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CTLD.lua b/CTLD.lua index 5b0733a..7b38a83 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -2078,7 +2078,7 @@ function ctld.repackVehicle(_params, t) -- scan rrs table 'repackRequestsStack' local _point = ctld.getPointAt6Oclock(PlayerTransportUnit, 15) if ctld.unitDynamicCargoCapable(PlayerTransportUnit) == false then --ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, nil) - ctld.spawnCrateStatic(refCountry, _unitId, _point, _name, crateWeight, playerCoa, playerHeading, nil) + ctld.spawnCrateStatic(refCountry, _unitId, _point, _name, crateWeight, playerCoa, playerHeading-math.pi, nil) else ctld.spawnCrateStatic(refCountry, _unitId, _point, _name, crateWeight, playerCoa, playerHeading, "dynamic") end From b3470250e4bcafca3e8793e4078072c0a19ee6e7 Mon Sep 17 00:00:00 2001 From: FullGas1 <51051389+FullGas1@users.noreply.github.com> Date: Sun, 6 Apr 2025 17:28:54 +0200 Subject: [PATCH 04/10] commit --- CTLD.lua | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CTLD.lua b/CTLD.lua index 7b38a83..05445cd 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -808,7 +808,7 @@ ctld.logisticUnits = { ctld.vehicleTransportEnabled = { "76MD", -- the il-76 mod doesnt use a normal - sign so il-76md wont match... !!!! GRR "Hercules", - "UH-1H", + --"UH-1H", "Mi-8MT", --"CH-47Fbl1", } @@ -819,6 +819,7 @@ ctld.vehicleTransportEnabled = { -- We will also use this to make modifications to the menu and other checks and messages ctld.dynamicCargoUnits = { "CH-47Fbl1", + "UH-1H", } -- ************** Maximum Units SETUP for UNITS ****************** @@ -2073,14 +2074,14 @@ function ctld.repackVehicle(_params, t) -- scan rrs table 'repackRequestsStack' -- see to spawn the crate at random position heading the transport unnit local _unitId = ctld.getNextUnitId() local _name = string.format("%s_%i", v.desc, _unitId) - local secureDistance = ctld.getSecureDistanceFromUnit(playerUnitName) or 7 + local secureDistance = ctld.getSecureDistanceFromUnit(playerUnitName) or 10 local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit - local _point = ctld.getPointAt6Oclock(PlayerTransportUnit, 15) if ctld.unitDynamicCargoCapable(PlayerTransportUnit) == false then - --ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, nil) - ctld.spawnCrateStatic(refCountry, _unitId, _point, _name, crateWeight, playerCoa, playerHeading-math.pi, nil) + local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit + ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, nil) else - ctld.spawnCrateStatic(refCountry, _unitId, _point, _name, crateWeight, playerCoa, playerHeading, "dynamic") + local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading+math.pi) -- 7 meters from the transport unit + ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, "dynamic") end end From 82a330e61ad02ec335f8d17e683c6a94f3cb6581 Mon Sep 17 00:00:00 2001 From: FullGas1 <51051389+FullGas1@users.noreply.github.com> Date: Sun, 6 Apr 2025 19:04:35 +0200 Subject: [PATCH 05/10] commit --- CTLD.lua | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/CTLD.lua b/CTLD.lua index 05445cd..447aa3e 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -1925,27 +1925,18 @@ function ctld.spawnCrateAtPoint(_side, _weight, _point, _hdg) ctld.spawnCrateStatic(_country, _unitId, _point, _name, _crateType.weight, _side, _hdg) end --- *************************************************************** -function ctld.getUnitDimensions(_unitName) -- return unit dimùension (widht,longer,hight) - if Unit.getByName(_unitName) then - local dimensions = {} - local unitBoundingBox = Unit.getByName(_unitName):getDesc().box - dimensions.widht = unitBoundingBox.max.x - unitBoundingBox.min.x - dimensions.longer = unitBoundingBox.max.z - unitBoundingBox.min.z - dimensions.hight = unitBoundingBox.max.y - unitBoundingBox.min.y - return dimensions - end -end - -- *************************************************************** function ctld.getSecureDistanceFromUnit(_unitName) -- return a distance between the center of unitName, to be sure not touch the unitName + local rotorDiameter = 19 -- meters -- õk for UH & CH47 if Unit.getByName(_unitName) then - local dim = ctld.getUnitDimensions(_unitName) - - -- distanceFromCenterToCorner = 1/2√(l² + w² + h²) - local squaresSum = dim.longer^2 + dim.widht^2 + dim.hight^2 -- sum of squares - local distanceFromCenterToCorner = math.sqrt(squaresSum) / 2 -- Calculating distance (half square root) - return distanceFromCenterToCorner + local unitUserBox = Unit.getByName(_unitName):getDesc().box + local SecureDistanceFromUnit = 0 + if math.abs(unitUserBox.max.x) >= math.abs(unitUserBox.min.x) then + SecureDistanceFromUnit = math.abs(unitUserBox.max.x) + rotorDiameter + else + SecureDistanceFromUnit = math.abs(unitUserBox.min.x) + rotorDiameter + end + return SecureDistanceFromUnit end return nil end @@ -2080,7 +2071,7 @@ function ctld.repackVehicle(_params, t) -- scan rrs table 'repackRequestsStack' local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, nil) else - local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading+math.pi) -- 7 meters from the transport unit + local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, "dynamic") end end From 026099bd12bfb3f0ab16db0ca7dbcb22594edf95 Mon Sep 17 00:00:00 2001 From: FullGas1 <51051389+FullGas1@users.noreply.github.com> Date: Sun, 6 Apr 2025 19:19:45 +0200 Subject: [PATCH 06/10] commit --- CTLD.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CTLD.lua b/CTLD.lua index 447aa3e..78b7af4 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -2060,19 +2060,19 @@ function ctld.repackVehicle(_params, t) -- scan rrs table 'repackRequestsStack' local playerHeading = mist.getHeading(PlayerTransportUnit) local playerPoint = PlayerTransportUnit:getPoint() local offset = 5 - local randomHeading = ctld.RandomReal(playerHeading - math.pi/4, playerHeading + math.pi/4) for i = 1, v.cratesRequired or 1 do -- see to spawn the crate at random position heading the transport unnit local _unitId = ctld.getNextUnitId() local _name = string.format("%s_%i", v.desc, _unitId) local secureDistance = ctld.getSecureDistanceFromUnit(playerUnitName) or 10 - local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit if ctld.unitDynamicCargoCapable(PlayerTransportUnit) == false then + local randomHeading = ctld.RandomReal(playerHeading - math.pi/4, playerHeading + math.pi/4) local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, nil) - else + else + local randomHeading = ctld.RandomReal(playerHeading + math.pi - math.pi/4, playerHeading + math.pi + math.pi/4) local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit - ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, "dynamic") + ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading+math.pi, "dynamic") end end @@ -8113,7 +8113,7 @@ function ctld.initialize() timer.scheduleFunction(ctld.checkHoverStatus, nil, timer.getTime() + 1) end if ctld.enableRepackingVehicles == true then - timer.scheduleFunction(ctld.autoUpdateRepackMenu, nil, timer.getTime() + 5) + timer.scheduleFunction(ctld.autoUpdateRepackMenu, nil, timer.getTime() + 3) timer.scheduleFunction(ctld.repackVehicle, nil, timer.getTime() + 1) end end, nil, timer.getTime() + 1) From 7db8e2d7729186fd1cbab5b9758987846b753e58 Mon Sep 17 00:00:00 2001 From: FullGas1 <51051389+FullGas1@users.noreply.github.com> Date: Sun, 6 Apr 2025 19:19:57 +0200 Subject: [PATCH 07/10] commit --- CTLD.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/CTLD.lua b/CTLD.lua index 78b7af4..773e379 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -2060,19 +2060,22 @@ function ctld.repackVehicle(_params, t) -- scan rrs table 'repackRequestsStack' local playerHeading = mist.getHeading(PlayerTransportUnit) local playerPoint = PlayerTransportUnit:getPoint() local offset = 5 + if ctld.unitDynamicCargoCapable(PlayerTransportUnit) == false then + local randomHeading = ctld.RandomReal(playerHeading - math.pi/4, playerHeading + math.pi/4) + else + local randomHeading = ctld.RandomReal(playerHeading + math.pi - math.pi/4, playerHeading + math.pi + math.pi/4) + end for i = 1, v.cratesRequired or 1 do -- see to spawn the crate at random position heading the transport unnit local _unitId = ctld.getNextUnitId() local _name = string.format("%s_%i", v.desc, _unitId) local secureDistance = ctld.getSecureDistanceFromUnit(playerUnitName) or 10 if ctld.unitDynamicCargoCapable(PlayerTransportUnit) == false then - local randomHeading = ctld.RandomReal(playerHeading - math.pi/4, playerHeading + math.pi/4) local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, nil) else - local randomHeading = ctld.RandomReal(playerHeading + math.pi - math.pi/4, playerHeading + math.pi + math.pi/4) local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit - ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading+math.pi, "dynamic") + ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, "dynamic") end end From 99f2c7aec0fc0145cb6a1fd9238c484cd6f1c104 Mon Sep 17 00:00:00 2001 From: FullGas1 <51051389+FullGas1@users.noreply.github.com> Date: Sun, 6 Apr 2025 19:26:06 +0200 Subject: [PATCH 08/10] commit --- CTLD.lua | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/CTLD.lua b/CTLD.lua index 773e379..c333d2e 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -2060,10 +2060,9 @@ function ctld.repackVehicle(_params, t) -- scan rrs table 'repackRequestsStack' local playerHeading = mist.getHeading(PlayerTransportUnit) local playerPoint = PlayerTransportUnit:getPoint() local offset = 5 - if ctld.unitDynamicCargoCapable(PlayerTransportUnit) == false then - local randomHeading = ctld.RandomReal(playerHeading - math.pi/4, playerHeading + math.pi/4) - else - local randomHeading = ctld.RandomReal(playerHeading + math.pi - math.pi/4, playerHeading + math.pi + math.pi/4) + local randomHeading = ctld.RandomReal(playerHeading - math.pi/4, playerHeading + math.pi/4) + if ctld.unitDynamicCargoCapable(PlayerTransportUnit) ~= false then + randomHeading = ctld.RandomReal(playerHeading + math.pi - math.pi/4, playerHeading + math.pi + math.pi/4) end for i = 1, v.cratesRequired or 1 do -- see to spawn the crate at random position heading the transport unnit From a468faefecb574927f6d1a311b8d9a973c7aa92c Mon Sep 17 00:00:00 2001 From: FullGas1 <51051389+FullGas1@users.noreply.github.com> Date: Sun, 6 Apr 2025 21:53:15 +0200 Subject: [PATCH 09/10] commit --- CTLD.lua | 45 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/CTLD.lua b/CTLD.lua index c333d2e..d3f01e8 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -2069,11 +2069,11 @@ function ctld.repackVehicle(_params, t) -- scan rrs table 'repackRequestsStack' local _unitId = ctld.getNextUnitId() local _name = string.format("%s_%i", v.desc, _unitId) local secureDistance = ctld.getSecureDistanceFromUnit(playerUnitName) or 10 + local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit + if ctld.unitDynamicCargoCapable(PlayerTransportUnit) == false then - local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, nil) else - local relativePoint = ctld.getRelativePoint(playerPoint, secureDistance + (i * offset), randomHeading) -- 7 meters from the transport unit ctld.spawnCrateStatic(refCountry, _unitId, relativePoint, _name, crateWeight, playerCoa, playerHeading, "dynamic") end end @@ -2616,18 +2616,42 @@ function ctld.getPointAt6Oclock(_unit, _offset) return ctld.getPointAtDirection(_unit, _offset, math.pi) end +function ctld.getPointInFrontSector(_unit, _offset) + if _unit then + local playerHeading = mist.getHeading(_unit) + local randomHeading = ctld.RandomReal(playerHeading - math.pi/4, playerHeading + math.pi/4) + if _offset == nil then + _offset = 30 + end + return ctld.getPointAtDirection(_unit, _offset, randomHeading) + end +end + +function ctld.getPointInRearSector(_unit, _offset) + if _unit then + local playerHeading = mist.getHeading(_unit) + local randomHeading = ctld.RandomReal(playerHeading + math.pi - math.pi/4, playerHeading + math.pi + math.pi/4) + if _offset == nil then + _offset = 30 + end + return ctld.getPointAtDirection(_unit, _offset, randomHeading) + end +end + function ctld.getPointAtDirection(_unit, _offset, _directionInRadian) + if _offset == nil then + _offset = ctld.getSecureDistanceFromUnit(_unit:getName()) + end --ctld.logTrace("_offset = %s", ctld.p(_offset)) - local _SecureDistanceFromUnit = ctld.getSecureDistanceFromUnit(_unit:getName()) - local _randomOffsetX = math.random(_SecureDistanceFromUnit, ctld.randomCrateSpacing * 2) - ctld.randomCrateSpacing + local _randomOffsetX = math.random(0, ctld.randomCrateSpacing * 2) - ctld.randomCrateSpacing local _randomOffsetZ = math.random(0, ctld.randomCrateSpacing) --ctld.logTrace("_randomOffsetX = %s", ctld.p(_randomOffsetX)) --ctld.logTrace("_randomOffsetZ = %s", ctld.p(_randomOffsetZ)) local _position = _unit:getPosition() - local _angle = math.atan(_position.x.z, _position.x.x) + _directionInRadian - local _xOffset = math.cos(_angle) * (_offset + _randomOffsetX) - local _zOffset = math.sin(_angle) * (_offset + _randomOffsetZ) - local _point = _unit:getPoint() + local _angle = math.atan(_position.x.z, _position.x.x) + _directionInRadian + local _xOffset = math.cos(_angle) * (_offset + _randomOffsetX) + local _zOffset = math.sin(_angle) * (_offset + _randomOffsetZ) + local _point = _unit:getPoint() return { x = _point.x + _xOffset, z = _point.z + _zOffset, y = _point.y } end @@ -4948,6 +4972,7 @@ function ctld.unpackMultiCrate(_heli, _nearestCrate, _nearbyCrates) --local _point = _nearestCrate.crateUnit:getPoint() local _point = _heli:getPoint() local secureDistanceFromUnit = ctld.getSecureDistanceFromUnit(_heli:getName()) + _point.x = _point.x + secureDistanceFromUnit local _crateHdg = mist.getHeading(_nearestCrate.crateUnit, true) @@ -6001,14 +6026,14 @@ end --****************************************************************************************************** function ctld.buildPaginatedMenu(_menuEntries) - --ctld.logTrace("FG_ _menuEntries = [%s]", ctld.p(_menuEntries)) + ctld.logTrace("FG_ _menuEntries = [%s]", ctld.p(_menuEntries)) local nextSubMenuPath = "" local itemNbSubmenu = 0 for i, menu in ipairs(_menuEntries) do --ctld.logTrace("FG_ boucle[%s].menu = %s", i, ctld.p(menu)) if nextSubMenuPath ~= "" and menu.subMenuPath ~= nextSubMenuPath then --ctld.logTrace("FG_ boucle[%s].nextSubMenuPath = %s", i, ctld.p(nextSubMenuPath)) - menu.subMenuPath = nextSubMenuPath + menu.subMenuPath = mist.utils.deepCopy(nextSubMenuPath) end -- add the submenu item itemNbSubmenu = itemNbSubmenu + 1 From f71e7f3213740907ba80de9499043e910e8ccadd Mon Sep 17 00:00:00 2001 From: FullGas1 <51051389+FullGas1@users.noreply.github.com> Date: Sun, 6 Apr 2025 22:31:37 +0200 Subject: [PATCH 10/10] commit --- CTLD.lua | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/CTLD.lua b/CTLD.lua index d3f01e8..07a5b6a 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -808,7 +808,7 @@ ctld.logisticUnits = { ctld.vehicleTransportEnabled = { "76MD", -- the il-76 mod doesnt use a normal - sign so il-76md wont match... !!!! GRR "Hercules", - --"UH-1H", + "UH-1H", "Mi-8MT", --"CH-47Fbl1", } @@ -819,7 +819,7 @@ ctld.vehicleTransportEnabled = { -- We will also use this to make modifications to the menu and other checks and messages ctld.dynamicCargoUnits = { "CH-47Fbl1", - "UH-1H", + --"UH-1H", } -- ************** Maximum Units SETUP for UNITS ****************** @@ -2659,7 +2659,7 @@ function ctld.getRelativePoint(_refPointXZTable, _distance, _angle_radians) -- local relativePoint = {} relativePoint.x = _refPointXZTable.x + _distance * math.cos(_angle_radians) if _refPointXZTable.z == nil then - relativePoint.y = _refPointXZTable.y + _distance * math.sin(_angle_radians) + relativePoint.y = _refPointXZTable.y + _distance * math.sin(_angle_radians) else relativePoint.z = _refPointXZTable.z + _distance * math.sin(_angle_radians) end @@ -3954,7 +3954,11 @@ function ctld.unpackCrates(_arguments) else ctld.logTrace("single crate = %s", ctld.p(_arguments)) -- single crate - local _cratePoint = _crate.crateUnit:getPoint() + --local _cratePoint = _crate.crateUnit:getPoint() + local _point = ctld.getPointInFrontSector(_heli, ctld.getSecureDistanceFromUnit(_heli:getName())) + if ctld.unitDynamicCargoCapable(_heli) == true then + _point = ctld.getPointInRearSector(_heli, ctld.getSecureDistanceFromUnit(_heli:getName())) + end local _crateName = _crate.crateUnit:getName() local _crateHdg = mist.getHeading(_crate.crateUnit, true) @@ -3963,7 +3967,7 @@ function ctld.unpackCrates(_arguments) _crate.crateUnit:destroy() -- end ctld.logTrace("_crate = %s", ctld.p(_crate)) - local _spawnedGroups = ctld.spawnCrateGroup(_heli, { _cratePoint }, { _crate.details.unit }, { _crateHdg }) + local _spawnedGroups = ctld.spawnCrateGroup(_heli, { _point }, { _crate.details.unit }, { _crateHdg }) ctld.logTrace("_spawnedGroups = %s", ctld.p(_spawnedGroups)) if _heli:getCoalition() == 1 then @@ -4959,7 +4963,6 @@ function ctld.unpackMultiCrate(_heli, _nearestCrate, _nearbyCrates) if _nearbyCrate.dist < 300 then if _nearbyCrate.details.unit == _nearestCrate.details.unit then table.insert(_nearbyMultiCrates, _nearbyCrate) - if #_nearbyMultiCrates == _nearestCrate.details.cratesRequired then break end @@ -4970,10 +4973,14 @@ function ctld.unpackMultiCrate(_heli, _nearestCrate, _nearbyCrates) --- check crate count if #_nearbyMultiCrates == _nearestCrate.details.cratesRequired then --local _point = _nearestCrate.crateUnit:getPoint() - local _point = _heli:getPoint() - local secureDistanceFromUnit = ctld.getSecureDistanceFromUnit(_heli:getName()) - - _point.x = _point.x + secureDistanceFromUnit + --local _point = _heli:getPoint() + --local secureDistanceFromUnit = ctld.getSecureDistanceFromUnit(_heli:getName()) + --_point.x = _point.x + secureDistanceFromUnit + local _point = ctld.getPointInFrontSector(_heli, ctld.getSecureDistanceFromUnit(_heli:getName())) + if ctld.unitDynamicCargoCapable(_heli) == true then + _point = ctld.getPointInRearSector(_heli, ctld.getSecureDistanceFromUnit(_heli:getName())) + end + local _crateHdg = mist.getHeading(_nearestCrate.crateUnit, true) -- destroy crates @@ -6026,7 +6033,7 @@ end --****************************************************************************************************** function ctld.buildPaginatedMenu(_menuEntries) - ctld.logTrace("FG_ _menuEntries = [%s]", ctld.p(_menuEntries)) + --ctld.logTrace("FG_ _menuEntries = [%s]", ctld.p(_menuEntries)) local nextSubMenuPath = "" local itemNbSubmenu = 0 for i, menu in ipairs(_menuEntries) do