playableUnits: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\[\[Category:[cC]ommand[_ ][gG]roup:[_ ][^|]+\|\{*uc:{{PAGENAME}*]\]" to "")
m (Text replacement - "{{Feature|Informative|" to "{{Feature|informative|")
 
(54 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command


| arma2 |Game name=
|game1= arma2
|version1= 1.00


|1.00|Game version=
|game2= arma2oa
|version2= 1.50


|gr1 = Multiplayer |GROUP1=
|game3= tkoh
|version3= 1.00


|gr2= Object Detection |GROUP2=
|game4= arma3
|version4= 0.50


| Returns a list of playable units in a multiplayer game (occupied by both AI or players), created on the following sides [[east]]/[[opfor]], [[west]]/[[blufor]], [[resistance]]/[[independent]] and [[civilian]] only. Does not contain units of [[sideLogic]].<br>
|gr1= Multiplayer
{{Informative|This command returns an empty array in Singleplayer; use [[switchableUnits]] instead.}}
{{Important|This command does not include dead players awaiting for respawn.}} |Description=


| [[playableUnits]] |Syntax=
|gr2= Object Detection


| [[Array]] |RETURNVALUE=
|descr= Returns a list of playable units in a multiplayer game (occupied by both AI or players), created on the following sides [[east]]/[[opfor]], [[west]]/[[blufor]], [[resistance]]/[[independent]] and [[civilian]] only.
Does not contain units of [[sideLogic]].
{{Feature|informative|This command returns an empty array in Singleplayer; use [[switchableUnits]] instead.}}
{{Feature|important|This command does not include dead players awaiting for respawn.}}


|s1= [[playableUnits]]


|x1= <code>{ [[_x]] [[groupChat]] "I'm a playable unit."; } [[forEach]] [[playableUnits]];</code> |EXAMPLE1=
|r1= [[Array]]
|x2= <code>_playableInGroup = [[units]] [[group]] [[player]] [[arrayIntersect]] [[playableUnits]];</code> |EXAMPLE2=
|x3= <code>_nonPlayableInGroup = [[units]] [[group]] [[player]] - [[playableUnits]];</code> |EXAMPLE3=


| [[playableSlotsNumber]], [[allPlayers]], [[allCurators]], [[allGroups]], [[allDead]], [[switchableUnits]], [[vehicles]], [[allUnitsUAV]], [[allDeadMen]], [[isPlayer]], [[playersNumber]] |SEEALSO=
|x1= <sqf>{ _x groupChat "I'm a playable unit."; } forEach playableUnits;</sqf>


| |MPBEHAVIOUR=
|x2= <sqf>_playableInGroup = units group player arrayIntersect playableUnits;</sqf>
}}
 
 
<h3 style='display:none'>Bottom Section</h3>
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
 
{{GameCategory|arma2|Scripting Commands}}
{{GameCategory|tkoh|Scripting Commands}}
{{GameCategory|arma3|Scripting Commands}}


|x3= <sqf>_nonPlayableInGroup = units group player - playableUnits;</sqf>


|seealso= [[playableSlotsNumber]] [[allPlayers]] [[allCurators]] [[allGroups]] [[allDead]] [[switchableUnits]] [[vehicles]] [[allUnitsUAV]] [[allDeadMen]] [[isPlayer]] [[playersNumber]]
}}


<h3 style='display:none'>Notes</h3>
{{Note
<dl class="command_description">
|user= DreadedEntity
<dd class="notedate">Posted on December 23, 2014 - 23:13 (UTC)</dd>
|timestamp= 20141223231300
<dt class="note">[[User:DreadedEntity|DreadedEntity]]</dt>
|text= To get a list of all player-controlled units:
<dd class="note">
<sqf>
To get a list of all player-controlled units:
_allPlayers = [];
<code>_allPlayers = [];
{
{
[[if]] ([[isPlayer]] _x) [[then]]
if (isPlayer _x) then
{
{
_allPlayers [[pushBack]] _x;
_allPlayers pushBack _x;
};
};
} [[forEach]] [[playableUnits]];</code>
} forEach playableUnits;
</sqf>
}}


