createSimpleTask: Difference between revisions
SilentSpike (talk | contribs) (Global effect (per note) - also kind of makes sense since you can pick who the task is for) |
Killzone Kid (talk | contribs) (effect is local, easily verified with simpleTasks command + format. see also) |
||
Line 8: | Line 8: | ||
|arg= global |= Arguments in MP | |arg= global |= Arguments in MP | ||
|eff= | |eff= local |= Effects in MP | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| Creates a new [[Task]] |= Description | | Creates a new [[Task]]. The task effect is [[local]], it will only exist on PC it was added. |= Description | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| | | [[Object]] '''createSimpleTask''' [[Array]]|= Syntax | ||
|p1= [[Object]]: Unit to add this new task |= PARAMETER1 | |p1= [[Object]]: Unit to add this new task |= PARAMETER1 | ||
Line 23: | Line 23: | ||
|x1= <code> | |x1= <code>_currentTask = [[player]] [[createSimpleTask]] ["NewTask"];</code>|= EXAMPLE1 | ||
|x2= <code> | |x2= <code>_childTask = [[player]] [[createSimpleTask]] ["ChildTask", _currentTask];</code>|= EXAMPLE2 | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| [[Tasks]], [[briefing]], [[removeSimpleTask]], [[setSimpleTaskDescription]], [[setSimpleTaskDestination]], [[setTaskState]], [[setTaskResult]], [[taskState]] |= SEEALSO | | [[Tasks]], [[simpleTasks]], [[briefing]], [[removeSimpleTask]], [[setSimpleTaskDescription]], [[setSimpleTaskDestination]], [[setTaskState]], [[setTaskResult]], [[taskState]] |= SEEALSO | ||
| |= MPBEHAVIOUR | | |= MPBEHAVIOUR | ||
Line 47: | Line 47: | ||
<dt>'''[[User:Lou Montana|Lou Montana]]''' | <dt>'''[[User:Lou Montana|Lou Montana]]''' | ||
<dd> | <dd> | ||
*The argument is global, the effect is | *The argument is global, the effect is local - if you teamrespawn/teamswitch you will have the unit tasks | ||
*The command has to be executed again for it to be applied for JIP players - no server sync | *The command has to be executed again for it to be applied for JIP players - no server sync | ||
Revision as of 21:48, 28 August 2014
Description
- Description:
- Creates a new Task. The task effect is local, it will only exist on PC it was added.
- Groups:
- Uncategorised
Syntax
- Syntax:
- Object createSimpleTask Array
- Parameters:
- Object: Unit to add this new task
- Array: ["TaskName"] or ["TaskName", taskParent]
- Return Value:
- Task - the new task
Examples
- Example 1:
_currentTask = player createSimpleTask ["NewTask"];
- Example 2:
_childTask = player createSimpleTask ["ChildTask", _currentTask];
Additional Information
- See also:
- TaskssimpleTasksbriefingremoveSimpleTasksetSimpleTaskDescriptionsetSimpleTaskDestinationsetTaskStatesetTaskResulttaskState
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
Notes
- Posted on July 15, 2009 - 07:00 (CEST)
- Lou Montana
-
- Creating child will position the new task just under the parent task.
- Creating another "normal" (parent) task will create a new line above the others. Think of it if you want ordered objectives.
- Succeeding parent task will automatically succeed childs, whatever their taskState was set to. (I.E. If a task is set as a child to another, it will be completed when its parent is complete.. no matter if the child task really was or not).
- Posted on July 02, 2011 - 11:45 (GMT+1)
- Lou Montana
-
- The argument is global, the effect is local - if you teamrespawn/teamswitch you will have the unit tasks
- The command has to be executed again for it to be applied for JIP players - no server sync
Full step by step code from beginning to end:
Now to simpleTasks
First, it's really not _that_ hard. So if you struggle with this, watch out for scripting or plain programming errors such as unnamed or misspelled variables.
Step 1: create a new simpleTask Code: A_SIMPLE_TASK = player createSimpleTask [(localize "STR_aSimpleTask")]; You may create a task at any given point in time. You just need to be aware of the fact, that you've created the task for a single unit (the player). So if you make use of teamSwitch, respawn or similiar, you need to think about how to manage this, so all of these units will have up to date tasks assigned to them. Second, it's a good practice to use a stringtable, even if you do not plan (yet) to offer translations.
Step 2: task destination Code: A_SIMPLE_TASK setSimpleTaskDestination _destination; variable/pointer-to-your-task setSimpleTaskDestination some-position. That's it.
Step 3: task description Code: A_SIMPLE_TASK setSimpleTaskDescription[
(localize "STR_aSimpleTaskLongText"), (localize "STR_aSimpleTask"), (localize "STR_aSimpleTaskWaypointLabel")
]; Again, no magic involved here. You take your task, the command setSimpleTaskDescription an pass an array with three strings in it. The first string is the long description text, the second is the name/title of the task and the last one will show up on-screen on the waypoint in cadet mode.
Step 4: set and update task states Code: A_SIMPLE_TASK setTaskState "CREATED"; And that's it. Here a minimal working example: Code: A_SIMPLE_TASK = player createSimpleTask ["simple task title"]; A_SIMPLE_TASK setSimpleTaskDestination (position player); A_SIMPLE_TASK setSimpleTaskDescription[
"simple task long description", "simple task title", "simple task waypoint label"
]; A_SIMPLE_TASK setTaskState "CREATED"; And then later in the mission: Code: A_SIMPLE_TASK setTaskState "SUCCEEDED"; If you want to keep the player in the loop about the status of tasks, you may always do this: Code: [objNull, ObjNull, A_SIMPLE_TASK, "SUCCEEDED"] execVM "CA\Modules\MP\data\scriptCommands\taskHint.sqf"; ...or write your own dialog, hintbox or what not.
Edited by B00tsy, thanks to Ruebe
Bottom Section
- Scripting Commands
- Introduced with Arma 2 version 1.00
- Arma 2: New Scripting Commands
- Arma 2: Scripting Commands
- Command Group: Uncategorised
- Scripting Commands: Local Effect
- ArmA 2: New Scripting Commands List
- Scripting Commands ArmA2
- Scripting Commands Arma 3
- Scripting Commands Take On Helicopters
- Command Group: Briefing