Jump to content

Complete Transport and Logistics Deployment - CTLD


Recommended Posts

Sounds like the same problem Stonehouse is having with the GCICAP script, units go off in one direction for infinity. YOu should compare notes and avoid duplication of effort :)

 

Think I've found the bug: http://forums.eagle.ru/showthread.php?t=150194

 

Shouldn't be too hard to work around and I'll hopefully get some time tonight to upload a fix.

Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD

CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup

Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script

 

Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :)

DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord

Link to comment
Share on other sites

New version of the CTLD Script v.1.32 - 1.5 Compatible!

 

Make sure you have the new MIST 4.0.55 !

 

Change log:

  • Bug fix for units heading NW after being unloaded or unpacked in 1.5 Beta
  • Ability to make an extractable unit a JTAC. Example in test-mission.miz for soldier group extract10

 

When upgrading a 1.2 mission to 1.5:

  • Remove and Re-add the beacon.ogg and beaconsilent.ogg using a Sound to country Action
  • Make sure you have the latest mist loaded as a DO SCRIPT before CTLD's DO SCRIPT. You must not use "On Mission Start" or "Initialization Script" as these are bugged
  • Double check your zone names and coalition match the new pickup and dropoff zones list. Option to set a zone for use by both sides for ease and most zones are active by default

 

Please see Readme and Github for latest code and how to use

Link:https://github.com/ciribob/DCS-CTLD

 

As always, please let me know if you have any issues or suggestions!

  • Like 1

Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD

CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup

Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script

 

Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :)

DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord

Link to comment
Share on other sites

Thank you, Ciribob, off to go input it into my missions!

Justificus

 

System Specs:

i7 4970K @ 4.8, GTX 1080 SC, 32GB G.Skill DDR 2133,Thermaltake Level 10 Full Tower Case, Noctua NH-D15 6 Cooler, Win 10 Pro, Warthog, CH Pro Pedals, CH Throttle Quadrant, Oculus, 1 32" & 2 19" Monitors

 

 

 

Modules Owned: A-10C I+II, Ka-50, FC3, F-86, Mig-15, Mig21, UH-1H, Mi-8, CA, P-51D, BF-109K-4, FW-190 D-9, Hawk, NTTR, M-2000C, SA342, F-5E, Spit Mk. IX, AJS-37, Normandy, WWII A.P., AV-8B, F/A-18C, L-39, Persian Gulf, Mig-19P, I-16, Super Carrier, F-16, Channel, Syria

Link to comment
Share on other sites

Is it possible for AI vehicles to unload troops if they are in proximity of enemy forces or do you always have to have zones set up for unloading?

 

No worries, let me know if any of you find any more issues! :)

 

Gunterlund21 - This isn't something supported out of the box by CTLD but you can bodge something together from the functions that already exist.

 

Using a continuous trigger you can ( based on ctld.checkAIStatus function!)

 


for _, _unitName in pairs(ctld.transportPilotNames) do

   local _unit = ctld.getTransportUnit(_unitName)

   if _unit ~= nil and _unit:getPlayerName() == nil then

       -- no player name means AI!
       -- the findNearest visible enemy you'd want to modify as it'll find enemies quite far away
       -- limited by  ctld.JTAC_maxDistance
       local _nearestEnemy = ctld.findNearestVisibleEnemy(_unit,"all")

       if _nearestEnemy ~= nil then

          if   ctld.troopsOnboard(_unit, true) then
             ctld.deployTroops(_unit, true)
           end

           if ctld.unitCanCarryVehicles(_unit) and ctld.troopsOnboard(_unit, false) then
               ctld.deployTroops(_unit, false)
           end
       end
   end
end


Edited by Ciribob

Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD

CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup

Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script

 

Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :)

DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord

Link to comment
Share on other sites

Ciribob thanks so much for the information. Would it be possible to demonstrate this in a small test mission. My coding skills are not up to par. Thanks so much for your consideration.

 

No worries, let me know if any of you find any more issues! :)

 

Gunterlund21 - This isn't something supported out of the box by CTLD but you can bodge something together from the functions that already exist.

 

Using a continuous trigger you can ( based on ctld.checkAIStatus function!)

 


