diff --git a/Wrapper/Group/101-TaskAttackUnit/GRP-101-TaskAttackUnit.lua b/Wrapper/Group/101-TaskAttackUnit/GRP-101-TaskAttackUnit.lua new file mode 100644 index 0000000..41eed7c --- /dev/null +++ b/Wrapper/Group/101-TaskAttackUnit/GRP-101-TaskAttackUnit.lua @@ -0,0 +1,51 @@ +--- +-- Author: FlightControl +-- Created: 20.10.2018 +-- Contributors: kaltokri +-- Modified: 24.02.2024 +-- +-- # Documentation: +-- https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/Documentation/Wrapper.Group.html +-- +-- # Description: +-- +-- In this mission one Ka-50 (HeliGroup) will attack a group of trucks. +-- As you can see below the code to accomplish this is not trivial. +-- But it is good way to understand the details of task assignment in DCS. +-- A better way is to use new new Ops.Auftrag class. +-- +-- # Test cases: +-- +-- 1. Start the mission and watch the APC driving trough the zone. +-- 2. A red smoke will be deployed within the zone. + +-- Get objects of the groups we need: +local HeliGroup = GROUP:FindByName( "Helicopter" ) +local TargetGroup = GROUP:FindByName( "Targets" ) + +-- Get all units of the target group +local TargetUnits = TargetGroup:GetUnits() + +-- Create an empty list of tasks for the HeliGroup. +local HeliTasks = {} + +-- Loop through all units of TargetGroup. +-- #TargetUnits is the number of elements of TargetUnits. +for i = 1, #TargetUnits do + local TargetUnit = TargetGroup:GetUnit( i ) + -- Add an attack task to the HeliTasks table for each target unit. + HeliTasks[#HeliTasks+1] = HeliGroup:TaskAttackUnit( TargetUnit ) +end + +-- As the last task add a function +HeliTasks[#HeliTasks+1] = HeliGroup:TaskFunction( "_Resume", { "''" } ) + +-- This is a very simple function, which only prints only a message. +-- But you can do very complex things in such a method. +-- @param Wrapper.Group#GROUP HeliGroup +function _Resume( HeliGroup ) + HeliGroup:MessageToAll( "All tasks completed.", 10, "Info") -- Show an info message for 10 seconds. +end + +-- Push the list with all tasks to the HeliGroup with a delay of 10 seconds. +HeliGroup:PushTask( HeliGroup:TaskCombo( HeliTasks ), 10 ) diff --git a/Wrapper/Group/101-TaskAttackUnit/GRP-101-TaskAttackUnit.miz b/Wrapper/Group/101-TaskAttackUnit/GRP-101-TaskAttackUnit.miz new file mode 100644 index 0000000..c3a9500 Binary files /dev/null and b/Wrapper/Group/101-TaskAttackUnit/GRP-101-TaskAttackUnit.miz differ