createUnit: Difference between revisions
Jump to navigation
Jump to search
Killzone Kid (talk | contribs) (format) |
Lou Montana (talk | contribs) (Page fix and comments cleanup) |
||
Line 1: | Line 1: | ||
{{Command|= | {{Command|Comments= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| ofp | | | ofp |Game name= | ||
|1.34| | |1.34|Game version= | ||
|eff= global | | |eff= global |Effects in MP= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| | | Create a unit of class that is defined in [[:Category:CfgVehicles|CfgVehicles]]. | ||
{{Important| <div style{{=}}"float: left; margin-right: 0.5em;">{{GVI|ofp|1.34}} {{GVI|arma|1.00}}</div> | |||
{{Important| | This command could be bugged in {{ofp}} or {{arma}} ; an additional [[join]] may solve the problem.<br /> | ||
However, some commands such as [[setUnitPos]] only work if run before the [[join]].}} |Description= | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
|group | |group [[createUnit]] [type, position, markers, placement, special] |Syntax= | ||
|p1= group: [[Group]] - Existing group new unit will join | | |p1= group: [[Group]] - Existing group new unit will join {{Important|If ''group'' doesn't exist, the unit will '''not''' be created}} |Parameter 1= | ||
|p2= [type, position, markers, placement, special]: [[Array]] | | |p2= [type, position, markers, placement, special]: [[Array]] |Parameter 2= | ||
|p3= type: [[String]] - Class name of unit to be created as per [[CfgVehicles]] | | |p3= type: [[String]] - Class name of unit to be created as per [[CfgVehicles]] |Parameter 3= | ||
|p4= position: [[Position]], [[Position2D]], [[Object]] or [[Group]] - Location unit is created at. In case of [[Group]] position of the [[group]] [[leader]] is used | | |p4= position: [[Position]], [[Position2D]], [[Object]] or [[Group]] - Location unit is created at. In case of [[Group]] position of the [[group]] [[leader]] is used |Parameter 4= | ||
|p5= markers: [[Array]] - Placement markers | | |p5= markers: [[Array]] - Placement markers |Parameter 5= | ||
|p6= placement: [[Number]] - Placement radius | | |p6= placement: [[Number]] - Placement radius |Parameter 6= | ||
|p7= special: [[String]] - Unit placement special, one of: | |p7= special: [[String]] - Unit placement special, one of: | ||
* <tt>"NONE"</tt> - The unit will be created at the first available free position nearest to given position | * <tt>"NONE"</tt> - The unit will be created at the first available free position nearest to given position | ||
* <tt>"FORM"</tt> - The unit will be created in formation around the group leader, regardless of the passed position | * <tt>"FORM"</tt> - The unit will be created in formation around the group leader, regardless of the passed position | ||
* <tt>"CAN_COLLIDE"</tt> - The unit will be created exactly at passed position | * <tt>"CAN_COLLIDE"</tt> - The unit will be created exactly at passed position | ||
* <tt>"CARGO"</tt> - The unit will be created in cargo of the group's vehicle, regardless of the passed position. If group has no vehicle or there is no cargo space available, the unit will be placed according to <tt>"NONE"</tt>. To check available cargo space use:<code>_hasCargo = _veh [[emptyPositions]] "CARGO" > 0;</code>| | * <tt>"CARGO"</tt> - The unit will be created in cargo of the group's vehicle, regardless of the passed position. If group has no vehicle or there is no cargo space available, the unit will be placed according to <tt>"NONE"</tt>. To check available cargo space use:<code>_hasCargo = _veh [[emptyPositions]] "CARGO" > 0;</code>|Parameter 7= | ||
| [[Object]] - The created unit |Return value= | |||
|s2= type [[createUnit]] [position, group, init, skill, rank] |Syntax2= | |||
| | |p21= type: [[String]] - Class name of unit to be created as per [[CfgVehicles]] |Parameter 21= | ||
|p22= [position, group, init, skill, rank]: [[Array]] |Parameter 22= | |||
|p23= position: [[Position]], [[Position2D]], [[Object]] or [[Group]] - Location unit is created at. In case of [[Group]] position of the [[group]] [[leader]] is used |Parameter 23= | |||
|p24= group: [[Group]] - Existing group new unit will join |Parameter 24= | |||
|p25= init: [[String]] - (Optional, default "") Command to be executed '''locally''' upon creation of the unit. Parameter [[this]] is set to the created unit and passed to the code. |Parameter 25= | |||
|p26= skill: [[Number]] - (Optional, default 0.5) Unit [[skill]] |Parameter 26= | |||
|p27= rank: [[String]] - (Optional, default "PRIVATE") Unit [[rank]] |Parameter 27= | |||
| | |r2= {{Warning|'''[[Nothing]]''' - This syntax does NOT return a unit reference!<br /> | ||
In order to reference this unit, you can use {{Inline code|newUnit {{=}} this}} in the ''init'' field}}|Return value 2= | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
|x1= <code>_unit = [[group]] [[player]] [[createUnit]] ["B_RangeMaster_F", [[position]] [[player]], [], 0, "FORM"];</code>|= | |x1= <code>_unit = [[group]] [[player]] [[createUnit]] ["B_RangeMaster_F", [[position]] [[player]], [], 0, "FORM"];</code>|Example 1= | ||
|x2= <code>"B_RangeMaster_F" [[createUnit]] <nowiki>[</nowiki>[[position]] [[player]], [[group]] [[player]]];</code> |= | |x2= <code>"B_RangeMaster_F" [[createUnit]] <nowiki>[</nowiki>[[position]] [[player]], [[group]] [[player]]];</code> |Example 2= | ||
|x3= <code>"B_RangeMaster_F" [[createUnit]] <nowiki>[</nowiki>[[getMarkerPos]] "barracks", _groupAlpha];</code> |= | |x3= <code>"B_RangeMaster_F" [[createUnit]] <nowiki>[</nowiki>[[getMarkerPos]] "barracks", _groupAlpha];</code> |Example 3= | ||
|x4= <code>"B_RangeMaster_F" [[createUnit]] | |x4= <code>"B_RangeMaster_F" [[createUnit]] [ | ||
[[getMarkerPos]] "marker_1", | |||
_groupAlpha, | |||
"loon1 = [[this]]; [[this]] [[addWeapon]] 'BAF_L85A2_RIS_SUSAT'", | |||
0.6, | |||
"corporal" | |||
];</code> |Example 4= | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| [[createCenter]], [[createGroup]], [[createVehicle]], [[setVehiclePosition]] | | | [[createCenter]], [[createGroup]], [[createVehicle]], [[setVehiclePosition]] |See also= | ||
}} | }} | ||
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]] | |||
[[Category:Scripting Commands OFP 1.46|{{uc:{{PAGENAME}}}}]] | |||
[[Category:Scripting Commands OFP 1.96|{{uc:{{PAGENAME}}}}]] | |||
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]] | |||
[[Category:Scripting Commands ArmA|{{uc:{{PAGENAME}}}}]] | |||
[[Category:Scripting Commands| | |||
[[Category:Scripting Commands OFP 1. | |||
[[Category:Scripting Commands OFP 1.96| | |||
[[Category:Scripting Commands OFP 1. | |||
[[Category:Scripting Commands ArmA| | |||
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]] | |||
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Command_Group:_Object_Manipulation|{{uc:{{PAGENAME}}}}]] | [[Category:Command_Group:_Object_Manipulation|{{uc:{{PAGENAME}}}}]] | ||
< | <h3 style="display:none">Notes</h3> | ||
<dl class="command_description"> | <dl class="command_description"> | ||
<!-- Note Section BEGIN --> | <!-- Note Section BEGIN --> | ||
<dd class="notedate">Posted on 27th Nov 2016 | <dd class="notedate">Posted on 27th Nov 2016 | ||
<dt class="note"> | <dt class="note">[[User:Ffur2007slx2_5|Ffur2007slx2_5]] | ||
<dd class="note"> | |||
<code> | {{GVI|arma3|1.64}} The side of the created unit by this command uses its config's side and not the side of a passed empty group created by [[createGroup]]: | ||
_grp = [[createGroup]] [[east]]; // | <code>_grp = [[createGroup]] [[east]]; | ||
[[hint]] [[str]] [[side]] _grp; {{codecomment|// EAST}} | |||
_ap = _grp [[createUnit]] [ “C_man_p_beggar_F”, [[position]] [[player]], [], 0, "FORM"]; | _ap = _grp [[createUnit]] [ “C_man_p_beggar_F”, [[position]] [[player]], [], 0, "FORM"]; | ||
// | [[hint]] [[str]] [[side]] _ap; {{codecomment|// CIV, not EAST}}</code> | ||
</code> | We can use [[join]] command or fill the _grp with entities in advance to set _ap to the desired side. | ||
We can use [[join]] command | |||
<dd class="notedate">Posted on 8th Dec 2018 | <dd class="notedate">Posted on 8th Dec 2018 | ||
<dt class="note"> | <dt class="note">[[User:oOKexOo|oOKexOo]] | ||
Since 1.86: If you want to place a module with [[createUnit]], you have to ensure that the module gets activated automatically by setting [[ | <dd class="note"> | ||
''e.g | Since {{GVI|arma3|1.86}}: If you want to place a module with [[createUnit]], you have to ensure that the module gets activated automatically by setting '''[[BIS_fnc_initModules]]_disableAutoActivation''' to [[false]], ''e.g'': | ||
<code> | <code>[[private]] _grp = [[createGroup]] [[sideLogic]]; | ||
[[private]] _grp = [[createGroup]] [[sideLogic]]; | "ModuleSmokeWhite_F" [[createUnit]] [ | ||
"ModuleSmokeWhite_F" [[createUnit]] [ [[getPos]] [[player]], _grp, "[[this]] [[setVariable]] ['BIS_fnc_initModules_disableAutoActivation', [[false]], [[true]]]; | [[getPos]] [[player]], | ||
</code> | _grp, | ||
"[[this]] [[setVariable]] ['BIS_fnc_initModules_disableAutoActivation', [[false]], [[true]]];" | |||
];</code> | |||
<!-- Note Section END --> | <!-- Note Section END --> | ||
</dl> | </dl> | ||
Revision as of 18:21, 9 January 2019
Description
- Description:
- Create a unit of class that is defined in CfgVehicles.
- Groups:
- Uncategorised
Syntax
- Syntax:
- group createUnit [type, position, markers, placement, special]
- Parameters:
- group: Group - Existing group new unit will join
- [type, position, markers, placement, special]: Array
- type: String - Class name of unit to be created as per CfgVehicles
- position: Position, Position2D, Object or Group - Location unit is created at. In case of Group position of the group leader is used
- markers: Array - Placement markers
- placement: Number - Placement radius
- special: String - Unit placement special, one of:
- "NONE" - The unit will be created at the first available free position nearest to given position
- "FORM" - The unit will be created in formation around the group leader, regardless of the passed position
- "CAN_COLLIDE" - The unit will be created exactly at passed position
- "CARGO" - The unit will be created in cargo of the group's vehicle, regardless of the passed position. If group has no vehicle or there is no cargo space available, the unit will be placed according to "NONE". To check available cargo space use:
_hasCargo = _veh emptyPositions "CARGO" > 0;
- Return Value:
- Object - The created unit
Alternative Syntax
- Syntax:
- type createUnit [position, group, init, skill, rank]
- Parameters:
- type: String - Class name of unit to be created as per CfgVehicles
- [position, group, init, skill, rank]: Array
- position: Position, Position2D, Object or Group - Location unit is created at. In case of Group position of the group leader is used
- group: Group - Existing group new unit will join
- init: String - (Optional, default "") Command to be executed locally upon creation of the unit. Parameter this is set to the created unit and passed to the code.
- skill: Number - (Optional, default 0.5) Unit skill
- rank: String - (Optional, default "PRIVATE") Unit rank
- Return Value:
Examples
- Example 1:
_unit = group player createUnit ["B_RangeMaster_F", position player, [], 0, "FORM"];
- Example 2:
"B_RangeMaster_F" createUnit [position player, group player];
- Example 3:
"B_RangeMaster_F" createUnit [getMarkerPos "barracks", _groupAlpha];
- Example 4:
"B_RangeMaster_F" createUnit [ getMarkerPos "marker_1", _groupAlpha, "loon1 = this; this addWeapon 'BAF_L85A2_RIS_SUSAT'", 0.6, "corporal" ];
Additional Information
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 27th Nov 2016
- Ffur2007slx2_5
-
1.64 The side of the created unit by this command uses its config's side and not the side of a passed empty group created by createGroup:
_grp = createGroup east; hint str side _grp; // EAST _ap = _grp createUnit [ “C_man_p_beggar_F”, position player, [], 0, "FORM"]; hint str side _ap; // CIV, not EAST
We can use join command or fill the _grp with entities in advance to set _ap to the desired side. - Posted on 8th Dec 2018
- oOKexOo
-
Since 1.86: If you want to place a module with createUnit, you have to ensure that the module gets activated automatically by setting BIS_fnc_initModules_disableAutoActivation to false, e.g:
private _grp = createGroup sideLogic; "ModuleSmokeWhite_F" createUnit [ getPos player, _grp, "this setVariable ['BIS_fnc_initModules_disableAutoActivation', false, true];" ];
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version 1.34
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- Command Group: Uncategorised
- Scripting Commands: Global Effect
- Scripting Commands OFP 1.46
- Scripting Commands OFP 1.96
- Scripting Commands OFP 1.99
- Scripting Commands ArmA
- Scripting Commands ArmA2
- Scripting Commands Take On Helicopters
- Scripting Commands Arma 3
- Command Group: Object Manipulation