Set Sling Load to FALSE by default

Moved Smoke commands back under CTLD
Enabled Cargo drop and pickup from a building of a roof
Enabled troop drop from a roof
Changed SlingLoad to FALSE by default. This means Simulated Sling load
is default!
This commit is contained in:
Ciaran Fisher
2015-06-28 17:39:45 +01:00
parent 71147fbaf8
commit a1be10fa39
4 changed files with 106 additions and 53 deletions
+71 -44
View File
@@ -10,8 +10,12 @@
See https://github.com/ciribob/DCS-CTLD for a user manual and the latest version See https://github.com/ciribob/DCS-CTLD for a user manual and the latest version
Version: 1.23 - 27/06/2015 - Fast Rope for troops Version: 1.25 - 28/06/2015 - Sling Load is now DISABLED by default
- Fast Rope for troops
- Able to Drop Crate and troops while on a building
- You can now pickup troops that are on a pickup zone instead of loading troops, once they're gone you can load as normal - You can now pickup troops that are on a pickup zone instead of loading troops, once they're gone you can load as normal
- Bug fix for hawk rearm crate not disappearing
- Bug fix for smoke not being under the CTLD menu when slingload is disabled
@@ -22,8 +26,6 @@
- Report status every 5 minutes or when targets first appear - Report status every 5 minutes or when targets first appear
- Report vague status like 5 armoured vehicles, soldiers and support trucks ?? - Report vague status like 5 armoured vehicles, soldiers and support trucks ??
TODO Make hawk only engage closer targets?
]] ]]
ctld = {} -- DONT REMOVE! ctld = {} -- DONT REMOVE!
@@ -34,7 +36,7 @@ ctld = {} -- DONT REMOVE!
ctld.disableAllSmoke = false -- if true, all smoke is diabled at pickup and drop off zones regardless of settings below. Leave false to respect settings below ctld.disableAllSmoke = false -- if true, all smoke is diabled at pickup and drop off zones regardless of settings below. Leave false to respect settings below
ctld.enableCrates = true -- if false, Helis will not be able to spawn or unpack crates so will be normal CTTS ctld.enableCrates = true -- if false, Helis will not be able to spawn or unpack crates so will be normal CTTS
ctld.slingLoad = true -- if false, crates can be used WITHOUT slingloading, by hovering above the crate, simulating slingloading but not the weight... ctld.slingLoad = false -- if false, crates can be used WITHOUT slingloading, by hovering above the crate, simulating slingloading but not the weight...
-- There are some bug with Sling-loading that can cause crashes, if these occur set slingLoad to false -- There are some bug with Sling-loading that can cause crashes, if these occur set slingLoad to false
-- to use the other method. -- to use the other method.
@@ -412,7 +414,7 @@ function ctld.cratesInZone(_zone, _flagNumber)
--in air seems buggy with crates so if in air is true, get the height above ground and the speed magnitude --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 if _crate ~= nil and _crate:getLife() > 0
and (_crate:inAir() == false or (ctld.heightDiff(_crate) < 10.0 and mist.vec.mag(_crate:getVelocity()) < 1.0)) then and (ctld.inAir(_crate) == false) then
local _dist = ctld.getDistance(_crate:getPoint(), _zonePos) local _dist = ctld.getDistance(_crate:getPoint(), _zonePos)
@@ -742,7 +744,7 @@ function ctld.spawnCrate(_arguments)
local _crateType = ctld.crateLookupTable[tostring(_args[2])] local _crateType = ctld.crateLookupTable[tostring(_args[2])]
local _heli = ctld.getTransportUnit(_args[1]) local _heli = ctld.getTransportUnit(_args[1])
if _crateType ~= nil and _heli ~= nil and _heli:inAir() == false then if _crateType ~= nil and _heli ~= nil and ctld.inAir(_heli) == false then
if ctld.inLogisticsZone(_heli) == false then if ctld.inLogisticsZone(_heli) == false then
@@ -887,7 +889,7 @@ function ctld.safeToFastRope(_heli)
end end
--landed or speed is less than 8 km/h and height is less than fast rope height --landed or speed is less than 8 km/h and height is less than fast rope height
if (_heli:inAir() == false or (ctld.heightDiff(_heli) <= ctld.fastRopeMaximumHeight + 3.0 and mist.vec.mag(_heli:getVelocity()) < 2.2)) then if (ctld.inAir(_heli) == false or (ctld.heightDiff(_heli) <= ctld.fastRopeMaximumHeight + 3.0 and mist.vec.mag(_heli:getVelocity()) < 2.2)) then
return true return true
end end
@@ -901,6 +903,19 @@ function ctld.metersToFeet(_meters)
end end
function ctld.inAir(_heli)
if _heli:inAir() == false then
return false
end
-- less than 5 cm/s a second so landed
if mist.vec.mag(_heli:getVelocity()) < 0.05 then
return false
end
return true
end
function ctld.deployTroops(_heli, _troops) function ctld.deployTroops(_heli, _troops)
local _onboard = ctld.inTransitTroops[_heli:getName()] local _onboard = ctld.inTransitTroops[_heli:getName()]
@@ -908,7 +923,7 @@ function ctld.deployTroops(_heli, _troops)
-- deloy troops -- deloy troops
if _troops then if _troops then
if _onboard.troops ~= nil and #_onboard.troops.units > 0 then if _onboard.troops ~= nil and #_onboard.troops.units > 0 then
if _heli:inAir() == false or ctld.safeToFastRope(_heli) then if ctld.inAir(_heli) == false or ctld.safeToFastRope(_heli) then
-- check we're not in extract zone -- check we're not in extract zone
local _extractZone = ctld.inExtractZone(_heli) local _extractZone = ctld.inExtractZone(_heli)
@@ -927,7 +942,7 @@ function ctld.deployTroops(_heli, _troops)
ctld.inTransitTroops[_heli:getName()].troops = nil ctld.inTransitTroops[_heli:getName()].troops = nil
if _heli:inAir() then if ctld.inAir(_heli) then
trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " troops fast-ropped from " .. _heli:getTypeName() .. " into combat", 10) trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " troops fast-ropped from " .. _heli:getTypeName() .. " into combat", 10)
else else
trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " troops dropped from " .. _heli:getTypeName() .. " into combat", 10) trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " troops dropped from " .. _heli:getTypeName() .. " into combat", 10)
@@ -943,7 +958,7 @@ function ctld.deployTroops(_heli, _troops)
ctld.inTransitTroops[_heli:getName()].troops = nil ctld.inTransitTroops[_heli:getName()].troops = nil
if _heli:inAir() then if ctld.inAir(_heli) then
trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " troops fast-ropped from " .. _heli:getTypeName() .. " into " .. _extractZone.name, 10) trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " troops fast-ropped from " .. _heli:getTypeName() .. " into " .. _extractZone.name, 10)
else else
trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " troops dropped from " .. _heli:getTypeName() .. " into " .. _extractZone.name, 10) trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " troops dropped from " .. _heli:getTypeName() .. " into " .. _extractZone.name, 10)
@@ -956,7 +971,7 @@ function ctld.deployTroops(_heli, _troops)
end end
else else
if _heli:inAir() == false then if ctld.inAir(_heli) == false then
if _onboard.vehicles ~= nil and #_onboard.vehicles.units > 0 then if _onboard.vehicles ~= nil and #_onboard.vehicles.units > 0 then
local _droppedVehicles = ctld.spawnDroppedGroup(_heli:getPoint(), _onboard.vehicles, true) local _droppedVehicles = ctld.spawnDroppedGroup(_heli:getPoint(), _onboard.vehicles, true)
@@ -1099,7 +1114,7 @@ function ctld.loadUnloadFOBCrate(_args)
return return
end end
if _heli:inAir() == true then if ctld.inAir(_heli) == true then
return return
end end
@@ -1252,7 +1267,7 @@ end
function ctld.extractTroops(_heli, _troops) function ctld.extractTroops(_heli, _troops)
if _heli:inAir() then if ctld.inAir(_heli) then
return return
end end
@@ -1417,13 +1432,13 @@ function ctld.checkHoverStatus()
local _transUnit = ctld.getTransportUnit(_name) local _transUnit = ctld.getTransportUnit(_name)
--only check transports that are hovering and not planes --only check transports that are hovering and not planes
if _transUnit ~= nil and ctld.inTransitSlingLoadCrates[_name] == nil and _transUnit:inAir() and ctld.unitCanCarryVehicles(_transUnit) == false then if _transUnit ~= nil and ctld.inTransitSlingLoadCrates[_name] == nil and ctld.inAir(_transUnit) and ctld.unitCanCarryVehicles(_transUnit) == false then
local _crates = ctld.getCratesAndDistance(_transUnit) local _crates = ctld.getCratesAndDistance(_transUnit)
for _, _crate in pairs(_crates) do for _, _crate in pairs(_crates) do
-- env.info("CRATE: ".._crate.crateUnit:getName().. " ".._crate.dist) -- env.info("CRATE: ".._crate.crateUnit:getName().. " ".._crate.dist)
if _crate.dist < 5.0 and _crate.details.unit ~= "FOB" then if _crate.dist < 5.5 and _crate.details.unit ~= "FOB" then
--check height! --check height!
local _height = _transUnit:getPoint().y - _crate.crateUnit:getPoint().y local _height = _transUnit:getPoint().y - _crate.crateUnit:getPoint().y
@@ -1715,7 +1730,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 --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 if _crate ~= nil and _crate:getLife() > 0
and (_crate:inAir() == false or (ctld.heightDiff(_crate) < 20.0 and mist.vec.mag(_crate:getVelocity()) < 1.0)) then and (ctld.inAir(_crate) == false ) then
local _dist = ctld.getDistance(_crate:getPoint(), _heli:getPoint()) local _dist = ctld.getDistance(_crate:getPoint(), _heli:getPoint())
@@ -1814,7 +1829,7 @@ function ctld.unpackCrates(_arguments)
local _heli = ctld.getTransportUnit(_args[1]) local _heli = ctld.getTransportUnit(_args[1])
if _heli ~= nil and _heli:inAir() == false then if _heli ~= nil and ctld.inAir(_heli) == false then
local _crates = ctld.getCratesAndDistance(_heli) local _crates = ctld.getCratesAndDistance(_heli)
local _crate = ctld.getClosestCrate(_heli, _crates) local _crate = ctld.getClosestCrate(_heli, _crates)
@@ -1827,12 +1842,12 @@ 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 if ctld.inLogisticsZone(_heli) == true then
--
-- ctld.displayMessageToGroup(_heli, "You can't unpack that here! Take it to where it's needed!", 20) ctld.displayMessageToGroup(_heli, "You can't unpack that here! Take it to where it's needed!", 20)
--
-- return return
-- end end
-- is multi crate? -- is multi crate?
if ctld.isMultiCrate(_crate.details) then if ctld.isMultiCrate(_crate.details) then
@@ -1994,17 +2009,22 @@ function ctld.dropSlingCrate(_args)
local _heightDiff = ctld.heightDiff(_heli) local _heightDiff = ctld.heightDiff(_heli)
if _heightDiff > 40.0 then if ctld.inAir(_heli) == false or _heightDiff <= 7.5 then
ctld.displayMessageToGroup(_heli, _currentCrate.desc .. " crate has been safely unhooked and is at your 12 o'clock", 10)
_point = ctld.getPointAt12Oclock(_heli, 30)
-- elseif _heightDiff > 40.0 then
-- ctld.inTransitSlingLoadCrates[_heli:getName()] = nil
-- ctld.displayMessageToGroup(_heli, "You were too high! The crate has been destroyed", 10)
-- return
elseif _heightDiff > 7.5 and _heightDiff <= 40.0 then
ctld.displayMessageToGroup(_heli, _currentCrate.desc .. " crate has been safely dropped below you", 10)
else -- _heightDiff > 40.0
ctld.inTransitSlingLoadCrates[_heli:getName()] = nil ctld.inTransitSlingLoadCrates[_heli:getName()] = nil
ctld.displayMessageToGroup(_heli, "You were too high! The crate has been destroyed", 10) ctld.displayMessageToGroup(_heli, "You were too high! The crate has been destroyed", 10)
return return
elseif _heightDiff > 7.5 and _heightDiff <= 40.0 then
ctld.displayMessageToGroup(_heli, _currentCrate.desc .. " crate has been safely dropped below you", 10)
else
ctld.displayMessageToGroup(_heli, _currentCrate.desc .. " crate has been safely unhooked and is at your 12 o'clock", 10)
_point = ctld.getPointAt12Oclock(_heli, 30)
end end
--remove crate from cargo --remove crate from cargo
ctld.inTransitSlingLoadCrates[_heli:getName()] = nil ctld.inTransitSlingLoadCrates[_heli:getName()] = nil
@@ -2325,7 +2345,7 @@ function ctld.dropRadioBeacon(_args)
local _heli = ctld.getTransportUnit(_args[1]) local _heli = ctld.getTransportUnit(_args[1])
local _message = "" local _message = ""
if _heli ~= nil and _heli:inAir() == false then if _heli ~= nil and ctld.inAir(_heli) == false then
--deploy 50 m infront --deploy 50 m infront
--try to spawn at 12 oclock to us --try to spawn at 12 oclock to us
@@ -2348,7 +2368,7 @@ function ctld.removeRadioBeacon(_args)
local _heli = ctld.getTransportUnit(_args[1]) local _heli = ctld.getTransportUnit(_args[1])
local _message = "" local _message = ""
if _heli ~= nil and _heli:inAir() == false then if _heli ~= nil and ctld.inAir(_heli) == false then
-- mark with flare? -- mark with flare?
@@ -2507,13 +2527,17 @@ function ctld.rearmHawk(_heli, _nearestCrate, _nearbyCrates)
trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " successfully rearmed a full HAWK AA System in the field", 10) trigger.action.outTextForCoalition(_heli:getCoalition(), ctld.getPlayerNameOrType(_heli) .. " successfully rearmed a full HAWK AA System in the field", 10)
-- remove crate
if _heli:getCoalition() == 1 then if _heli:getCoalition() == 1 then
ctld.spawnedCratesRED[_nearestCrate.crateUnit:getName()] = nil ctld.spawnedCratesRED[_nearestCrate.crateUnit:getName()] = nil
else else
ctld.spawnedCratesBLUE[_nearestCrate.crateUnit:getName()] = nil ctld.spawnedCratesBLUE[_nearestCrate.crateUnit:getName()] = nil
end end
-- remove crate
if ctld.slingLoad == false then
_nearestCrate.crateUnit:destroy()
end
return true -- all done so quit return true -- all done so quit
end end
end end
@@ -2682,7 +2706,10 @@ function ctld.unpackMultiCrate(_heli, _nearestCrate, _nearbyCrates)
end end
--destroy --destroy
-- _crate.crateUnit:destroy() if ctld.slingLoad == false then
_crate.crateUnit:destroy()
end
end end
@@ -2739,8 +2766,8 @@ function ctld.spawnCrateGroup(_heli, _positions, _types)
end end
--mist function --mist function
_group.category = Group.Category.GROUND; _group.category = Group.Category.GROUND
_group.country = _heli:getCountry(); _group.country = _heli:getCountry()
local _spawnedGroup = Group.getByName(mist.dynAdd(_group).name) local _spawnedGroup = Group.getByName(mist.dynAdd(_group).name)
@@ -2749,7 +2776,7 @@ function ctld.spawnCrateGroup(_heli, _positions, _types)
--activate by moving and so we can set ROE and Alarm state --activate by moving and so we can set ROE and Alarm state
local _dest = _spawnedGroup:getUnit(1):getPoint() local _dest = _spawnedGroup:getUnit(1):getPoint()
_dest = { x = _dest.x + 5, _y = _dest.y + 5, z = _dest.z + 5 } _dest = { x = _dest.x + 0.5, _y = _dest.y + 0.5, z = _dest.z + 0.5 }
ctld.orderGroupToMoveToPoint(_spawnedGroup:getUnit(1), _dest) ctld.orderGroupToMoveToPoint(_spawnedGroup:getUnit(1), _dest)
@@ -3005,7 +3032,7 @@ end
-- are we in pickup zone -- are we in pickup zone
function ctld.inPickupZone(_heli) function ctld.inPickupZone(_heli)
if _heli:inAir() then if ctld.inAir(_heli) then
return false return false
end end
@@ -3066,7 +3093,7 @@ end
-- are we in a dropoff zone -- are we in a dropoff zone
function ctld.inDropoffZone(_heli) function ctld.inDropoffZone(_heli)
if _heli:inAir() then if ctld.inAir(_heli) then
return false return false
end end
@@ -3094,7 +3121,7 @@ end
-- are we near friendly logistics zone -- are we near friendly logistics zone
function ctld.inLogisticsZone(_heli) function ctld.inLogisticsZone(_heli)
if _heli:inAir() then if ctld.inAir(_heli) then
return false return false
end end
@@ -3319,11 +3346,11 @@ function ctld.addF10MenuOptions()
if ctld.enableSmokeDrop then if ctld.enableSmokeDrop then
missionCommands.addSubMenuForGroup(_groupId, "Smoke Markers") local _smokeMenu = missionCommands.addSubMenuForGroup(_groupId, "Smoke Markers",_rootPath)
missionCommands.addCommandForGroup(_groupId, "Drop Red Smoke", { "Smoke Markers" }, ctld.dropSmoke, { _unitName, trigger.smokeColor.Red }) missionCommands.addCommandForGroup(_groupId, "Drop Red Smoke", _smokeMenu, ctld.dropSmoke, { _unitName, trigger.smokeColor.Red })
missionCommands.addCommandForGroup(_groupId, "Drop Blue Smoke", { "Smoke Markers" }, ctld.dropSmoke, { _unitName, trigger.smokeColor.Blue }) missionCommands.addCommandForGroup(_groupId, "Drop Blue Smoke", _smokeMenu, 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", _smokeMenu, ctld.dropSmoke, { _unitName, trigger.smokeColor.Orange })
missionCommands.addCommandForGroup(_groupId, "Drop Green Smoke", { "Smoke Markers" }, ctld.dropSmoke, { _unitName, trigger.smokeColor.Green }) missionCommands.addCommandForGroup(_groupId, "Drop Green Smoke", _smokeMenu, ctld.dropSmoke, { _unitName, trigger.smokeColor.Green })
end end
if ctld.enabledRadioBeaconDrop then if ctld.enabledRadioBeaconDrop then
+35 -9
View File
@@ -13,7 +13,7 @@ The script supports:
* Coloured Smoke Marker Drops * Coloured Smoke Marker Drops
* Extractable Soldier Spawn at a trigger zone * Extractable Soldier Spawn at a trigger zone
* Extractable soldier groups added via mission editor * Extractable soldier groups added via mission editor
* Unit construction using crates spawned at a logistics area and dropped via cargo sling * Unit construction using crates spawned at a logistics area and dropped via Simulated Cargo Sling or Real Cargo Sling
* HAWK AA System requires 3 separate and correct crates to build * HAWK AA System requires 3 separate and correct crates to build
* HAWK system can also be rearmed after construction by dropping another Hawk Launcher nearby and unpacking * HAWK system can also be rearmed after construction by dropping another Hawk Launcher nearby and unpacking
* HMMWV TOW * HMMWV TOW
@@ -60,13 +60,9 @@ An example is shown below:
###Script Configuration ###Script Configuration
The script has lots of configuration options that can be used to further customise the behaviour. The script has lots of configuration options that can be used to further customise the behaviour.
**If you experience crashes with Sling-loading, such as a game crash when shotdown, you can use the simulated sling-load behaviour instead to work around the DCS Bugs.** **I have now changed the default behaviour of the script to use Simulated Cargo Sling instead of the Real Cargo Sling due to DCS Bugs causing crashing**
To use the simulated behaviour, set the ```ctld.slingLoad``` option to ```false```. To use the real cargo sling behaviour, set the ```ctld.slingLoad``` option to ```true```.
The simulated Sling Loading will use a generator static instead of a crate and you just hover above it for 10 seconds to load it. No Need to use the F6 menu to first select the crate.
The crate can then be dropped using the CTLD Commands section of the Radio menu. Make sure you're not too high when the crate is dropped or it will be destroyed!
Unfortunately there is no way to simulate the added weight of the Simulated Sling Load.
```lua ```lua
@@ -76,7 +72,7 @@ Unfortunately there is no way to simulate the added weight of the Simulated Slin
ctld.disableAllSmoke = false -- if true, all smoke is diabled at pickup and drop off zones regardless of settings below. Leave false to respect settings below ctld.disableAllSmoke = false -- if true, all smoke is diabled at pickup and drop off zones regardless of settings below. Leave false to respect settings below
ctld.enableCrates = true -- if false, Helis will not be able to spawn or unpack crates so will be normal CTTS ctld.enableCrates = true -- if false, Helis will not be able to spawn or unpack crates so will be normal CTTS
ctld.slingLoad = true -- if false, crates can be used WITHOUT slingloading, by hovering above the crate, simulating slingloading but not the weight... ctld.slingLoad = false -- if false, crates can be used WITHOUT slingloading, by hovering above the crate, simulating slingloading but not the weight...
-- There are some bug with Sling-loading that can cause crashes, if these occur set slingLoad to false -- There are some bug with Sling-loading that can cause crashes, if these occur set slingLoad to false
-- to use the other method. -- to use the other method.
@@ -458,7 +454,37 @@ The C-130 / IL-76 can also load and unload FOB crates from a Logistics area, see
##Cargo Spawning and Sling Loading ##Cargo Spawning and Sling Loading
Cargo can be spawned by transport helicopters if they are close enough to a friendly logistics unit using the F10 menu. Crates are always spawned off the nose of the unit that requested them. Sling cargo weight differs drastically depending on what you are sling loading. The Huey will need to have 20% fuel and no armaments in order to be able to lift a HMMWV TOW crate! The Mi-8 has a higher max lifting weight than a Huey. Cargo can be spawned by transport helicopters if they are close enough to a friendly logistics unit using the F10 menu. Crates are always spawned off the nose of the unit that requested them.
###Simulated Sling Loading
If ```ctld.slingLoad = false``` then Simulated Sling Loading will be used. This option is now the default due to DCS crashes caused by Sling Loading on multiplayer. Simulated sling loads will not add and weight to your helicopter when loaded.
To pickup a Sling Load, spawn the cargo you want and hover above the crate for 10 seconds. There is no need to select which crate you want to pickup. Status messages will tell you if you are too high or too low. If the countdown stops, it means you are no longer hovering in the correct position and the timer will reset.
Too high:
![alt text](http://i1056.photobucket.com/albums/t379/cfisher881/dcs.exe_DX9_20150628_143131_zpsnowobc4g.png~original "Too high")
Too Low:
![alt text](http://i1056.photobucket.com/albums/t379/cfisher881/dcs.exe_DX9_20150628_143039_zps1wdl0jf5.png~original "Too Low")
Correct height and the countdown is working:
![alt text](http://i1056.photobucket.com/albums/t379/cfisher881/dcs.exe_DX9_20150628_143048_zpslmfo0mz9.png~original "Count Down")
Crate Loaded:
![alt text](http://i1056.photobucket.com/albums/t379/cfisher881/dcs.exe_DX9_20150628_143258_zpscgamyq3f.png~original "Crate Loaded")
Once you've loaded the crate, fly to where you want to drop it and drop using the Radio Menu CTLD->CTLD Commands->Drop Crate. If you are hovering the crate will be dropped below you and if you're on the ground it will appear off you're nose.
Once on the ground unpack as normal using the CTLD Commands Menu - CTLD->CTLD Commands->Unpack Crate
###Real Sling Loading
This uses the inbuilt DCS Sling cargo system and crates. Sling cargo weight differs drastically depending on what you are sling loading. The Huey will need to have 20% fuel and no armaments in order to be able to lift a HMMWV TOW crate! The Mi-8 has a higher max lifting weight than a Huey.
Once spawning the crate, to slingload the F6 menu needs to be used to select a cargo of the correct weight. If you've selected the right cargo RED smoke will appear and you can now sling load by hovering over the crate at a height of 15-30 feet or so. Once spawning the crate, to slingload the F6 menu needs to be used to select a cargo of the correct weight. If you've selected the right cargo RED smoke will appear and you can now sling load by hovering over the crate at a height of 15-30 feet or so.
Binary file not shown.
BIN
View File
Binary file not shown.