getPlayerUID: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "{{Feature arma3|" to "{{Feature|arma3|")
m (Text replacement - "\|game([0-9]) ?= (.+) \|version([0-9]) ?= (.+) " to "|game$1= $2 |version$3= $4 ")
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command
____________________________________________________________________________________________


| arma2 |Game name=
|game1= arma2
|version1= 1.02


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


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


|game4= arma3
|version4= 0.50


|gr1= Multiplayer


|arg= global |Multiplayer Arguments=
|arg= global
____________________________________________________________________________________________


| Return a UniqueID of the given unit (player).
|descr= Return a UniqueID of the given unit (player).


{{Important|Up until [[{{arma2oa}}]] v1.60, the result always consisted of a [[str|stringified]] number (see [[getPlayerUIDOld]]), but always had to be considered and processed as a [[String]].<!--
{{Feature|important|Prior to [[{{arma2oa}}]] v1.60, the result always consisted of a [[str|stringified]] number (see [[getPlayerUIDOld]]), but always had to be considered and processed as a [[String]].<!--
--> Converting it to a [[Number]] could cause precision problems, as [[Number]] cannot accurately represent integers above 16777216 (2<sup>24</sup>).<!--
--> Converting it to a [[Number]] could cause precision problems, as [[Number]] cannot accurately represent integers above 16777216 (2<sup>24</sup>).<!--
--> Moreover, games since [[{{arma2oa}}]] v1.61 provide a value that is not all-numeric.}}
--> Moreover, games since [[{{arma2oa}}]] v1.61 provide a value that is not all-numeric.}}


{{Feature|arma3|The returned string is the player's steamID64:
{{Feature|arma3|The returned string is the player's steamID64: {{ic|[[private]] _steamProfileUrl {{=}} "http://<nowiki/>steamcommunity.com/profiles/" + ([[getPlayerUID]] [[player]]);}}}}
<code>[[private]] _steamProfileUrl {{=}} "http://<nowiki/>steamcommunity.com/profiles/" + ([[getPlayerUID]] [[player]]);</code>}} |DESCRIPTION=


|pr= In some cases, the identity of certain player units might fail to propagate to other clients and the server,
|pr= In some cases, the identity of certain player units might fail to propagate to other clients and the server,
which causes [[isPlayer]] and [[getPlayerUID]] to incorrectly return <tt>[[false]]</tt> and <tt>""</tt> respectively,
which causes [[isPlayer]] and [[getPlayerUID]] to incorrectly return <tt>[[false]]</tt> and <tt>""</tt> respectively,
where the affected units are [[not]] [[local]] - see [https://github.com/michail-nikolaev/task-force-arma-3-radio/issues/1096 this bug report (GitHub)].
where the affected units are [[not]] [[local]] - see [https://github.com/michail-nikolaev/task-force-arma-3-radio/issues/1096 this bug report (GitHub)].
Therefore, beware of false negatives. |PROBLEMS=
Therefore, beware of false negatives.
____________________________________________________________________________________________


| [[getPlayerUID]] unit |SYNTAX=
|s1= [[getPlayerUID]] unit


|p1= unit: [[Object]] |PARAMETER1=
|p1= unit: [[Object]]


| [[String]] "_SP_AI_" or "_SP_PLAYER_" in SP, "" or UID in MP.<br>
|r1= [[String]] - Can be "_SP_AI_" or "_SP_PLAYER_" in SP, "" or UID in MP
The unique ID may be up to 100 characters long and may contain numbers, uppercase letters and underscores.<br>
* The unique ID may be up to 100 characters long and may contain numbers, uppercase letters and underscores
The value can be used to construct a valid variable name by appending to another valid variable name,<br>
* The value can be used to construct a valid variable name by appending to another valid variable name. {{ic|[[missionNamespace]] [[setVariable]] ["TAG_player" + _uid, _unit];}}
e.g {{Inline code|[[missionNamespace]] [[setVariable]] ["TAG_player" + _uid, _unit];}} |RETURNVALUE=


|x1= <code>[[private]] _uid = [[getPlayerUID]] [[player]];</code> |EXAMPLE1=
|x1= <code>[[private]] _uid = [[getPlayerUID]] [[player]];</code>
____________________________________________________________________________________________


| [[BIS_fnc_getUnitByUID]], [[getPlayerUIDOld]], [[getClientState]], [[getClientStateNumber]] |SEEALSO=
|seealso= [[BIS_fnc_getUnitByUID]], [[getPlayerUIDOld]], [[getClientState]], [[getClientStateNumber]]
}}
}}
<h3 style='display:none'>Notes</h3>
<dl class='command_description'>
<!-- Note Section BEGIN -->
<!-- Note Section END -->
</dl>
<h3 style='display:none'>Bottom Section</h3>
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Take On Helicopters|{{uc:{{PAGENAME}}}}]]

Revision as of 15:55, 3 May 2021

Hover & click on the images for description

Description

Description:
Return a UniqueID of the given unit (player).
Prior to Arma 2: Operation Arrowhead v1.60, the result always consisted of a stringified number (see getPlayerUIDOld), but always had to be considered and processed as a String. Converting it to a Number could cause precision problems, as Number cannot accurately represent integers above 16777216 (224). Moreover, games since Arma 2: Operation Arrowhead v1.61 provide a value that is not all-numeric.
Arma 3
The returned string is the player's steamID64: private _steamProfileUrl = "http://steamcommunity.com/profiles/" + (getPlayerUID player);
Problems:
In some cases, the identity of certain player units might fail to propagate to other clients and the server, which causes isPlayer and getPlayerUID to incorrectly return false and "" respectively, where the affected units are not local - see this bug report (GitHub). Therefore, beware of false negatives.
Groups:
Multiplayer

Syntax

Syntax:
getPlayerUID unit
Parameters:
unit: Object
Return Value:
String - Can be "_SP_AI_" or "_SP_PLAYER_" in SP, "" or UID in MP
  • The unique ID may be up to 100 characters long and may contain numbers, uppercase letters and underscores
  • The value can be used to construct a valid variable name by appending to another valid variable name. missionNamespace setVariable ["TAG_player" + _uid, _unit];

Examples

Example 1:
private _uid = getPlayerUID player;

Additional Information

See also:
BIS_fnc_getUnitByUIDgetPlayerUIDOldgetClientStategetClientStateNumber

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