createVehicle: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "|PARAMETER4= |p25=" to "|PARAMETER24= |p25=")
(Fix Category:Pages using duplicate arguments in template calls and extensive and too-specific description)
Line 9: Line 9:
____________________________________________________________________________________________
____________________________________________________________________________________________


| Creates an empty object of given classname type (See [[Arma 3 Assets]] or [[createVehicle/vehicles]]). Cannot be used to create objects of type <tt>"Logic"</tt>, use [[createUnit]] command for that.
| Creates an empty object of given classname type.
<br>For a class reference from older games see [[:Category:ArmA Classes|Classes]].<br><br>
See [[Arma 3 Assets]] / [[createVehicle/vehicles]], or [[Category:CfgVehicles]] for earlier games.
<u>Some special and 'Scripted' vehicle classes:</u>
* <tt>"DemoCharge_Remote_Ammo_Scripted"</tt> - same as DemoCharge_Remote_Ammo but will explode when destroyed or [[setDamage]] 1;
* <tt>"SatchelCharge_Remote_Ammo_Scripted"</tt> - same as SatchelCharge_Remote_Ammo but will explode when destroyed or [[setDamage]] 1;
* <tt>"ClaymoreDirectionalMine_Remote_Ammo_Scripted"</tt> -  same as ClaymoreDirectionalMine_Remote_Ammo but will explode when destroyed or [[setDamage]] 1;
* <tt>"GroundWeaponHolder_Scripted"</tt> - same as GroundWeaponHolder but will not be auto-deleted when empty
* <tt>"WeaponHolderSimulated_Scripted"</tt> - same as WeaponHolderSimulated but will not be auto-deleted when empty
* <tt>"Weapon_Empty"</tt> - a special weaponholder that would display only a single weapon, even if the weaponholder also contains magazines for this weapon. Will not auto-delete when empty.


<u>NOTE</u>: When weaponholder is not auto-deleted by design (as above), it is up to the mission maker to clear the map of these weaponholders.  
{{Informative | For objects of type <tt>"Logic"</tt> use [[createUnit]] instead.}}


<br><br>'''Randomization:'''<br>
{{Feature arma3 | To avoid vehicle randomisation in {{arma3}}, set the ''BIS_enableRandomization'' variable immediately after creating the vehicle:
In Arma 3 many vehicles will get randomized in appearance by default in order to add some variety to the game. It is possible to override this default behavior by setting ''BIS_enableRandomization'' variable to [[false]] in the vehicle namespace:
<code>[[private]] _vehicle {{=}} "C_Offroad_01_F" [[createVehicle]] [[position]] [[player]];
<code>_veh <nowiki>=</nowiki> "C_Offroad_01_F" [[createVehicle]] [[position]] [[player]];
_vehicle [[setVariable]] ["BIS_enableRandomization", [[false]]];</code>
[_veh, [[true]], [[true]], [[true]]] call bis_fnc_initVehicle;</code>
Check [[Vehicle Customization (VhC)]] page for more information and settings.}} |DESCRIPTION=
or
<code>[this, [[true]], [[true]], [[true]]] call bis_fnc_initVehicle;</code>
if done in mission editor init field.<br><br>
Check [[Vehicle Customization (VhC)]] page for more info about the parameters. |DESCRIPTION=
____________________________________________________________________________________________
____________________________________________________________________________________________


| type '''createVehicle''' position |SYNTAX=
| type [[createVehicle]] position |SYNTAX=


|p1= type: [[String]] - vehicle/object className |PARAMETER1=
|p1= type: [[String]] - vehicle/object className |PARAMETER1=


|p2= position: [[Position]] - Desired placement position. If the exact position is occupied, nearest empty position is used.
|p2= position: [[Position]] - Desired placement position. If the exact position is occupied, nearest empty position is used. |PARAMETER2=
|PARAMETER2=


| [[Object]] |RETURNVALUE=
| [[Object]] |RETURNVALUE=
Line 42: Line 30:




