BIS fnc taskCreate: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (updated priority description)
m (Fix)
 
(37 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Function|Comments=
{{RV|type=function
____________________________________________________________________________________________


| arma3 |Game name=
|game1= arma3
|version1= 1.00


|1.00|Game version=
|gr1= Tasks


|arg= global|Multiplayer Arguments=
|arg= global
|eff= global


|eff= global|Multiplayer Effects=
|descr= Create a task.
____________________________________________________________________________________________


| Create a task. {{Informative| See [[Arma 3 Task Framework]] for more information.}} |DESCRIPTION=
|s1= [owner, taskID, description, destination, state, priority, showNotification, type, visibleIn3D] call [[BIS_fnc_taskCreate]]
____________________________________________________________________________________________
 
| [owner, taskID, description, destination, state, priority, showNotification, type, visibleIn3D] call [[BIS_fnc_taskCreate]] |SYNTAX=


|p1= '''owner''': Task owner(s)
|p1= '''owner''': Task owner(s)
<br>[[Boolean]] - true to set task of all playable units
* [[Boolean]] - true to set task of all playable units
<br>[[Object]] - set task of a specific object
* [[Object]] - set task of a specific object
<br>[[Group]] - set tasks of all objects in the group
* [[Group]] - set tasks of all objects in the group
<br>[[Side]] - set tasks of all objects of the given side
* [[Side]] - set tasks of all objects of the given side
<br>[[Array]] - collection of above types |PARAMETER1=
* [[Array]] - collection of above types


|p2= '''taskID''':
|p2= '''taskID''':
<br>[[String]] - Task ID
* [[String]] - Task ID
<br>[[Array]] - In the format of [task ID, parent task ID] |PARAMETER2=
* [[Array]] - In the format of [task ID, parent task ID]


|p3= '''description''':
|p3= '''description''':
<br>[[Array]] - Task description in the format ["description", "title", "marker"]
* [[Array]] - Task description in the format ["description", "title", "marker"] - "marker" is depreciated, functionally does nothing
<br>[[String]] - [[Description.ext#CfgTaskDescriptions|CfgTaskDescriptions]] class name, if empty string is used then [[Description.ext#CfgTaskDescriptions|CfgTaskDescriptions]] is searched for a class matching the tasks TaskID |PARAMETER3=
** Description and Title can also be a [[format]] array [ "Text", var1, var2, ... ] where Text will be localized and then formatted per client, see {{Link|#Example 4}}
* [[String]] - [[Description.ext#CfgTaskDescriptions|CfgTaskDescriptions]] class name, if empty string is used then [[Description.ext#CfgTaskDescriptions|CfgTaskDescriptions]] is searched for a class matching the tasks TaskID


|p4= '''destination''' (Optional): Task destination
|p4= '''destination''' (Optional): Task destination
<br>[[Object]] - Use [[objNull]] to set no position
* [[Object]] - Use [[objNull]] to set no position
<br>[[Array]] - Either position in format [x,y,z], or [object,precision] as used by setSimpleTaskTarget command |PARAMETER4=
* [[Array]] - can be one of:
** format [[Position]]
** [target, precision] (as used by [[setSimpleTaskTarget]])
*** target: [[Object]]
*** precision: [[Boolean]] - [[false]] to use ''owner''<nowiki/>'s knowledge of ''target'', [[true]] to force display even if ''target'' is unknown to ''owner''


|p5= '''state''' (Optional): Task state
|p5= '''state''': (Optional, default "CREATED") task state. Can be:
<br>[[String]] - can be one of following:
* [[String]] - can be one of following:
<br>"CREATED"
** "CREATED"
<br>"ASSIGNED"
** "ASSIGNED"
<br>"AUTOASSIGNED" ("ASSIGNED" when no task is assigned yet, otherwise "CREATED")
** "AUTOASSIGNED" ("ASSIGNED" when no task is assigned yet, otherwise "CREATED")
<br>"SUCCEEDED"
** "SUCCEEDED"
<br>"FAILED"
** "FAILED"
<br>"CANCELED"
** "CANCELED"
<br>[[Boolean]] - true to set the task as current |PARAMETER5=
* [[Boolean]] - [[true]] to set the task as current
* [[Number]]
** 0 or less for [[false]]
** > 0 as [[true]]


|p6= '''priority''' (Optional): [[Number]] - priority. When the current task is completed, the system selects the one with the largest priority >{{=}} 0. To delete auto assignment of that task, give it a priority of -1.|PARAMETER6=
|p6= '''priority''': [[Number]] - (Optional) priority. When the current task is completed, the system selects the one with the largest priority >= 0. To avoid auto assignment of that task, give it a priority of -1.


|p7= '''showNotification''' (Optional): [[Boolean]] - true to show notification (default), false to disable it |PARAMETER7=
|p7= '''showNotification''': [[Boolean]] - (Optional, default [[true]]) true to show notification, false to disable it


|p8= '''type''' (Optional): [[String]] - task type from CfgTaskTypes, if not defined, type "" is being used |PARAMETER8=
|p8= '''type''': [[String]] - (Optional, default "") {{Link|Arma 3: Task Framework#Task Icons|vanilla}} or {{Link|Description.ext#CfgTaskTypes|custom}} task type; if not defined, empty (no) type is used


|p9= '''visibleIn3D''' (Optional): [[Boolean]] - true to make task always visible in 3D (default: false) |PARAMETER9=
|p9= '''visibleIn3D''': [[Boolean]] - (Optional, default [[false]]) true to make task always visible in 3D


| [[Boolean]] |RETURNVALUE=
|r1= [[Boolean]]
____________________________________________________________________________________________


|x1= <code><nowiki>[</nowiki>[[civilian]], ["task1"], ["Do this and you get a cookie", "Earn Cookie", "cookiemarker"], [0,0,0] ,1, 2, [[true]]] [[call]] [[BIS_fnc_taskCreate]];</code> |Example1=
|x1= <sqf>[civilian, "task1", ["Do this and you get a cookie", "Earn Cookie", "cookiemarker"], [0,0,0], "ASSIGNED", 2, true] call BIS_fnc_taskCreate;</sqf>


|x2= <code><nowiki>[</nowiki>[[west]], ["task2"], ["Good luck finding this cookie", "Find Cookie", "cookiemarker2"], [[objNull]], 1, 3, [[true]]] [[call]] [[BIS_fnc_taskCreate]]; {{cc|Task without a map location}}</code> |Example2=
|x2= <sqf>
[west, "parentTask", ["This is the parent task.", "Parent task", "cookiemarker2"], objNull, 1, 3, true] call BIS_fnc_taskCreate;
[west, ["subTask", "parentTask"], ["This is the subTask.", "subTask", "cookiemarker2"], objNull, 1, 3, true] call BIS_fnc_taskCreate;
</sqf>


|x3= <code>
|x3= in [[Description.ext]]
//description.ext//
<syntaxhighlight lang="cpp">
class CfgTaskTypes  
class CfgTaskTypes
{  
{
class my_CfgTaskType  
class my_CfgTaskType
{  
{
    displayname = "Tank";
displayname = "Tank";
      icon = "Tank_MCO.paa";
icon = "Tank_MCO.paa";
      icon3D = "Tank_MCO.paa";
icon3D = "Tank_MCO.paa";
};
};
};  
};
//calling the function//
</syntaxhighlight>
SQF:
<sqf>[east, ["taskType_"], ["Setting taskType", "The simple way", "marker2"], objNull, 1, 3, true, "my_CfgTaskType"] call BIS_fnc_taskCreate; // task with a custom icon</sqf>


<nowiki>[</nowiki>[[east]], ["taskType_"], ["Setting taskType", "The simple way", "marker2"], [[objNull]], 1, 3, [[true]], "my_CfgTaskType"] [[call]] [[BIS_fnc_taskCreate]]; {{cc|Task with a custom icon}}</code> |Example3=
|x4= in [[Stringtable.xml]]
____________________________________________________________________________________________
<syntaxhighlight lang="xml">
<Key ID="STR_CITY_TASK">
<English>Clear %1 of enemies</English>
<!-- more languages -->
</Key>
</syntaxhighlight>


| [[:Category:Function Group: Tasks|Task Functions]] [[Arma 3 Task Framework]] |SEEALSO=
SQF:
<sqf>
[
_side,
_taskID,
[
// format array, string to be localised, parameters for format %1, %2 ...
[ "STR_CITY_TASK", _cityName ],
[ "STR_CITY_TASK", _cityName ],
""
]
] call BIS_fnc_taskCreate;</sqf>
 
|seealso= [[Arma 3: Task Framework]]
}}
}}


<h3 style="display:none">Notes</h3>
{{Note
<dl class="command_description">
|user= Lou Montana
<!-- Note Section BEGIN -->
|timestamp= 20180202131500
 
|text= You can define a [[Description.ext#CfgTaskDescriptions|CfgTaskDescriptions]] part in [[Description.ext|description.ext]], such as:
<!-- Note Section END -->
<syntaxhighlight lang="cpp">
</dl>
class CfgTaskDescriptions
 
<h3 style="display:none">Bottom Section</h3>
[[Category:Function Group: Tasks|{{uc:taskCreate}}]]
[[Category:Functions|{{uc:taskCreate}}]]
[[Category:{{Name|arma3}}: Functions|{{uc:taskCreate}}]]
 
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on February 2, 2018 - 13:15 (UTC)</dd>
<dt class="note">[[User:Lou Montana|Lou Montana]]</dt>
<dd class="note">
You can define a [[Description.ext#CfgTaskDescriptions|CfgTaskDescriptions]] part in [[description.ext]], such as:
<syntaxhighlight lang="cpp">class CfgTaskDescriptions
{
{
class myTask
class myTask
{
{
title = $STR_MyTaskTitle;
title = "$STR_MyTaskTitle";
description = $STR_MyTaskDescription;
description = "$STR_MyTaskDescription";
};
};
};</syntaxhighlight>
};
</syntaxhighlight>
This should allow tasks to be localised for every player in MP '''if created locally'''.
This should allow tasks to be localised for every player in MP '''if created locally'''.
You can use "myTask" as ''description'' (3<sup>rd</sup>) parameter.
You can use "myTask" as ''description'' (3<sup>rd</sup>) parameter.
</dd>
{{Feature|important|For a proper localisation everywhere, see [[User:Hypoxic125|Hypoxic125]]'s note below.}}
</dl>
}}
<!-- DISCONTINUE Notes -->
 
{{Note
|user= Hypoxic125
|timestamp= 20221113041319
|text= Example of Correct Localization Setup Using CfgTaskDescriptions
<syntaxhighlight lang="cpp">
class CfgTaskDescriptions
{
class hyp_infiltrate
{
title = "STR_HYP_TASKS_INFILTRATE_TITLE";
description = "STR_HYP_TASKS_INFILTRATE_DESCRIPTION";
// requires stringtable key - NOT localized string
// note the lack of "$" before the stringtable key - if "$" is included, languages will be incorrect
};
};
</syntaxhighlight>
<sqf>
// Server Execution
[east, "infiltrate", "hyp_infiltrate", objNull, "ASSIGNED", -1, true, "MOVE", false] call BIS_fnc_taskCreate;
</sqf>
}}

Latest revision as of 16:21, 15 October 2024

Hover & click on the images for description

Description

Description:
Create a task.
Execution:
call
Groups:
Tasks

Syntax

Syntax:
[owner, taskID, description, destination, state, priority, showNotification, type, visibleIn3D] call BIS_fnc_taskCreate
Parameters:
owner: Task owner(s)
  • Boolean - true to set task of all playable units
  • Object - set task of a specific object
  • Group - set tasks of all objects in the group
  • Side - set tasks of all objects of the given side
  • Array - collection of above types
taskID:
  • String - Task ID
  • Array - In the format of [task ID, parent task ID]
description:
  • Array - Task description in the format ["description", "title", "marker"] - "marker" is depreciated, functionally does nothing
    • Description and Title can also be a format array [ "Text", var1, var2, ... ] where Text will be localized and then formatted per client, see Example 4
  • String - CfgTaskDescriptions class name, if empty string is used then CfgTaskDescriptions is searched for a class matching the tasks TaskID
destination (Optional): Task destination
state: (Optional, default "CREATED") task state. Can be:
  • String - can be one of following:
    • "CREATED"
    • "ASSIGNED"
    • "AUTOASSIGNED" ("ASSIGNED" when no task is assigned yet, otherwise "CREATED")
    • "SUCCEEDED"
    • "FAILED"
    • "CANCELED"
  • Boolean - true to set the task as current
  • Number
priority: Number - (Optional) priority. When the current task is completed, the system selects the one with the largest priority >= 0. To avoid auto assignment of that task, give it a priority of -1.
showNotification: Boolean - (Optional, default true) true to show notification, false to disable it
type: String - (Optional, default "") vanilla or custom task type; if not defined, empty (no) type is used
visibleIn3D: Boolean - (Optional, default false) true to make task always visible in 3D
Return Value:
Boolean

Examples

Example 1:
[civilian, "task1", ["Do this and you get a cookie", "Earn Cookie", "cookiemarker"], [0,0,0], "ASSIGNED", 2, true] call BIS_fnc_taskCreate;
Example 2:
[west, "parentTask", ["This is the parent task.", "Parent task", "cookiemarker2"], objNull, 1, 3, true] call BIS_fnc_taskCreate; [west, ["subTask", "parentTask"], ["This is the subTask.", "subTask", "cookiemarker2"], objNull, 1, 3, true] call BIS_fnc_taskCreate;
Example 3:
in Description.ext
class CfgTaskTypes
{
	class my_CfgTaskType
	{
		displayname = "Tank";
		icon = "Tank_MCO.paa";
		icon3D = "Tank_MCO.paa";
	};
};

SQF:

[east, ["taskType_"], ["Setting taskType", "The simple way", "marker2"], objNull, 1, 3, true, "my_CfgTaskType"] call BIS_fnc_taskCreate; // task with a custom icon
Example 4:
in Stringtable.xml
<Key ID="STR_CITY_TASK">
	<English>Clear %1 of enemies</English>
	<!-- more languages -->
</Key>

SQF:

[ _side, _taskID, [ // format array, string to be localised, parameters for format %1, %2 ... [ "STR_CITY_TASK", _cityName ], [ "STR_CITY_TASK", _cityName ], "" ] ] call BIS_fnc_taskCreate;

Additional Information

See also:
Arma 3: Task Framework

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Lou Montana - c
Posted on Feb 02, 2018 - 13:15 (UTC)
You can define a CfgTaskDescriptions part in description.ext, such as:
class CfgTaskDescriptions
{
	class myTask
	{
		title = "$STR_MyTaskTitle";
		description = "$STR_MyTaskDescription";
	};
};

This should allow tasks to be localised for every player in MP if created locally. You can use "myTask" as description (3rd) parameter.

For a proper localisation everywhere, see Hypoxic125's note below.
Hypoxic125 - c
Posted on Nov 13, 2022 - 04:13 (UTC)
Example of Correct Localization Setup Using CfgTaskDescriptions
class CfgTaskDescriptions
{
	class hyp_infiltrate
	{
		title = "STR_HYP_TASKS_INFILTRATE_TITLE";
		description = "STR_HYP_TASKS_INFILTRATE_DESCRIPTION";
		// requires stringtable key - NOT localized string
		// note the lack of "$" before the stringtable key - if "$" is included, languages will be incorrect
	};
};

// Server Execution [east, "infiltrate", "hyp_infiltrate", objNull, "ASSIGNED", -1, true, "MOVE", false] call BIS_fnc_taskCreate;