<dd class="notedate">Posted on August 16, 2015 - 10:05 (UTC)
{{Note
<dt class="note">[[User:FR Starfox64|FR Starfox64]]
|user= FR Starfox64
<dd class="note">[[playableUnits]] will not return dead players, use [[allPlayers]] instead.
|timestamp= 20150816100500
|text= [[playableUnits]] will not return dead players, use [[allPlayers]] instead.
}}


<dd class="notedate">Posted on February 14, 2017 - 22:05 (UTC)
{{Note
<dt class="note">[[User:Pierre MGI|Pierre MGI]]
|user= Pierre MGI
<dd class="note">Using the Editor (multiplayer attributes) for unchecking "enable AI", or disabling AI(s) in lobby, will make [[playableUnits]] as a public variable,  updated by each JIP on disabled slot.
|timestamp= 20170214220500
|text= Using the Editor (multiplayer attributes) for unchecking "enable AI", or disabling AI(s) in lobby, will make [[playableUnits]] as a public variable,  updated by each JIP on disabled slot.
So, if all slots are disabled AI, playableUnits is same as allPlayers<br>
So, if all slots are disabled AI, playableUnits is same as allPlayers<br>
Furthermore, in this case, non-played slot (playable and disabled AI) units simply don't exist!<br>
Furthermore, in this case, non-played slot (playable and disabled AI) units simply don't exist!<br>
i.e. If you name 8 playable units: u1..u8, then 2 players in game: u3 & u6<br>
i.e. If you name 8 playable units: u1..u8, then 2 players in game: u3 & u6<br>
playableUnits will return [u3,u6], and true for  isNil "u1", isNil "u2"... until another player takes the slot.
playableUnits will return [u3,u6], and true for  isNil "u1", isNil "u2"... until another player takes the slot.
</dd>
}}
</dl>

Latest revision as of 00:24, 2 February 2024

Hover & click on the images for description

Description

Description:
Returns a list of playable units in a multiplayer game (occupied by both AI or players), created on the following sides east/opfor, west/blufor, resistance/independent and civilian only. Does not contain units of sideLogic.
This command returns an empty array in Singleplayer; use switchableUnits instead.
This command does not include dead players awaiting for respawn.
Groups:
MultiplayerObject Detection

Syntax

Syntax:
playableUnits
Return Value:
Array

Examples

Example 1:
{ _x groupChat "I'm a playable unit."; } forEach playableUnits;
Example 2:
_playableInGroup = units group player arrayIntersect playableUnits;
Example 3:
_nonPlayableInGroup = units group player - playableUnits;

Additional Information

See also:
playableSlotsNumber allPlayers allCurators allGroups allDead switchableUnits vehicles allUnitsUAV allDeadMen isPlayer playersNumber

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
DreadedEntity - c
Posted on Dec 23, 2014 - 23:13 (UTC)
To get a list of all player-controlled units:
_allPlayers = []; { if (isPlayer _x) then { _allPlayers pushBack _x; }; } forEach playableUnits;
FR Starfox64 - c
Posted on Aug 16, 2015 - 10:05 (UTC)
playableUnits will not return dead players, use allPlayers instead.
Pierre MGI - c
Posted on Feb 14, 2017 - 22:05 (UTC)
Using the Editor (multiplayer attributes) for unchecking "enable AI", or disabling AI(s) in lobby, will make playableUnits as a public variable, updated by each JIP on disabled slot. So, if all slots are disabled AI, playableUnits is same as allPlayers
Furthermore, in this case, non-played slot (playable and disabled AI) units simply don't exist!
i.e. If you name 8 playable units: u1..u8, then 2 players in game: u3 & u6
playableUnits will return [u3,u6], and true for isNil "u1", isNil "u2"... until another player takes the slot.