| s2= '''createVehicle''' [type, position, markers, placement, special] |SYNTAX2=
|s2= [[createVehicle]] [type, position, markers, placement, special] |SYNTAX2=


|p21= [type, position, markers, placement, special]: [[Array]] |PARAMETER21=
|p21= [type, position, markers, placement, special]: [[Array]] |PARAMETER21=
Line 48: Line 36:
|p22= type: [[String]] - vehicle/object className |PARAMETER22=
|p22= type: [[String]] - vehicle/object className |PARAMETER22=


|p23= position: [[PositionATL]] ([[PositionAGL]] if boat or amphibious), [[Position2D]], or [[Object]] - Desired placement position |PARAMETER23=
|p23= position: [[PositionATL]] ([[PositionAGL]] if boat or amphibious), [[Position2D]], or [[Object]] - desired placement position |PARAMETER23=


|p24= markers (Optional): [[Array]] - If the markers array contains any markers, the position is randomly picked from array of given markers plus desired placement position. If any of the markers were given z coordinate with [[setMarkerPos]], the vehicle will also be created at given z coordinate. Default: []|PARAMETER24=
|p24= markers: [[Array]] - (Optional, default []) if the markers array contains any markers, the position is randomly picked from array of given markers plus desired placement position. If any of the markers were given z coordinate with [[setMarkerPos]], the vehicle will also be created at given z coordinate. |PARAMETER24=


|p25= placement (Optional): [[Number]] - The vehicle is placed inside a circle with given position as center and placement as its radius. Default: 0|PARAMETER25=
|p25= placement: [[Number]] - (Optional, default 0) the vehicle is placed inside a circle with given position as center and placement as its radius. |PARAMETER25=


|p26= special (Optional): [[String]] - Could be one of the following:  
|p26= special): [[String]] - (Optional, default "NONE") can be one of the following:  
* <tt>"NONE"</tt> - will look for suitable empty position near given position (subject to other placement params) before placing vehicle there.  
* <tt>"NONE"</tt> - will look for suitable empty position near given position (subject to other placement params) before placing vehicle there.  
* <tt>"CAN_COLLIDE"</tt> places vehicle at given position (subject to other placement params), without checking if others objects can cross its 3D model.  
* <tt>"CAN_COLLIDE"</tt> - places vehicle at given position (subject to other placement params), without checking if others objects can cross its 3D model.  
* <tt>"FLY"</tt> - if vehicle is capable of flying and has crew, it will be made airborne at default height.  
* <tt>"FLY"</tt> - if vehicle is capable of flying and has crew, it will be made airborne at default height.  
If ''special'' is "" or not specified, default <tt>"NONE"</tt> is used. |PARAMETER6=
If ''special'' is "" or not specified, default <tt>"NONE"</tt> is used. |PARAMETER6=


| r2= [[Object]] - created vehicle or [[objNull]] if failed |RETURNVALUE=
|r2= [[Object]] - created vehicle or [[objNull]] if failed |RETURNVALUE2=
____________________________________________________________________________________________
____________________________________________________________________________________________
   
   
|x1= <code>_jeep = "Jeep" [[createVehicle]] [[position]] [[player]];</code> |EXAMPLE1=
|x1= <code>_jeep = "Jeep" [[createVehicle]] [[position]] [[player]];</code> |EXAMPLE1=
|x2= <code>_heli = "AH1Z" [[createVehicle]] [[getMarkerPos]] "hspawn";</code> |EXAMPLE2=
|x2= <code>_heli = "AH1Z" [[createVehicle]] [[getMarkerPos]] "hspawn";</code> |EXAMPLE2=
|x3= <code>_veh = [[createVehicle]] ["ah1w", [[position]] [[player]], [], 0, "FLY"];</code> |EXAMPLE3=
|x3= <code>_veh = [[createVehicle]] ["ah1w", [[position]] [[player]], [], 0, "FLY"];</code> |EXAMPLE3=
|x4 = <code>_veh = [[createVehicle]] ["2S6M_Tunguska", [[getMarkerPos]] "marker1", ["marker2","marker3"], 0, "NONE"];</code> |EXAMPLE4=
 