for _, _unitName in pairs(ctld.transportPilotNames) do

   local _unit = ctld.getTransportUnit(_unitName)

   if _unit ~= nil and _unit:getPlayerName() == nil then

       -- no player name means AI!
       -- the findNearest visible enemy you'd want to modify as it'll find enemies quite far away
       -- limited by  ctld.JTAC_maxDistance
       local _nearestEnemy = ctld.findNearestVisibleEnemy(_unit,"all")

       if _nearestEnemy ~= nil then

          if   ctld.troopsOnboard(_unit, true) then
             ctld.deployTroops(_unit, true)
           end

           if ctld.unitCanCarryVehicles(_unit) and ctld.troopsOnboard(_unit, false) then
               ctld.deployTroops(_unit, false)
           end
       end
   end
end

I was in Art of the Kill D#@ it!!!!

Link to comment
Share on other sites

Ciribob thanks so much for the information. Would it be possible to demonstrate this in a small test mission. My coding skills are not up to par. Thanks so much for your consideration.

 

Here you go - I modified the CTLD to add a new function (the one above) you can call in a DO SCRIPT

 

-- unit name is the transport name (Not group name!)
-- 500 is the distance an enemy must be before they unload
ctld.unloadInProximityToEnemy("Unit Name",500)

 

Make sure you look through the triggers, they're named sensibly, to see how it works.

 

In short, the continuous trigger runs two code snippets using a DO SCRIPT action that check to see if the troops are near either of our two transports, if they are, the transports unload their troops.

 

The rest of the triggers are for setting up MIST / CTLD and loading the troops into the two vehicles.

 

Make sure you have a good read of the documentation and also the top of the CTLD.lua to see all the configuration options.

CTLD.lua

unload near enemy.miz

Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD

CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup

Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script

 

Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :)

DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord

Link to comment
Share on other sites

Ciri I have two words for you.... Wow and Wow... this is awesome. Now of course I have more questions since you can whip this up so fast.

1. Can you make the vehicle stop when they unload. Right now it unloads and keeps going on past its unloaded troops

2. Is there a way to keep track of how many troops are in a vehicle. If they take casualties can that be tracked so we dont keep spawning the same number of troops.

 

This is truely fantastic and as a ground commander there is huge potential to get infantry into the fight. What you can do is unload the troops, after combat jump in the transport, go back and pick the troops up, then go on to the next fight and they automatically unload again. Awesome.

 

Here you go - I modified the CTLD to add a new function (the one above) you can call in a DO SCRIPT

 

-- unit name is the transport name (Not group name!)
-- 500 is the distance an enemy must be before they unload
ctld.unloadInProximityToEnemy("Unit Name",500)

 

Make sure you look through the triggers, they're named sensibly, to see how it works.

 

In short, the continuous trigger runs two code snippets using a DO SCRIPT action that check to see if the troops are near either of our two transports, if they are, the transports unload their troops.

 

The rest of the triggers are for setting up MIST / CTLD and loading the troops into the two vehicles.

 

Make sure you have a good read of the documentation and also the top of the CTLD.lua to see all the configuration options.

I was in Art of the Kill D#@ it!!!!

Link to comment
Share on other sites

1. Can you make the vehicle stop when they unload. Right now it unloads and keeps going on past its unloaded troops

2. Is there a way to keep track of how many troops are in a vehicle. If they take casualties can that be tracked so we dont keep spawning the same number of troops.

Awesome.

 

Number 2 is already done for you. Once the group has been created, with a certain number of soldiers, you can unload and load them as many times as you like and the group will stay the same. If one is lost then the group will always have that soldier missing.

 

Number 1 is slightly more tricky, and i'm not the best person to ask as I'm not very good with the mission editor.

 

How'd I'd start would be to modify the function I gave you in the previous post in CTLD.lua to:

 

