Difference between revisions of "onPlayerConnected"

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "_{10,} " to "")
m (Fix layout)
(20 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Command|Comments=
+
{{RV|type=command
  
| arma1 |Game name=
+
|game1= ofpe
 +
|version1= 1.00
  
|1.00|Game version=
+
|game2= arma1
 +
|version2= 1.00
  
|gr1 = Multiplayer |GROUP1=
+
|game3= arma2
 +
|version3= 1.00
  
|gr2= Event Handlers |GROUP2=
+
|game4= arma2oa
 +
|version4= 1.50
  
 +
|game5= tkoh
 +
|version5= 1.00
  
|serverExec= server |Exec=
+
|game6= arma3
 +
|version6= 0.50
  
| This command will execute attached code whenever a player is connected to a MP session. The code will receive a number of special variables:
+
|gr1= Multiplayer
 +
 
 +
|gr2= Event Handlers
 +
 
 +
|serverExec= server
 +
 
 +
|descr= This command will execute the provided code on the server whenever a player connects to a multiplayer session.
 +
{{Feature | arma3 | Since {{arma3}} v1.57 a stackable MissionEventHandler is available and should be used: [[Arma 3: Mission Event Handlers#PlayerConnected|PlayerConnected]].<br>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.}}
 +
 
 +
|s1= [[onPlayerConnected]] code
 +
 
 +
|p1= code: [[String]] or [[Code]] - has access to the following variables:
 
* '''_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.
 
* '''_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.
 
* '''_uid''': [[String]] - is [[getPlayerUID]] of the joining player. In Arma 3 it is also the same as Steam ID.
 
* '''_uid''': [[String]] - is [[getPlayerUID]] of the joining player. In Arma 3 it is also the same as Steam ID.
 
* '''_name''': [[String]] - is [[profileName]] of the joining player.
 
* '''_name''': [[String]] - is [[profileName]] of the joining player.
* '''_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 [[Multiplayer Scripting#Join In Progress|JIP]], otherwise [[false]].
+
* {{GVI|arma3|1.50}} '''_jip''': [[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 [[Multiplayer Scripting#Join In Progress|JIP]], otherwise [[false]].
* '''_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]].
+
* {{GVI|arma3|1.50}} '''_owner''': [[Number]] - is [[owner]] id of the joining player. Can be used for kick or ban purposes or just for [[publicVariableClient]].
* '''_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>
+
* {{GVI|arma3|1.96}} '''_idstr''': [[String]] - same as <tt>_id</tt> but in string format, so could be exactly compared to [[allMapMarkers | user marker]] ids.
{{Feature|arma3 | Since '''Arma 3''' ''v1.57'' a stackable MissionEventHandler is available and should be used: [[Arma_3:_Event_Handlers/addMissionEventHandler#PlayerConnected|PlayerConnected]].<br>
 
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]] code |SYNTAX=
 
 
 
|p1= code: [[String]] or [[Code]] |PARAMETER1=
 
  
| [[Nothing]] |RETURNVALUE=
+
|r1= [[Nothing]]
  
|x1= <code>[[onPlayerConnected]] "[_id, _name] [[execVM]] ""PlayerConnected.sqf""";</code> |EXAMPLE1=
+
|x1= <code>[[onPlayerConnected]] "[_id, _name] [[execVM]] 'PlayerConnected.sqf';";</code>
  
|x2= <code>[[onPlayerConnected]] { [[diag_log]] [_id, _uid, _name] };</code> |EXAMPLE2=
+
|x2= <code>[[onPlayerConnected]] { [[diag_log]] [_id, _uid, _name] };</code>
  
|x3= From '''{{arma3}}''' v1.49:
+
|x3= From {{arma3}} v1.49:
 
<code>[[onPlayerConnected]] {
 
<code>[[onPlayerConnected]] {
 
somevar = [[random]] 123;
 
somevar = [[random]] 123;
 
_owner [[publicVariableClient]] "somevar";
 
_owner [[publicVariableClient]] "somevar";
{{cc|this will set somevar}}
+
{{cc|this will define "somevar" to a random value on the joining machine}}
{{cc|joining player PC to a random value}}
+
};</code>
};</code>|EXAMPLE3=
 
  
|x4= From '''{{arma3}}''' v1.49:
+
|mp= {{Feature | important | A player with the '''_name''' <tt>__SERVER__</tt> will also connect to a multiplayer game, executing ''code''.}}
<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>
+
|seealso= [[onPlayerDisconnected]], [[didJIP]], [[didJIPOwner]]
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 ''code''. |Multiplayer=
 
 
 
| [[onPlayerDisconnected]], [[didJIP]], [[didJIPOwner]]|SEEALSO=
 
 
}}
 
}}
 
<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|{{uc:{{PAGENAME}}}}]]
 
{{GameCategory|ofpe|Scripting Commands}}
 
{{GameCategory|arma1|Scripting Commands}}
 
{{GameCategory|arma2|Scripting Commands}}
 
{{GameCategory|arma3|Scripting Commands}}
 
{{GameCategory|tkoh|Scripting Commands}}
 
[[Category:Command_Group:_Multiplayer|{{uc:{{PAGENAME}}}}]]
 

Revision as of 17:48, 16 June 2021

Hover & click on the images for description

Description

Description:
This command will execute the provided code on the server whenever a player connects to a multiplayer session.
Arma 3
Since Arma 3 v1.57 a stackable MissionEventHandler is available and should be used: PlayerConnected.
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.
Multiplayer:
A player with the _name __SERVER__ will also connect to a multiplayer game, executing code.
Groups:
MultiplayerEvent Handlers

Syntax

Syntax:
onPlayerConnected code
Parameters:
code: String or Code - has access to the following variables:
  • _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.
  • _uid: String - is getPlayerUID of the joining player. In Arma 3 it is also the same as Steam ID.
  • _name: String - is profileName of the joining player.
  • Arma 3 logo black.png1.50 _jip: Boolean - is a flag that indicates whether or not the player joined after the mission has started (Joined In Progress). true when the player is JIP, otherwise false.
  • Arma 3 logo black.png1.50 _owner: Number - is owner id of the joining player. Can be used for kick or ban purposes or just for publicVariableClient.
  • Arma 3 logo black.png1.96 _idstr: String - same as _id but in string format, so could be exactly compared to user marker ids.
Return Value:
Nothing

Examples

Example 1:
onPlayerConnected "[_id, _name] execVM 'PlayerConnected.sqf';";
Example 2:
onPlayerConnected { diag_log [_id, _uid, _name] };
Example 3:
From Arma 3 v1.49: onPlayerConnected { somevar = random 123; _owner publicVariableClient "somevar"; // this will define "somevar" to a random value on the joining machine };

Additional Information

See also:
onPlayerDisconnecteddidJIPdidJIPOwner

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