|x4 = <code>_veh = [[createVehicle]] ["2S6M_Tunguska", [[getMarkerPos]] "marker1", ["marker2", "marker3"], 0, "NONE"];</code> |EXAMPLE4=
 
|x5= Objects such as
|x5= Objects such as
* test_EmptyObjectForBubbles
* "test_EmptyObjectForBubbles"
* test_EmptyObjectForFireBig
* "test_EmptyObjectForFireBig"
* test_EmptyObjectForSmoke
* "test_EmptyObjectForSmoke"
create additional emitters, which are stored in "effects" variable on the object. Since Arma 3 v1.71 these emitters are automatically deleted when object is deleted
create additional emitters, which are stored in "effects" variable on the object. Since Arma 3 v1.71 these emitters are automatically deleted when object is deleted
<code>[] [[spawn]]  
<code>[] [[spawn]]
{
{
_fire = "test_EmptyObjectForFireBig" [[createVehicle]] [[position]] [[player]];
[[private]] _fire = "test_EmptyObjectForFireBig" [[createVehicle]] [[position]] [[player]];
[[sleep]] 5;
[[sleep]] 5;
[[deleteVehicle]] _fire;
[[deleteVehicle]] _fire;
};</code> |EXAMPLE5=
};</code> |EXAMPLE5=
|x6=The following explosives (with ending _Scripted)  
 
* DemoCharge_Remote_Ammo_Scripted
|x6= The following explosives (ending with ''_Scripted'') can be set off by applying [[setDamage]] 1 to them for ease of scripting:
* SatchelCharge_Remote_Ammo_Scripted
* "DemoCharge_Remote_Ammo_Scripted"
* ClaymoreDirectionalMine_Remote_Ammo_Scripted
* "SatchelCharge_Remote_Ammo_Scripted"
can be set off by applying [[setDamage]] 1 to them for ease of scripting: <code>_claymore = "ClaymoreDirectionalMine_Remote_Ammo_Scripted" [[createVehicle]] [[position]] [[player]];
* "ClaymoreDirectionalMine_Remote_Ammo_Scripted"
0 = _claymore [[spawn]]  
<code>_claymore = "ClaymoreDirectionalMine_Remote_Ammo_Scripted" [[createVehicle]] [[position]] [[player]];
_claymore [[spawn]]  
{
{
[[uiSleep]] 5;
[[sleep]] 5;
_this [[setDamage]] 1;
_this [[setDamage]] 1;
};
};</code> |EXAMPLE6=
</code> |EXAMPLE6=
 
|x7= How to add inventory to objects without inventory:<code>_boxes = "Land_Pallet_MilBoxes_F" [[createVehicle]] [[position]] [[player]];
|x7= Add inventory to objects without inventory:
<code>_boxes = "Land_Pallet_MilBoxes_F" [[createVehicle]] [[position]] [[player]];
_cargo = "Supply500" [[createVehicle]] [0,0,0];
_cargo = "Supply500" [[createVehicle]] [0,0,0];
_cargo [[attachTo]] [_boxes, [0,0,0.85]];
_cargo [[attachTo]] [_boxes, [0,0,0.85]];


// optional for objects that can take damage
{{cc|optional for objects that can take damage}}
_boxes [[addEventHandler]] ["Killed",  
_boxes [[addEventHandler]] ["Killed",  
{
{
Line 101: Line 95:
}  
}  
[[forEach]] [[attachedObjects]] (_this [[select]] 0);
[[forEach]] [[attachedObjects]] (_this [[select]] 0);
}];</code>  
}];</code> |EXAMPLE7=
|EXAMPLE7=
 