function ctld.unloadInProximityToEnemy(_unitName,_distance)

   local _unit = ctld.getTransportUnit(_unitName)

   if _unit ~= nil and _unit:getPlayerName() == nil then

       -- no player name means AI!
       -- the findNearest visible enemy you'd want to modify as it'll find enemies quite far away
       -- limited by  ctld.JTAC_maxDistance
       local _nearestEnemy = ctld.findNearestVisibleEnemy(_unit,"all",_distance)

       if _nearestEnemy ~= nil then

           if   ctld.troopsOnboard(_unit, true) then
               ctld.deployTroops(_unit, true)
               return true --modification
           end

           if ctld.unitCanCarryVehicles(_unit) and ctld.troopsOnboard(_unit, false) then
               ctld.deployTroops(_unit, false)
               return true --modification
           end
       end
   end

   return false --modification

end

 

Now you can test whether the vehicle did unload troops in the DO SCRIPT trigger like so:

 


if  ctld.unloadInProximityToEnemy("transport2",300) then
trigger.action.setUserFlag(10,1)
end

 

That sets the flag 10 to the value 1. You can now use other triggers to do actions based on the value of flags.

 

Make sure you edit scripts using Notepad++ or something like that NOT Notepad/Wordpad/Word.


Edited by Ciribob

Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD

CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup

Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script

 

Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :)

DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord

Link to comment
Share on other sites

Thanks for this Script its amazing.

 

I have two questions.

I created a simple mission with for loading troops and crates of Humve with MG. Currently I dont need all the extra options in F-10 (AA, TOW, JTAC etc)

Is there a way to remove this other options from F-10? to simplify the work for my game mates?

 

The other question is I dont seem to be able to listen to the beacon, I revieve signal and Needle point in the correct way, but no sound in huey or Mi8.

My current start triggers are

 

--Time more than 2--------Load Mist

--Time more than 5--------Sound to Country (autralia, beacon.ogg)

---- Sound to Country (canada, beaconsilent.ogg)

---- Load CTLD.

Then load the beacon triggers using time more than 10 and this script

ctld.createRadioBeaconAtZone("radioBeacon1", "blue",1440,"Farp Condor")

A.K.A. Timon -117th- in game

Link to comment
Share on other sites

Thanks for this Script its amazing.

 

I have two questions.

I created a simple mission with for loading troops and crates of Humve with MG. Currently I dont need all the extra options in F-10 (AA, TOW, JTAC etc)

Is there a way to remove this other options from F-10? to simplify the work for my game mates?

 

The other question is I dont seem to be able to listen to the beacon, I revieve signal and Needle point in the correct way, but no sound in huey or Mi8.

 

Unfortunately you won't always hear the beeping on VHF and FM, just silence due to a DCS Bug.

 

You'll also never hear the beeping on UHF as that uses the silent sound otherwise all the FC3 aircraft will hear the beeping constantly :)

 

For changing the crate options you can set ctld.JTAC_dropEnabled = false and also turn off the smoke to reduce the options.

 

To change what you can load and unload - edit the ctld.spawnableCrates list and remove a line.

 

If you remove a whole section like ["AA Crates"] make sure you remove everything in that section

 

--from here
["AA Crates"] = {
   .... code ...
},
--to here

 

Hope that helps!

Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD

CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup

Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script

 

Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :)

DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord

Link to comment
Share on other sites

New version of the CTLD Script v.1.34 - 1.5 Compatible!

 

Make sure you have the new MIST 4.0.57 !

 

Change log:

  • Added Ability to deploy BUK System
  • Added Ability to deploy KUB System
  • Added new mission script function ctld.unloadInProximityToEnemy
  • You can load and unload a recon JTAC soldier

 

I've disabled the HAWK system for now (you can enable it easily again) as the models don't always load in multiplayer in the 1.5 Beta. Currently the default AA system is the KUB for both coalitions.

 

ctld.unloadInProximityToEnemy can be used with a continuous trigger to make AI drop troops when enemies are close.

 

When upgrading a 1.2 mission to 1.5:

  • Remove and Re-add the beacon.ogg and beaconsilent.ogg using a Sound to country Action
  • Make sure you have the latest mist loaded as a DO SCRIPT before CTLD's DO SCRIPT. You must not use "On Mission Start" or "Initialization Script" as these are bugged
  • Double check your zone names and coalition match the new pickup and dropoff zones list. Option to set a zone for use by both sides for ease and most zones are active by default

 

Please see Readme and Github for latest code and how to use

Link:https://github.com/ciribob/DCS-CTLD

 

