Task Tutorial – Arma 2
No edit summary |
Lou Montana (talk | contribs) m (Text replacement - "{{arma2}}" to "{{GameCategory|arma2|link= y}}") |
||
(23 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
== | {{TOC|side}} | ||
== Basics == | |||
* | |||
Tasks were introduced in {{GameCategory|arma2|link= y}} and improved in [[Arma 3: Task Framework|Arma 3]]. They replaced the [[Briefing.html|old objective system]] used in [[:Category:ArmA: Armed Assault|{{arma1}}]] and [[:Category:Operation Flashpoint|{{ofp}}]]. | |||
{{Feature | arma3 | For '''{{arma3}}'''<nowiki/>'s Task Tutorial, see [[Arma 3: Task Framework Tutorial]].}} | |||
As opposed to the previous system: | |||
* Tasks can be created at any time from anywhere (trigger, script, etc). They do not need to be created in an external file. | |||
* Tasks are created "on the fly" as they are required and not "hidden/shown" anymore. | |||
=== States === | |||
Task states are in [[String]] format. | |||
= | {| class="wikitable" | ||
! Value | |||
! Description | |||
! Display | |||
|- | |||
| "Assigned" | |||
| ''grey'' - The task is the current one | |||
| rowspan="6" | [[File:Taskstates.png|Task States]] | |||
|- | |||
| "Canceled" | |||
| ''grey diagonal line'' - The task has been cancelled | |||
|- | |||
| "Created" | |||
| ''black empty'' - The task exists, is available but isn't the current one | |||
|- | |||
| "Failed" | |||
| ''red crossed'' - The task was failed | |||
|- | |||
| "Succeeded" | |||
| ''green'' - The task was succeeded | |||
|- | |||
| "None" | |||
| ''?'' | |||
|} | |||
== Good To Know == | == Good To Know == | ||
Tasks are unit-specific. They are created to a ''unit'' and not to a ''client'' (computer). | |||
For example if you create a task for the [[player]] unit then [[teamSwitch]] to another unit, this new unit won't have any task. | |||
If you switch back to the original unit, it will have this created task. | |||
{{Feature | important | Task creation is '''local''' and should be executed on every client that needs it, such as every client that ''could'' access the unit.}} | |||
The value returned by [[createSimpleTask]] is a unique handle to the unit's task, returns a handle (variable which refers to the created task). Each task has a unique handle. Even using same line of code on different client will result in a different handle for the "same" task. | |||
== How to use a task == | |||
=== | === Create a task === | ||
<sqf>private _myTask = player createSimpleTask ["taskName1"];</sqf> | |||
=== Set a task's description === | |||
<sqf> | |||
private _title = "Get the documents"; | |||
private _description = "Enter the house to find the documents. Hurry, as the enemy is on its way."; | |||
private _waypoint = "House"; | |||
_myTask setSimpleTaskDescription [_description, _title, _waypoint]; | |||
</sqf> | |||
=== Assign a task === | |||
<sqf> | |||
_myTask setTaskState "Assigned"; | |||
player setCurrentTask _myTask; | |||
</sqf> | |||
=== Set a task's destination === | |||
<sqf> | |||
_myTask setSimpleTaskDestination getPosATL objDocuments; // a position | |||
// or | |||
_myTask setSimpleTaskTarget [objDocuments, true]; // an object - Arma 2 OA v 1.55 | |||
</sqf> | |||
=== Set a task's state === | |||
<sqf>_myTask setTaskState "Succeeded";</sqf> | |||
=== Delete a task === | |||
<sqf>player removeSimpleTask _myTask;</sqf> | |||
== How to read a task's information == | |||
=== Get a task's state === | |||
<sqf>taskState _myTask;</sqf> | |||
=== Get a task's description === | |||
<sqf>taskDescription _myTask;</sqf> | |||
=== Get a task's destination === | |||
<sqf>taskDestination _myTask;</sqf> | |||
== See also == | == See also == | ||
[[Category: Arma | * [[Arma 3: Task Framework]] | ||
* [[Arma 3: Task Framework Tutorial]] | |||
* [[:Category:Function_Group:_Tasks|Tasks Functions]] | |||
* [[:Category:Command Group: Briefing|Briefing Commands]] | |||
* [[briefing]] | |||
[[Category:Arma Scripting Tutorials]] |
Latest revision as of 13:01, 19 March 2024
Basics
Tasks were introduced in Arma 2 and improved in Arma 3. They replaced the old objective system used in Armed Assault and Operation Flashpoint.
As opposed to the previous system:
- Tasks can be created at any time from anywhere (trigger, script, etc). They do not need to be created in an external file.
- Tasks are created "on the fly" as they are required and not "hidden/shown" anymore.
States
Task states are in String format.
Good To Know
Tasks are unit-specific. They are created to a unit and not to a client (computer). For example if you create a task for the player unit then teamSwitch to another unit, this new unit won't have any task. If you switch back to the original unit, it will have this created task.
The value returned by createSimpleTask is a unique handle to the unit's task, returns a handle (variable which refers to the created task). Each task has a unique handle. Even using same line of code on different client will result in a different handle for the "same" task.
How to use a task
Create a task
Set a task's description
Assign a task
Set a task's destination
Set a task's state
Delete a task
How to read a task's information
Get a task's state
Get a task's description
Get a task's destination