|x8= Drop weapon:<code>_wh = "GroundWeaponHolder_Scripted" [[createVehicle]] [[position]] [[player]];
|x8= Drop player's weapon:
[[player]] [[action]] ["DropWeapon", _wh, [[currentWeapon]] [[player]]];</code> |EXAMPLE7=
<code>_wh = "GroundWeaponHolder_Scripted" [[createVehicle]] [[position]] [[player]];
[[player]] [[action]] ["DropWeapon", _wh, [[currentWeapon]] [[player]]];</code> |EXAMPLE8=
 
|x9= The following weapon holders (ending with ''_Scripted'') do '''not''' auto-delete when empty. It is up to the mission maker to take care of these:
* "GroundWeaponHolder_Scripted"
* "WeaponHolderSimulated_Scripted"
* "Weapon_Empty" (a special weaponholder that displays only a single weapon, even if it contains magazines for this weapon)
<code>[[private]] _weaponHolder = [[createVehicle]] ["Weapon_Empty", [[getPosATL]] [[player]], [], 0, "CAN_COLLIDE"];
_weaponHolder [[addWeaponCargo]] "arifle_Katiba_F";
[[hint]] "You have 5 seconds to grab this weapon";
[[sleep]] 5;
[[deleteVehicle]] _weaponHolder;
</code> |Example9=
____________________________________________________________________________________________
____________________________________________________________________________________________


|[[createVehicleLocal]], [[createVehicleCrew]], [[createAgent]], [[createTrigger]], [[createUnit]], [[deleteVehicle]], [[createGroup]], [[createCenter]], [[setVehiclePosition]] |SEEALSO=
|[[createVehicleLocal]], [[createVehicleCrew]], [[createAgent]], [[createTrigger]], [[createUnit]], [[deleteVehicle]], [[createGroup]], [[createCenter]], [[setVehiclePosition]] |SEEALSO=
}}
}}


[[Category:Scripting Commands|CREATEVEHICLE]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.99|CREATEVEHICLE]]
[[Category:Scripting Commands OFP 1.46|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.96|CREATEVEHICLE]]
[[Category:Scripting Commands OFP 1.96|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.46|CREATEVEHICLE]]
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA|CREATEVEHICLE]]
[[Category:Scripting Commands ArmA|{{uc:{{PAGENAME}}}}]]
[[Category:Command_Group:_Object_Manipulation|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:Command_Group:_Object_Manipulation|{{uc:{{PAGENAME}}}}]]


<h3 style="display:none">Notes</h3>
<h3 style="display:none">Notes</h3>
Line 125: Line 130:
<!-- Note Section BEGIN -->
<!-- Note Section BEGIN -->


<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on August 22, 2015 - 13:04 (UTC)</dd>
<dd class="notedate">Posted on August 22, 2015 - 13:04 (UTC)</dd>
<dt class="note">[[User:MrSanchez|MrSanchez]]</dt>
<dt class="note">[[User:MrSanchez|MrSanchez]]</dt>
<dd class="note">
<dd class="note">
GroundWeaponHolder class is automatically deleted when empty after 0.5 to 1 seconds in A3 1.48. The exact delay is random but never lower than 0.50 secs after creation. You can stop deletion by adding something (cargo) to it within 0.5 seconds.
GroundWeaponHolder class is automatically deleted when empty after 0.5 to 1 seconds in A3 1.48. The exact delay is random but never lower than 0.50 secs after creation. You can stop deletion by adding something (cargo) to it within 0.5 seconds.
</dd>


</dd>
</dl>
<!-- DISCONTINUE Notes -->
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on May 16, 2017 - 09:05 (UTC)</dd>
<dd class="notedate">Posted on May 16, 2017 - 09:05 (UTC)</dd>
<dt class="note">[[User:AgentRevolution|AgentRev]]</dt>
<dt class="note">[[User:AgentRevolution|AgentRev]]</dt>
Line 143: Line 141:
For the alternative syntax, if the vehicle has <tt>canFloat = 1;</tt> in its config class (e.g. boats and wheeled APCs), the command expects [[PositionAGL]], and otherwise always [[PositionATL]].
For the alternative syntax, if the vehicle has <tt>canFloat = 1;</tt> in its config class (e.g. boats and wheeled APCs), the command expects [[PositionAGL]], and otherwise always [[PositionATL]].
</dd>
</dd>
</dl>
<!-- DISCONTINUE Notes -->


