Difference between revisions of "onPlayerConnected"

From Bohemia Interactive Community
Jump to navigation Jump to search
(description expanded)
(20 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Command|= Comments
+
{{Command|Comments=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| arma |= Game name
+
| arma |Game name=
  
|1.00|= Game version
+
|1.00|Game version=
 +
 
 +
|exec= server |Exec=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| This statement is launched whenever a player is connected to a MP session. <br>
+
| This command will execute attached code whenever a player is connected to a MP session. The code will receive a number of special variables:
Variables '''_id''' and '''_name''' are set, in theory '''_id''' being the session id number as seen in #userlist. <br>
+
* '''_id''': [[Number]] - is the unique DirectPlay ID. Quite useless as the number is too big for in-built string representation and gets rounded. It is also the same id used for user placed markers.
Note that as of 1.08, this command only accepts a code-string rather than code delimited by braces.<br>
+
* '''_uid''': [[String]] - is [[getPlayerUID]] of the joining player. In Arma 3 it is also the same as Steam ID.
Note as of ArmA 2 version 1.02 this function also returns the variable '''_uid''' which denotes uniqueID of player.<br>
+
* '''_name''': [[String]] - is [[profileName]] of the joining player.
As of version Arma2 1.04, _id will return a number in float format, something like 1.4253e+10. <br>
+
* '''_jip''': (''since Arma 3 v1.49'') [[Boolean]] - is a flag that indicates whether or not the player joined after the mission has started ('''J'''oined '''I'''n '''P'''rogress). [[true]] when the player is [[JIP]], otherwise [[false]].
_id is the Unique DirectPlay ID of player, and there are some conversions between DirectPlay floats and Arma Engine numbers.<br/>
+
* '''_owner''': (''since Arma 3 v1.49'') [[Number]] - is [[owner]] id of the joining player. Can be used for kick or ban purposes or just for [[publicVariableClient]].
In Arma 3 '''_uid''' is the same as Steam ID.
+
* '''_idstr''': (''since Arma 3 v1.95'') [[String]] - same as <tt>_id</tt> but in string format, so could be exactly compared to [[allMapMarkers | user marker]] ids.<br><br>
{{Feature arma3|In order to keep compatability between official and community content the functions [[BIS_fnc_addStackedEventHandler]] and [[BIS_fnc_removeStackedEventHandler]] should be used instead.}}
+
{{Feature arma3 | Since '''Arma 3''' ''v1.57'' a stackable MissionEventHandler is available and should be used: [[Arma_3:_Event_Handlers/addMissionEventHandler#PlayerConnected|PlayerConnected]].<br>
|= Description
+
Before that, the functions [[BIS_fnc_addStackedEventHandler]] and [[BIS_fnc_removeStackedEventHandler]] should be used instead in order to keep compatibility between official and community content.}}|DESCRIPTION=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| '''onPlayerConnected''' statement |= Syntax
+
| [[onPlayerConnected]] code |SYNTAX=
 +
 
 +
|p1= code: [[String]] or [[Code]] |PARAMETER1=
 +
 
 +
| [[Nothing]] |RETURNVALUE=
 +
____________________________________________________________________________________________
  
|p1= statement: [[String]] or [[Code]] |= Parameter 1
+
|x1= <code>[[onPlayerConnected]] "[_id, _name] [[execVM]] ""PlayerConnected.sqf""";</code> |EXAMPLE1=
  
| [[Nothing]] |= Return value
+
|x2= <code>[[onPlayerConnected]] { [[diag_log]] [_id, _uid, _name] };</code> |EXAMPLE2=  
  
____________________________________________________________________________________________
+
|x3= From '''{{arma3}}''' v1.49:
|x1= <code>onPlayerConnected "[_id, _name] execVM ""PlayerConnected.sqf""";</code> |= Example 1
+
<code>[[onPlayerConnected]] {
|x2= <code>[[onPlayerConnected]] {[[diag_log]] [_id, _uid, _name]};</code> |= Example 2
+
somevar = [[random]] 123;
 +
_owner [[publicVariableClient]] "somevar";
 +
{{cc|this will set somevar}}
 +
{{cc|joining player PC to a random value}}
 +
};</code>|EXAMPLE3=
 +
 
 +
|x4= From '''{{arma3}}''' v1.49:
 +
<code>[[onPlayerConnected]] { isJip = _jip; _owner [[publicVariableClient]] "isJip" };
 +
{{cc|Each player will now have variable isJip containing individual JIP info}}</code> |EXAMPLE4=
  
 
|mp= The ''statement'' is executed only on the server, not on the joining player's computer, nor on any other client.<br>
 
|mp= The ''statement'' is executed only on the server, not on the joining player's computer, nor on any other client.<br>
 
This happens even if '''onPlayerConnected''' was issued on all machines. <br>
 
This happens even if '''onPlayerConnected''' was issued on all machines. <br>
Note that there is a player with the '''_name''' called __SERVER__ which will also connect to a multiplayer game, executing ''statement''. |=
+
Note that there is a player with the '''_name''' called __SERVER__ which will also connect to a multiplayer game, executing ''code''. |Multiplayer=
 
 
| [[onPlayerDisconnected]] |= See also
 
  
 +
| [[onPlayerDisconnected]], [[didJIP]], [[didJIPOwner]]|SEEALSO=
 
}}
 
}}
  
Line 45: Line 59:
 
<h3 style="display:none">Bottom Section</h3>
 
<h3 style="display:none">Bottom Section</h3>
  
[[Category:Scripting Commands|ONPLAYERCONNECTED]]
+
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP Elite |ONPLAYERCONNECTED]]
+
[[Category:Scripting Commands OFP Elite |{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA|ONPLAYERCONNECTED]]
+
[[Category:Scripting Commands ArmA|{{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:_Multiplayer|{{uc:{{PAGENAME}}}}]]
 
[[Category:Command_Group:_Multiplayer|{{uc:{{PAGENAME}}}}]]

Revision as of 22:33, 2 September 2019

Template:Command

Notes

Bottom Section