BIS fnc spawnGroup: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (template:command argument fix)
m (Fix games)
(37 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Function|=
{{RV|type=function
____________________________________________________________________________________________


| arma2 |=
|game1= arma2
|1.00|=
|version1= 1.00


|game2= TKOH |=
|game2= arma2oa
|version2= 1.00 |=
|version2= 1.50


|arg= |MPARGUMENTS=  
|game3= tkoh
|version3= 1.00


|eff= |MPEFFECTS=  
|game4= arma3
____________________________________________________________________________________________
|version4= 0.50


| Function which handles the spawning of a dynamic group of characters.  The composition of the [[group]] can be passed to the function.  Alternatively a number can be passed and the function will spawn that amount of characters with a random type.
|gr1= Object Manipulation


A side's Center must have been created before a group may be spawned.  Either by using [[createCenter]] or an editor placed (0% Probability of Presence is fine) unit of the appropriate side.
|arg=


|=
|eff=
____________________________________________________________________________________________


| [position, side, character details, ''relative positions, list of ranks, skill range, ammo count range, randomization controls, azimuth''] call '''BIS_fnc_spawnGroup''' |=
|descr= Function which handles the spawning of a dynamic group of characters.  The composition of the [[group]] can be passed to the function.  Alternatively a number can be passed and the function will spawn that amount of characters with a random type.


|p1= position - group's starting [[position]] ([[Array]]) |=
{{Feature | Informative | '''Before {{arma3}}''' a side's Center must have been created before a group may be spawned either by using [[createCenter]] or an editor placed (0% Probability of Presence is fine) unit of the appropriate side.}}


|p2= side - group's [[Side]] ([[Side]]) |=
|s1=[position, side, toSpawn, relPositions, ranks, skillRange, ammoRange, randomControls, azimuth, precisePos, maxVehicles] call [[BIS_fnc_spawnGroup]]


|p3= character details - Can be three different types: a list of character types ([[Array]]), an amount of characters to spawn ([[Number]]) or a [[CfgGroups]] entry ([[Config]]) |=
|p1= position: [[Position]] - group's starting position


|p4= (optional) a list of relative positions ([[Array]]) |=
|p2= side: [[Side]] - group's side


|p5= (optional) a list of ranks ([[Array]]) |=
|p3= toSpawn - Can be one of:
* [[Array]] - list of character types
* [[Number]] - amount of characters to spawn
* [[Config]] - [[CfgGroups]] entry


|p6= (optional) skill range ([[Array]]) |=
|p4= relPositions: [[Array]] of [[Position]]s (Optional, default []) a list of relative positions


|p7= (optional) ammunition count range ([[Array]]) |=
|p5= ranks: [[Array]] of [[String]]s/[[Number]]s - (Optional, default []) ranks (see [[BIS_fnc_setRank]]) - '''must''' be same size as ''toSpawn''<nowiki/>'s array


|p8= (optional) randomization controls ([[Array]]) 0: amount of mandatory units ([[Number]]) 1: spawn chance for remaining units ([[Number]]) |=
|p6= skillRange: [[Array]] of [[Number]]s - (Optional, default []) skill range format [min, max]


|p9= (optional) azimuth/[[getDir|Direction]] ([[Number]]) |=
|p7= ammoRange: [[Array]] of [[Number]]s - (Optional, default []) ammunition range (0..1) format [min, max]


|([[Group]]) |= Return value
|p8= randomControls: [[Array]] of [[Number]]s - (Optional, default [-1, 1]) to format [minUnits, chance]:
* minUnits: [[Number]] - (Optional, default -1) amount of mandatory units
* chance: [[Number]] - (Optional, default -1) spawn chance for remaining units (0..1)


|x1= Spawn five random EAST units at aPos:
|p9= azimuth: [[Number]] - (Optional, default 0) azimuth/[[direction]]
<code>[ [[getPos]] aPos, EAST, 5] [[call]] [[BIS_fnc_spawnGroup]]</code>|EXAMPLE1=
 
|p10= precisePos: [[Boolean]] - (Optional, default [[true]]) forces precise position placement
 
|p11= maxVehicles: [[Number]] - (Optional, default 10e10) vehicle number limit
 
|r1= [[Group]]
 
|x1= Spawn five random EAST units at aPosition:
<code>[<nowiki/>[[getPos]] aPosition, [[east]], 5] [[call]] [[BIS_fnc_spawnGroup]];</code>


|x2= Spawn a Stryker MGS Platoon at marker "tankSpawn":
|x2= Spawn a Stryker MGS Platoon at marker "tankSpawn":
<code>[ [[getMarkerPos]] "tankSpawn", [[side]] [[player]], ([[configFile]] >> "CfgGroups" >> "West" >> "BIS_US" >> "Armored" >> "US_MGSPlatoon")] [[call]] [[BIS_fnc_spawnGroup]]</code>|EXAMPLE2=
<code>[<nowiki/>[[getMarkerPos]] "tankSpawn", [[side]] [[player]], ([[configFile]] >> "CfgGroups" >> "West" >> "BIS_US" >> "Armored" >> "US_MGSPlatoon")] [[call]] [[BIS_fnc_spawnGroup]];</code>


|x3= Spawn a TK Militia Medic and Soldier at aPos facing south:
|x3= Spawn a TK Militia Medic and Soldier at aPos facing south:
<code>[ [[getPos]] aPos, [[EAST]], ["TK_INS_Bonesetter_EP1", "TK_INS_Soldier_2_EP1"],[],[],[],[],[],180] [[call]] [[BIS_fnc_spawnGroup]]</code>|EXAMPLE3=
<code>[<nowiki/>[[getPos]] aPos, [[east]], ["TK_INS_Bonesetter_EP1", "TK_INS_Soldier_2_EP1"],[],[],[],[],[],180] [[call]] [[BIS_fnc_spawnGroup]]</code>
__________
 
| [[ArmA_2:_CfgVehicles | Arma 2 CfgVehicles]] |SEEALSO=


| |MPBEHAVIOUR=  
|seealso= [[:Category:CfgVehicles]] [[Arma 2: CfgVehicles]] [[Arma 3 Assets]]
____________________________________________________________________________________________
}}
}}
<h3 style='display:none'>Bottom Section</h3>


<dl class="command_description">
<dl class="command_description">
</dl>
[[Category:Function Group: Spawning|{{uc:spawnGroup}}]]
[[Category:Functions|{{uc:spawnGroup}}]]
[[Category:{{Name|arma2}}: Functions|{{uc:spawnGroup}}]]
[[Category:{{Name|arma2oa}}: Functions|{{uc:spawnGroup}}]]
[[Category:{{Name|tkoh}}: Functions|{{uc:spawnGroup}}]]
[[Category:{{Name|arma3}}: Functions|{{uc:spawnGroup}}]]


<!-- CONTINUE Notes -->
<dt></dt>
<dl class="command_description">
<dd class="notedate">Posted on August 23, 2016 - 02:42 (UTC)</dd>
<dd class="notedate">Posted on August 23, 2016 - 02:42 (UTC)</dd>
<dt class="note">[[User:Snake Plissken|Snake Plissken]]</dt>
<dt class="note">[[User:Snake Plissken|Snake Plissken]]</dt>
<dd class="note">
<dd class="note">
Factions are represented by the letters<br>
Sides are as follow:
<br>WEST = BLUFOR
* [[west]]/[[blufor]] = BLUFOR
<br>EAST = OPFOR
* [[east]]/[[opfor]] = OPFOR
<br>GUER = INDEPENDENT
* [[resistance]]/[[independent]] = INDEPENDENT
<br>CIV = CIVIL.<br>
* [[civilian]] = CIVILIAN.


<br>To spawn one BLUFOR group, the command be
To spawn one BLUFOR group ("MARK1" is the name given to a map marker):
<br>"MARK1" is the name given to the marking placed on the map, where the group will appear.
<code>Group_Name_Here = [getMarkerPos "MARK1", WEST, ["B_G_Soldier_A_F", "B_G_Soldier_F", "B_G_Soldier_AR_F", "B_G_Soldier_LAT_F"]] call BIS_fnc_spawnGroup;</code>
<code>Group_Name_Here = [getMarkerPos "MARK1", WEST, ["B_G_Soldier_A_F", "B_G_Soldier_F", "B_G_Soldier_AR_F", "B_G_Soldier_LAT_F"]] call BIS_fnc_spawnGroup; </code>


<br>Or a random group OPFOR of seven units
Or a random group OPFOR of seven units
<code>Group_Name_Here= [getMarkerPos "MARK1", EAST, 7 ] call BIS_fnc_spawnGroup; </code>
<code>Group_Name_Here= [getMarkerPos "MARK1", EAST, 7] call BIS_fnc_spawnGroup;</code>


<br>But to spawn an independent group, is not using "GUER" but the name "INDEPENDENT"
an independent group:
<code>Group_Name_Here = [getMarkerPos "MARK1", INDEPENDENT, ["I_G_Soldier_A_F", "I_G_Soldier_F", "I_G_Soldier_AR_F", "I_G_Soldier_LAT_F"]] call BIS_fnc_spawnGroup;</code>
<code>Group_Name_Here = [getMarkerPos "MARK1", INDEPENDENT, ["I_G_Soldier_A_F", "I_G_Soldier_F", "I_G_Soldier_AR_F", "I_G_Soldier_LAT_F"]] call BIS_fnc_spawnGroup;</code>
<br>I can not say that the correct would be to put the name "GUER" as in other factions, or is this an error for a correction future.
</dd>
</dd>
</dl>
<!-- DISCONTINUE Notes -->


<!-- CONTINUE Notes -->
<dt><dt>
<dl class="command_description">
<dd class="notedate">Posted on August 2, 2017 - 19:06 (UTC)</dd>
<dd class="notedate">Posted on August 2, 2017 - 19:06 (UTC)</dd>
<dt class="note">[[User:Cheitan|Cheitan]]</dt>
<dt class="note">[[User:Cheitan|Cheitan]]</dt>
<dd class="note">
<dd class="note">
When using this function for making a dynamic AI spawn, pay attention to the fact that none of the created groups will be marked for auto-deletion when the group become empty (all members dead). It means that it can be very easy to hit the 144 (288 for A3) max groups per side limitation, implying that no more AI or group can be created afterwards. To avoid this issue on ArmA 3, don't forget to use [[deleteGroupWhenEmpty]] command in your script.
When using this function for making a dynamic AI spawn, pay attention to the fact that none of the created groups will be marked for auto-deletion when the group become empty (all members dead). It means that it can be very easy to hit the 144 (288 for A3) max groups per side limitation, implying that no more AI or group can be created afterwards. To avoid this issue on Arma 3, don't forget to use [[deleteGroupWhenEmpty]] command in your script.
</dd>
</dd>
</dl>
<!-- DISCONTINUE Notes -->


<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on October 15, 2018 - 21:59 (UTC)</dd>
<dt class="note">[[User:Pierre MGI|Pierre MGI]]</dt>
<dd class="note">
There are two parameters more:<br>
  _this select 9: (optional) force precise position (Bool, default: true).  // important: for spawning vehicles without collision, set it to false<br>
  _this select 10: (optional) max. number of vehicles (Number, default: 10e10).<br>
</dd>
</dl>
</dl>
<!-- DISCONTINUE Notes -->

Revision as of 01:14, 14 June 2021

Hover & click on the images for description

Description

Description:
Function which handles the spawning of a dynamic group of characters. The composition of the group can be passed to the function. Alternatively a number can be passed and the function will spawn that amount of characters with a random type.
Before Arma 3 a side's Center must have been created before a group may be spawned either by using createCenter or an editor placed (0% Probability of Presence is fine) unit of the appropriate side.
Execution:
call
Groups:
Object Manipulation

Syntax

Syntax:
[position, side, toSpawn, relPositions, ranks, skillRange, ammoRange, randomControls, azimuth, precisePos, maxVehicles] call BIS_fnc_spawnGroup
Parameters:
position: Position - group's starting position
side: Side - group's side
toSpawn - Can be one of:
relPositions: Array of Positions (Optional, default []) a list of relative positions
ranks: Array of Strings/Numbers - (Optional, default []) ranks (see BIS_fnc_setRank) - must be same size as toSpawn's array
skillRange: Array of Numbers - (Optional, default []) skill range format [min, max]
ammoRange: Array of Numbers - (Optional, default []) ammunition range (0..1) format [min, max]
randomControls: Array of Numbers - (Optional, default [-1, 1]) to format [minUnits, chance]:
  • minUnits: Number - (Optional, default -1) amount of mandatory units
  • chance: Number - (Optional, default -1) spawn chance for remaining units (0..1)
azimuth: Number - (Optional, default 0) azimuth/direction
precisePos: Boolean - (Optional, default true) forces precise position placement
maxVehicles: Number - (Optional, default 10e10) vehicle number limit
Return Value:
Group

Examples

Example 1:
Spawn five random EAST units at aPosition: [getPos aPosition, east, 5] call BIS_fnc_spawnGroup;
Example 2:
Spawn a Stryker MGS Platoon at marker "tankSpawn": [getMarkerPos "tankSpawn", side player, (configFile >> "CfgGroups" >> "West" >> "BIS_US" >> "Armored" >> "US_MGSPlatoon")] call BIS_fnc_spawnGroup;
Example 3:
Spawn a TK Militia Medic and Soldier at aPos facing south: [getPos aPos, east, ["TK_INS_Bonesetter_EP1", "TK_INS_Soldier_2_EP1"],[],[],[],[],[],180] call BIS_fnc_spawnGroup

Additional Information

See also:
Category:CfgVehicles Arma 2: CfgVehicles Arma 3 Assets

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 August 23, 2016 - 02:42 (UTC)
Snake Plissken
Sides are as follow: To spawn one BLUFOR group ("MARK1" is the name given to a map marker): Group_Name_Here = [getMarkerPos "MARK1", WEST, ["B_G_Soldier_A_F", "B_G_Soldier_F", "B_G_Soldier_AR_F", "B_G_Soldier_LAT_F"]] call BIS_fnc_spawnGroup; Or a random group OPFOR of seven units Group_Name_Here= [getMarkerPos "MARK1", EAST, 7] call BIS_fnc_spawnGroup; an independent group: Group_Name_Here = [getMarkerPos "MARK1", INDEPENDENT, ["I_G_Soldier_A_F", "I_G_Soldier_F", "I_G_Soldier_AR_F", "I_G_Soldier_LAT_F"]] call BIS_fnc_spawnGroup;
Posted on August 2, 2017 - 19:06 (UTC)
Cheitan
When using this function for making a dynamic AI spawn, pay attention to the fact that none of the created groups will be marked for auto-deletion when the group become empty (all members dead). It means that it can be very easy to hit the 144 (288 for A3) max groups per side limitation, implying that no more AI or group can be created afterwards. To avoid this issue on Arma 3, don't forget to use deleteGroupWhenEmpty command in your script.