BIS fnc taskCreate: Difference between revisions
Jump to navigation
Jump to search
m (added locality and note) |
Lou Montana (talk | contribs) m (Fix) |
||
(44 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{RV|type=function | ||
| arma3 | | |game1= arma3 | ||
|version1= 1.00 | |||
| | |gr1= Tasks | ||
| | |arg= global | ||
|eff= global | |||
| [owner, taskID, description, destination, state, priority, showNotification, type, visibleIn3D] call [[BIS_fnc_taskCreate]] | |descr= Create a task. | ||
|s1= [owner, taskID, description, destination, state, priority, showNotification, type, visibleIn3D] call [[BIS_fnc_taskCreate]] | |||
|p1= '''owner''': Task owner(s) | |p1= '''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 | |||
|p2= '''taskID''': | |p2= '''taskID''': | ||
* [[String]] - Task ID | |||
* [[Array]] - In the format of [task ID, parent task ID] | |||
|p3= '''description''': | |p3= '''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 {{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 | ||
* [[Object]] - Use [[objNull]] to set no position | |||
* [[Array]] - can be one of: | |||
|p5= '''state''' (Optional): | ** 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, default "CREATED") task state. Can be: | |||
* [[String]] - can be one of following: | |||
** "CREATED" | |||
** "ASSIGNED" | |||
|p6= '''priority''' | ** "AUTOASSIGNED" ("ASSIGNED" when no task is assigned yet, otherwise "CREATED") | ||
** "SUCCEEDED" | |||
** "FAILED" | |||
** "CANCELED" | |||
* [[Boolean]] - [[true]] to set the task as current | |||
* [[Number]] | |||
** 0 or less for [[false]] | |||
** > 0 as [[true]] | |||
|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. | |||
| [[Boolean]] | |p7= '''showNotification''': [[Boolean]] - (Optional, default [[true]]) true to show notification, false to disable it | ||
| | |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 | ||
| [[ | |r1= [[Boolean]] | ||
|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; | |||
[west, ["subTask", "parentTask"], ["This is the subTask.", "subTask", "cookiemarker2"], objNull, 1, 3, true] call BIS_fnc_taskCreate; | |||
</sqf> | |||
|x3= in [[Description.ext]] | |||
<syntaxhighlight lang="cpp"> | |||
class CfgTaskTypes | |||
{ | |||
class my_CfgTaskType | |||
{ | |||
displayname = "Tank"; | |||
icon = "Tank_MCO.paa"; | |||
icon3D = "Tank_MCO.paa"; | |||
}; | |||
}; | |||
</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> | |||
< | |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]] | |||
[[ | }} | ||
{{Note | |||
|user= Lou Montana | |||
|timestamp= 20180202131500 | |||
|text= You can define a [[Description.ext#CfgTaskDescriptions|CfgTaskDescriptions]] part in [[Description.ext|description.ext]], such as: | |||
<syntaxhighlight lang="cpp"> | |||
You can define a [[Description.ext#CfgTaskDescriptions|CfgTaskDescriptions]] part in [[description.ext]], such as: | class CfgTaskDescriptions | ||
<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 '' | You can use "myTask" as ''description'' (3<sup>rd</sup>) parameter. | ||
</ | {{Feature|important|For a proper localisation everywhere, see [[User:Hypoxic125|Hypoxic125]]'s note below.}} | ||
</ | }} | ||
< | |||
{{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
Description
Syntax
- Syntax:
- [owner, taskID, description, destination, state, priority, showNotification, type, visibleIn3D] call BIS_fnc_taskCreate
- Parameters:
- owner: Task owner(s)
- taskID:
- description:
- Array - Task description in the format ["description", "title", "marker"] - "marker" is depreciated, functionally does nothing
- 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:
- 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:
- Example 2:
- Example 3:
- in Description.ext
class CfgTaskTypes { class my_CfgTaskType { displayname = "Tank"; icon = "Tank_MCO.paa"; icon3D = "Tank_MCO.paa"; }; };
SQF:
- 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
- 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.
- 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 }; };