<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on November 2, 2018 - 12:16 (UTC)</dd>
<dd class="notedate">Posted on November 2, 2018 - 12:16 (UTC)</dd>
<dt class="note">[[User:demellion|demellion]]</dt>
<dt class="note">[[User:demellion|demellion]]</dt>
Line 153: Line 147:
'''WARNING:''' Do not instigate [[createVehicle]] or [[createVehicleLocal]] within a server function executed with [[Functions_Library_(Arma_3)#Pre_and_Post_Init|preInit]] flag.<br> This will cause ''"You cannot play/edit this mission"'' for a vehicles compiled from a [[Arma_3_Startup_Parameters|-mod]] and make server skip/loop that mission init.
'''WARNING:''' Do not instigate [[createVehicle]] or [[createVehicleLocal]] within a server function executed with [[Functions_Library_(Arma_3)#Pre_and_Post_Init|preInit]] flag.<br> This will cause ''"You cannot play/edit this mission"'' for a vehicles compiled from a [[Arma_3_Startup_Parameters|-mod]] and make server skip/loop that mission init.
</dd>
</dd>
</dl>
<!-- DISCONTINUE Notes -->


<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on August 10, 2019 - 09:10 (UTC)</dd>
<dd class="notedate">Posted on August 10, 2019 - 09:10 (UTC)</dd>
<dt class="note">[[User:R3vo|R3vo]]</dt>
<dt class="note">[[User:R3vo|R3vo]]</dt>
Line 165: Line 155:
</dd>
</dd>
</dl>
</dl>
</dd>
 
</dl>
<!-- Notes Section END -->
<!-- DISCONTINUE Notes -->

Revision as of 12:52, 3 September 2019

Hover & click on the images for description

Description

Description:
Creates an empty object of given classname type. See Arma 3 Assets / createVehicle/vehicles, or for earlier games.
For objects of type "Logic" use createUnit instead.
Arma 3
To avoid vehicle randomisation in Arma 3, set the BIS_enableRandomization variable immediately after creating the vehicle:

private _vehicle = "C_Offroad_01_F" createVehicle position player; _vehicle setVariable ["BIS_enableRandomization", false];

Check Vehicle Customization (VhC) page for more information and settings.
Groups:
Uncategorised

Syntax

Syntax:
type createVehicle position
Parameters:
type: String - vehicle/object className
position: Position - Desired placement position. If the exact position is occupied, nearest empty position is used.
Return Value:
Object

Alternative Syntax

Syntax:
createVehicle [type, position, markers, placement, special]
Parameters:
[type, position, markers, placement, special]: Array
type: String - vehicle/object className
position: PositionATL (PositionAGL if boat or amphibious), Position2D, or Object - desired placement position
markers: Array - (Optional, default []) if the markers array contains any markers, the position is randomly picked from array of given markers plus desired placement position. If any of the markers were given z coordinate with setMarkerPos, the vehicle will also be created at given z coordinate.
placement: Number - (Optional, default 0) the vehicle is placed inside a circle with given position as center and placement as its radius.
special): String - (Optional, default "NONE") can be one of the following:
  • "NONE" - will look for suitable empty position near given position (subject to other placement params) before placing vehicle there.
  • "CAN_COLLIDE" - places vehicle at given position (subject to other placement params), without checking if others objects can cross its 3D model.
  • "FLY" - if vehicle is capable of flying and has crew, it will be made airborne at default height.
If special is "" or not specified, default "NONE" is used.
Return Value:
Object - created vehicle or objNull if failed

Examples

Example 1:
_jeep = "Jeep" createVehicle position player;
Example 2:
_heli = "AH1Z" createVehicle getMarkerPos "hspawn";
Example 3:
_veh = createVehicle ["ah1w", position player, [], 0, "FLY"];
Example 4:
_veh = createVehicle ["2S6M_Tunguska", getMarkerPos "marker1", ["marker2", "marker3"], 0, "NONE"];
Example 5:
Objects such as
  • "test_EmptyObjectForBubbles"
  • "test_EmptyObjectForFireBig"
  • "test_EmptyObjectForSmoke"
create additional emitters, which are stored in "effects" variable on the object. Since Arma 3 v1.71 these emitters are automatically deleted when object is deleted [] spawn { private _fire = "test_EmptyObjectForFireBig" createVehicle position player; sleep 5; deleteVehicle _fire; };
Example 6:
The following explosives (ending with _Scripted) can be set off by applying setDamage 1 to them for ease of scripting:
  • "DemoCharge_Remote_Ammo_Scripted"
  • "SatchelCharge_Remote_Ammo_Scripted"
  • "ClaymoreDirectionalMine_Remote_Ammo_Scripted"
_claymore = "ClaymoreDirectionalMine_Remote_Ammo_Scripted" createVehicle position player; _claymore spawn { sleep 5; _this setDamage 1; };
Example 7:
Add inventory to objects without inventory: _boxes = "Land_Pallet_MilBoxes_F" createVehicle position player; _cargo = "Supply500" createVehicle [0,0,0]; _cargo attachTo [_boxes, [0,0,0.85]]; // optional for objects that can take damage _boxes addEventHandler ["Killed", { { detach _x, deleteVehicle _x; } forEach attachedObjects (_this select 0); }];
Example 8:
Drop player's weapon: _wh = "GroundWeaponHolder_Scripted" createVehicle position player; player action ["DropWeapon", _wh, currentWeapon player];
Example 9:
The following weapon holders (ending with _Scripted) do not auto-delete when empty. It is up to the mission maker to take care of these:
  • "GroundWeaponHolder_Scripted"
  • "WeaponHolderSimulated_Scripted"
  • "Weapon_Empty" (a special weaponholder that displays only a single weapon, even if it contains magazines for this weapon)
private _weaponHolder = createVehicle ["Weapon_Empty", getPosATL player, [], 0, "CAN_COLLIDE"]; _weaponHolder addWeaponCargo "arifle_Katiba_F"; hint "You have 5 seconds to grab this weapon"; sleep 5; deleteVehicle _weaponHolder;

Additional Information

See also:
createVehicleLocalcreateVehicleCrewcreateAgentcreateTriggercreateUnitdeleteVehiclecreateGroupcreateCentersetVehiclePosition

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 August 22, 2015 - 13:04 (UTC)
MrSanchez
GroundWeaponHolder class is automatically deleted when empty after 0.5 to 1 seconds in A3 1.48. The exact delay is random but never lower than 0.50 secs after creation. You can stop deletion by adding something (cargo) to it within 0.5 seconds.
Posted on May 16, 2017 - 09:05 (UTC)
AgentRev
For the alternative syntax, if the vehicle has canFloat = 1; in its config class (e.g. boats and wheeled APCs), the command expects PositionAGL, and otherwise always PositionATL.
Posted on November 2, 2018 - 12:16 (UTC)
demellion
WARNING: Do not instigate createVehicle or createVehicleLocal within a server function executed with preInit flag.
This will cause "You cannot play/edit this mission" for a vehicles compiled from a -mod and make server skip/loop that mission init.
Posted on August 10, 2019 - 09:10 (UTC)
R3vo
The main syntax creates vehicles at ground level ignoring the Z in pos and is also faster than the alternativ syntax. "vehclass" createVehicle pos; This is equivalent to createVehicle ["vehclass", [pos select 0, pos select 1, 0], [], 0, "NONE"];