BIS_fnc_taskCreate

From Bohemia Interactive Community
Jump to navigation Jump to search
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 "") task type from CfgTaskTypes, if not defined, type "" is being 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;