mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
Updated to CARGO TASKING model. Now capture from the dispatcher the CargoPickedUp and CargoDeployed events.
This commit is contained in:
@@ -152,6 +152,114 @@ do -- TASK_CARGO_CSAR
|
||||
-- It is better you use the cargo dispatcher to generate CSAR tasks and it will work as it is intended.
|
||||
-- By doing this, CSAR tasking will become a dynamic experience.
|
||||
--
|
||||
-- # 2) Create a task using the @{Tasking.Task_Cargo_Dispatcher} module.
|
||||
--
|
||||
-- Actually, it is better to **GENERATE** these tasks using the @{Tasking.Task_Cargo_Dispatcher} module.
|
||||
-- Using the dispatcher module, transport tasks can be created much more easy.
|
||||
--
|
||||
-- Find below an example how to use the TASK_CARGO_DISPATCHER class:
|
||||
--
|
||||
--
|
||||
-- -- Find the HQ group.
|
||||
-- HQ = GROUP:FindByName( "HQ", "Bravo" )
|
||||
--
|
||||
-- -- Create the command center with the name "Lima".
|
||||
-- CommandCenter = COMMANDCENTER
|
||||
-- :New( HQ, "Lima" )
|
||||
--
|
||||
-- -- Create the mission, for the command center, with the name "CSAR Mission", a "Tactical" mission, with the mission briefing "Rescue downed pilots.", for the RED coalition.
|
||||
-- Mission = MISSION
|
||||
-- :New( CommandCenter, "CSAR Mission", "Tactical", "Rescue downed pilots.", coalition.side.RED )
|
||||
--
|
||||
-- -- Create the SET of GROUPs containing clients (players) that will transport the cargo.
|
||||
-- -- These are have a name that start with "Rescue" and are of the "red" coalition.
|
||||
-- AttackGroups = SET_GROUP:New():FilterCoalitions( "red" ):FilterPrefixes( "Rescue" ):FilterStart()
|
||||
--
|
||||
--
|
||||
-- -- Here we create the TASK_CARGO_DISPATCHER object! This is where we assign the dispatcher to generate tasks in the Mission for the AttackGroups.
|
||||
-- TaskDispatcher = TASK_CARGO_DISPATCHER:New( Mission, AttackGroups )
|
||||
--
|
||||
--
|
||||
-- -- Here the task dispatcher will generate automatically CSAR tasks once a pilot ejects.
|
||||
-- TaskDispatcher:StartCSARTasks(
|
||||
-- "CSAR",
|
||||
-- { ZONE_UNIT:New( "Hospital", STATIC:FindByName( "Hospital" ), 100 ) },
|
||||
-- "One of our pilots has ejected. Go out to Search and Rescue our pilot!\n" ..
|
||||
-- "Use the radio menu to let the command center assist you with the CSAR tasking."
|
||||
-- )
|
||||
--
|
||||
-- # 3) Handle cargo task events.
|
||||
--
|
||||
-- When a player is picking up and deploying cargo using his carrier, events are generated by the tasks. These events can be captured and tailored with your own code.
|
||||
--
|
||||
-- In order to properly capture the events and avoid mistakes using the documentation, it is advised that you execute the following actions:
|
||||
--
|
||||
-- * **Copy / Paste** the code section into your script.
|
||||
-- * **Change** the CLASS literal to the task object name you have in your script.
|
||||
-- * Within the function, you can now **write your own code**!
|
||||
-- * **IntelliSense** will recognize the type of the variables provided by the function. Note: the From, Event and To variables can be safely ignored,
|
||||
-- but you need to declare them as they are automatically provided by the event handling system of MOOSE.
|
||||
--
|
||||
-- You can send messages or fire off any other events within the code section. The sky is the limit!
|
||||
--
|
||||
-- NOTE: CSAR tasks are actually automatically created by the TASK_CARGO_DISPATCHER. So the underlying is not really applicable for mission designers as they will use the dispatcher instead
|
||||
-- of capturing these events from manually created CSAR tasks!
|
||||
--
|
||||
-- ## 3.1) Handle the **CargoPickedUp** event.
|
||||
--
|
||||
-- Find below an example how to tailor the **CargoPickedUp** event, generated by the CSARTask:
|
||||
--
|
||||
-- function CSARTask:OnAfterCargoPickedUp( From, Event, To, TaskUnit, Cargo )
|
||||
--
|
||||
-- MESSAGE:NewType( "Unit " .. TaskUnit:GetName().. " has picked up cargo.", MESSAGE.Type.Information ):ToAll()
|
||||
--
|
||||
-- end
|
||||
--
|
||||
-- If you want to code your own event handler, use this code fragment to tailor the event when a player carrier has picked up a cargo object in the CarrierGroup.
|
||||
-- You can use this event handler to post messages to players, or provide status updates etc.
|
||||
--
|
||||
-- --- CargoPickedUp event handler OnAfter for CLASS.
|
||||
-- -- @param #CLASS self
|
||||
-- -- @param #string From A string that contains the "*from state name*" when the event was triggered.
|
||||
-- -- @param #string Event A string that contains the "*event name*" when the event was triggered.
|
||||
-- -- @param #string To A string that contains the "*to state name*" when the event was triggered.
|
||||
-- -- @param Wrapper.Unit#UNIT TaskUnit The unit (client) of the player that has picked up the cargo.
|
||||
-- -- @param Cargo.Cargo#CARGO Cargo The cargo object that has been picked up. Note that this can be a CARGO_GROUP, CARGO_CRATE or CARGO_SLINGLOAD object!
|
||||
-- function CLASS:OnAfterCargoPickedUp( From, Event, To, TaskUnit, Cargo )
|
||||
--
|
||||
-- -- Write here your own code.
|
||||
--
|
||||
-- end
|
||||
--
|
||||
--
|
||||
-- ## 3.2) Handle the **CargoDeployed** event.
|
||||
--
|
||||
-- Find below an example how to tailor the **CargoDeployed** event, generated by the CSARTask:
|
||||
--
|
||||
-- function CSARTask:OnAfterCargoDeployed( From, Event, To, TaskUnit, Cargo, DeployZone )
|
||||
--
|
||||
-- MESSAGE:NewType( "Unit " .. TaskUnit:GetName().. " has deployed cargo at zone " .. DeployZone:GetName(), MESSAGE.Type.Information ):ToAll()
|
||||
--
|
||||
-- end
|
||||
--
|
||||
-- If you want to code your own event handler, use this code fragment to tailor the event when a player carrier has deployed a cargo object from the CarrierGroup.
|
||||
-- You can use this event handler to post messages to players, or provide status updates etc.
|
||||
--
|
||||
--
|
||||
-- --- CargoDeployed event handler OnAfter for CLASS.
|
||||
-- -- @param #CLASS self
|
||||
-- -- @param #string From A string that contains the "*from state name*" when the event was triggered.
|
||||
-- -- @param #string Event A string that contains the "*event name*" when the event was triggered.
|
||||
-- -- @param #string To A string that contains the "*to state name*" when the event was triggered.
|
||||
-- -- @param Wrapper.Unit#UNIT TaskUnit The unit (client) of the player that has deployed the cargo.
|
||||
-- -- @param Cargo.Cargo#CARGO Cargo The cargo object that has been deployed. Note that this can be a CARGO_GROUP, CARGO_CRATE or CARGO_SLINGLOAD object!
|
||||
-- -- @param Core.Zone#ZONE DeployZone The zone wherein the cargo is deployed. This can be any zone type, like a ZONE, ZONE_GROUP, ZONE_AIRBASE.
|
||||
-- function CLASS:OnAfterCargoDeployed( From, Event, To, TaskUnit, Cargo, DeployZone )
|
||||
--
|
||||
-- -- Write here your own code.
|
||||
--
|
||||
-- end
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
-- @field #TASK_CARGO_CSAR
|
||||
|
||||
Reference in New Issue
Block a user