player: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Fix)
 
(49 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| ofp |= Game name
|game1= ofp
|version1= 1.00


|1.00|= Game version
|game2= ofpe
____________________________________________________________________________________________
|version2= 1.00


| Person controlled by player.
|game3= arma1
|version3= 1.00


In MP this value is different on each computer.
|game4= arma2
|version4= 1.00


In Intros and Outros this isn't set by default and must be assigned. |= Description
|game5= arma2oa
____________________________________________________________________________________________
|version5= 1.50


| [[Object]] <nowiki>=</nowiki> '''player''' |= Syntax
|game6= tkoh
|version6= 1.00


| [[Object]] |= Return value
|game7= arma3
____________________________________________________________________________________________
|version7= 0.50
 
|x1= <code>[[player]] [[addRating]] 500</code> |= Example 1
____________________________________________________________________________________________


|gr1= Object Manipulation


|pr= In MP the command is not initialised in functions called by initline or init eventhandlers.|=
|descr= A person object controlled by user. In Intros and Outros this isn't set by default and must be assigned.


| |= See also
|mp= In MP [[player]] is different on each computer and on dedicated server it is [[objNull]] by default ({{Link|https://www.youtube.com/watch?v{{=}}JzgJe9sXAiU|unless scripted}}).
When user is joining a dedicated server mission, at the moment of [[onPlayerConnected]] the [[player]] object is remote to the joining client, as the [[player]] unit is created on the server, but once control of the unit is passed to the user moments later, the [[player]] objects becomes and remains [[Multiplayer Scripting#Locality|local]] to the client.


}}
See [[Multiplayer Scripting#General information about locality|Multiplayer Scripting's player topic]] for additional helpful information.
 
|pr= In multiplayer, the command is not initialised in functions called by initline or init eventhandlers.
 
|s1= [[player]]


<h3 style="display:none">Notes</h3>
|r1= [[Object]]
<dl class="command_description">
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on 20 Jul, 2010
<dt class="note">'''[[User:GalZohar|GalZohar]]'''<dd class="note">
Before you use the '''player''' object (usually to avoid JIP issues) all you need is to run:<br>
waitUntil {!isNull player};
Anything else you see in other scripts is equivalent and/or redundant. Of course JIP players may need more than just the player to point at the actual JIP player unit, but that's script/mission-specific.


<dd class="notedate">Posted on 27 Jan, 2008
|x1= <sqf>player addRating 500;</sqf>
<dt class="note">'''[[User:Dr_Eyeball|Dr_Eyeball]]'''<dd class="note">
([[isNull]] [[player]]) is true for JIP players on their client during initialization.<br>
After initialization, it will be set, making it valid again.<br>
<br>
To cater for this, some people use code similar to the following in their <u>spawned</u> scripts:
if (!isServer && (player != player)) then
{
  waitUntil {player == player};
  waitUntil {time > 10};
};
// 'player' will now be valid
_action = [[player]] addAction ["heal", "heal.sqf", [], -1, false, false, ""];
<br>
See [[6thSense.eu:EG|JIP/player topic]] for additional helpful information.


<!-- Note Section END -->
|seealso= [[Multiplayer Scripting]] [[isPlayer]] [[playableUnits]] [[selectPlayer]]
</dl>
}}


<h3 style="display:none">Bottom Section</h3>
{{Note
[[Category:Scripting Commands|PLAYER]]
|user= Galzohar
[[Category:Scripting Commands OFP 1.96|PLAYER]]
|timestamp= 20100620031100
[[Category:Scripting Commands OFP 1.46|PLAYER]]
|text= Before you use the '''player''' object in init scripts, to avoid JIP issues all you need is to run:
[[Category:Scripting Commands ArmA|PLAYER]]
<sqf>waitUntil { not isNull player };</sqf>
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
Anything else you see in other scripts is equivalent and/or redundant. (but you may need to add other conditions too, such as checking [[hasInterface]] before initiating that loop)<br>
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
Of course JIP players may need more than just the player to point at the actual JIP player unit, but that's script/mission-specific.
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
}}
 
{{Note
|user= Killzone_Kid
|timestamp= 20140626184900
|text= [[player]] can actually be REMOTE object on player's PC: {{Link|http://www.youtube.com/watch?v{{=}}m6IILtfa3cQ}}
}}

Latest revision as of 22:56, 24 April 2024

Hover & click on the images for description

Description

Description:
A person object controlled by user. In Intros and Outros this isn't set by default and must be assigned.
Multiplayer:
In MP player is different on each computer and on dedicated server it is objNull by default (unless scripted). When user is joining a dedicated server mission, at the moment of onPlayerConnected the player object is remote to the joining client, as the player unit is created on the server, but once control of the unit is passed to the user moments later, the player objects becomes and remains local to the client. See Multiplayer Scripting's player topic for additional helpful information.
Problems:
In multiplayer, the command is not initialised in functions called by initline or init eventhandlers.
Groups:
Object Manipulation

Syntax

Syntax:
player
Return Value:
Object

Examples

Example 1:
player addRating 500;

Additional Information

See also:
Multiplayer Scripting isPlayer playableUnits selectPlayer

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
Galzohar - c
Posted on Jun 20, 2010 - 03:11 (UTC)
Before you use the player object in init scripts, to avoid JIP issues all you need is to run:
waitUntil { not isNull player };
Anything else you see in other scripts is equivalent and/or redundant. (but you may need to add other conditions too, such as checking hasInterface before initiating that loop)
Of course JIP players may need more than just the player to point at the actual JIP player unit, but that's script/mission-specific.
Killzone_Kid - c
Posted on Jun 26, 2014 - 18:49 (UTC)
player can actually be REMOTE object on player's PC: [1]