BIS fnc taskCreate: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "(\|p[0-9]+ *= *[^(]+\(Optional(, default[^)]*)\) )T([a-z])" to "$1t$3")
m (Fix)
 
(4 intermediate revisions by 2 users not shown)
Line 26: Line 26:
|p3= '''description''':
|p3= '''description''':
* [[Array]] - Task description in the format ["description", "title", "marker"] - "marker" is depreciated, functionally does nothing
* [[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 {{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
* [[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


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


|p8= '''type''': [[String]] - (Optional, default "") task type from [[Description.ext#CfgTaskTypes|CfgTaskTypes]], if not defined, type "" is being used
|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''': [[Boolean]] - (Optional, default [[false]]) true to make task always visible in 3D
|p9= '''visibleIn3D''': [[Boolean]] - (Optional, default [[false]]) true to make task always visible in 3D
Line 61: Line 62:
|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>
|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= <sqf>[west, "parentTask", ["This is the parent task.", "Parent task", "cookiemarker2"], objNull, 1, 3, true] call BIS_fnc_taskCreate;
|x2= <sqf>
[west, ["subTask", "parentTask"], ["This is the subTask.", "subTask", "cookiemarker2"], objNull, 1, 3, true] call BIS_fnc_taskCreate;</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= in [[Description.ext]]
|x3= in [[Description.ext]]
Line 77: Line 80:
</syntaxhighlight>
</syntaxhighlight>
SQF:
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>
<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>
 
|x4= in [[Stringtable.xml]]
<syntaxhighlight lang="xml">
<Key ID="STR_CITY_TASK">
<English>Clear %1 of enemies</English>
<!-- more languages -->
</Key>
</syntaxhighlight>
 
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]]
|seealso= [[Arma 3: Task Framework]]

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;