As always, please let me know if you have any issues or suggestions!


Edited by Ciribob

Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD

CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup

Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script

 

Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :)

DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord

Link to comment
Share on other sites

Just as Info...

 

We flew a mp mission today 1 groups of 4 Mi8 and 1 group of 4 UH1

 

The 4 MI8 were part of the same "GROUP" in the Editor but each unit had a different Name "helicargo1, helicargo2 helicargo3 etc..

 

Using the script caused to believe that all Mi8s where the same.

So when the first Mi8 landed and loades.

 

All other Mi8 tought that they had loaded too.

 

Huey where the same issue

 

So.. basically dont use the same GROUP on your missions.

A.K.A. Timon -117th- in game

Link to comment
Share on other sites

Thanks Alfredo! Yeah the script assumes that there is only one heli per group as there is no way to message a single unit, only a group.

 

I could make it support single units but you'd get spammed by your buddies messages.

 

I'll make that clearer in the readme :)

Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD

CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup

Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script

 

Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :)

DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord

Link to comment
Share on other sites

is there any function to unload the trasnport??

 

For load I use the ctld.preLoadTransport("transport3", 10,true) function, but, there is nothing for unload.

 

That would be great.

 

Here you go :) :

 



function ctld.unloadTransport(_unitName)

   local _unit = ctld.getTransportUnit(_unitName)

   if _unit ~= nil  then

           if   ctld.troopsOnboard(_unit, true) then
               ctld.deployTroops(_unit, true)
              
           end

           if ctld.unitCanCarryVehicles(_unit) and ctld.troopsOnboard(_unit, false) then
               ctld.deployTroops(_unit, false)
               
           end
   end

end

 

Just paste that in somewhere below the configuration and in the DO SCRIPT do:

 

ctld.unloadTransport("helicargo1")

 

I'll add it into the next release

Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD

CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup

Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script

 

Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :)

DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord

Link to comment
Share on other sites

Cribob can I use your script to pick troops up from ships and drop them anywhere on the map or do I need to have an infantry unit inside the pickzone?

 

Thanks again for this script,

 

Jacks

System Specs: i7 8700k @ 5.0GHz (not delidded), ASRock Extreme4 Z370 MOBO, EVGA GTX 1080 SC 8GB, 32GB Corsair Vengeance LPX 3200MHz DDR4 RAM, Samsung Evo 240GB SSD, Samsung Evo 500GB SSD, 1TB HDD, Noctura NH-D15S Heat Sink, Acer VE278H 27" 1080p Monitor, Ocukus Rift CV1.

 

Controllers: TrackIR 5, Thrustmaster HOTAS X, Saitek Throttle Quadrant (with DIY removable collective mod), Saitek Pro Flight Rudder Pedals.

 

Just trying to keep my number of takeoffs and landings equal!

Link to comment
Share on other sites

You can use it to pickup from ships if you add a pickup zone on the ship but make sure the ship isn't moving or the it'll move out of the pickup zone.

 

As an alternative, you can put a bunch of soldier groups on the ship and then add their Group names to the ctld.extractableGroups list. You'll then be able to pick them up without the pickup zone.

 

Ships are a bit buggy though so you might find the soldiers fall through the deck if they more or the ship moves.

 

Hope that helps!

Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD

CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup

Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script

 

Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :)

DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord

Link to comment
Share on other sites

Cribob's, thanks for the reply, I will play around with it tonight. Is there no way to get the pickzone trigger to move with the ship using the unit inside a moving zone trigger?

System Specs: i7 8700k @ 5.0GHz (not delidded), ASRock Extreme4 Z370 MOBO, EVGA GTX 1080 SC 8GB, 32GB Corsair Vengeance LPX 3200MHz DDR4 RAM, Samsung Evo 240GB SSD, Samsung Evo 500GB SSD, 1TB HDD, Noctura NH-D15S Heat Sink, Acer VE278H 27" 1080p Monitor, Ocukus Rift CV1.

 

Controllers: TrackIR 5, Thrustmaster HOTAS X, Saitek Throttle Quadrant (with DIY removable collective mod), Saitek Pro Flight Rudder Pedals.

 

Just trying to keep my number of takeoffs and landings equal!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...