onPlayerConnected: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(description expanded)
m (Text replacement - "|exec=" to "|serverExec=")
(22 intermediate revisions by 4 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=
 
|serverExec= 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 Arma 2|{{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:04, 14 January 2020

-wrong parameter ("Arma") defined!-1.00
Hover & click on the images for description

Description

Description:
This command will execute attached code whenever a player is connected to a MP session. The code will receive a number of special 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.
  • _jip: (since Arma 3 v1.49) 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.
  • _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.
  • _idstr: (since Arma 3 v1.95) String - same as _id but in string format, so could be exactly compared to user marker ids.

Template:Feature arma3
Multiplayer:
The statement is executed only on the server, not on the joining player's computer, nor on any other client.
This happens even if onPlayerConnected was issued on all machines.
Note that there is a player with the _name called __SERVER__ which will also connect to a multiplayer game, executing code.
Groups:
Uncategorised

Syntax

Syntax:
onPlayerConnected code
Parameters:
code: String or Code
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 set somevar // joining player PC to a random value };
Example 4:
From Arma 3 v1.49: onPlayerConnected { isJip = _jip; _owner publicVariableClient "isJip" }; // Each player will now have variable isJip containing individual JIP info

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

Notes

Bottom Section