player: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(you can make dedicated server biased)
(11 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{Command|Comments=
____________________________________________________________________________________________
____________________________________________________________________________________________


| ofp |= Game name
| ofp |Game name=


|1.00|= Game version
|1.00|Game version=
____________________________________________________________________________________________
____________________________________________________________________________________________


| Person controlled by player.
| A person object controlled by user. In Intros and Outros this isn't set by default and must be assigned.<br /><br />
In MP [[player]] is different on each computer and on dedicated server it is [[objNull]] by default ([https://www.youtube.com/watch?v{{=}}JzgJe9sXAiU however this doesn't mean there couldn't be one]). When user is joining 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 [[local]] to the client and stays local.<br /><br />


In MP this value is different on each computer.
See [[Multiplayer Scripting#General information about locality|Multiplayer Scripting's player topic]] for additional helpful information. |Description=
 
In Intros and Outros this isn't set by default and must be assigned. |= Description
____________________________________________________________________________________________
____________________________________________________________________________________________


| [[Object]] <nowiki>=</nowiki> '''player''' |= Syntax
| [[player]] |Syntax=


| [[Object]] |= Return value
| [[Object]] |Return value=
____________________________________________________________________________________________
____________________________________________________________________________________________
   
   
|x1= <code>[[player]] [[addRating]] 500</code> |= Example 1
|x1= <code>[[player]] [[addRating]] 500;</code> |Example 1=
____________________________________________________________________________________________
____________________________________________________________________________________________


|pr= In MP the command is not initialised in functions called by initline or init eventhandlers.|=
|pr= In MP the command is not initialised in functions called by initline or init eventhandlers.|=


|  |= See also
| [[Multiplayer Scripting]], [[isPlayer]], [[playableUnits]], [[selectPlayer]] |See also=
 
}}
}}


Line 33: Line 30:
<!-- Note Section BEGIN -->
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on 20 Jul, 2010
<dd class="notedate">Posted on 20 Jul, 2010
<dt class="note">'''[[User:GalZohar|GalZohar]]'''<dd class="note">
<dt class="note">[[User:GalZohar|GalZohar]]
Before you use the '''player''' object (usually to avoid JIP issues) all you need is to run:<br>
<dd class="note">Before you use the '''player''' object (usually to avoid JIP issues) all you need is to run:<br>
waitUntil {!isNull player};
<code>[[waitUntil]] { [[not]] [[isNull]] [[player]] };</code>
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.
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
<dd class="notedate">Posted on 27 Jan, 2008
<dt class="note">'''[[User:Dr_Eyeball|Dr_Eyeball]]'''<dd class="note">
<dt class="note">[[User:Dr_Eyeball|Dr_Eyeball]]
([[isNull]] [[player]]) is true for JIP players on their client during initialization.<br>
<dd class="note"><code>[[isNull]] [[player]]</code> is true for JIP players on their client during initialization.<br />
After initialization, it will be set, making it valid again.<br>
After initialization, it will be set, making it valid again.<br /><br />
<br>
To cater for this, some people use code similar to the following in their <u>spawned</u> scripts:
To cater for this, some people use code similar to the following in their <u>spawned</u> scripts:
if (!isServer && (player != player)) then
<code>if (![[isServer]] && (player != player)) then
{
{
  waitUntil {player == player};
[[waitUntil]] { player == player };
  waitUntil {time > 10};
[[waitUntil]] { time > 10 };
};
};
 
// 'player' will now be valid
{{codecomment|// 'player' will now be valid}}
_action = [[player]] addAction ["heal", "heal.sqf", [], -1, false, false, ""];
_action = [[player]] [[addAction]] ["heal", "heal.sqf", [], -1, false, false, ""];
<br>
</code>
See [[6thSense.eu:EG|JIP/player topic]] for additional helpful information.
 
<dd class="notedate">Posted on June 26, 2014 - 18:49 (UTC)
<dt class="note">[[User:Killzone Kid|Killzone Kid]]
<dd class="note">[[player]] can actually be REMOTE object on player's PC: http://www.youtube.com/watch?v=m6IILtfa3cQ<br><br>
</dd>


<!-- Note Section END -->
<!-- Note Section END -->
Line 59: Line 60:


<h3 style="display:none">Bottom Section</h3>
<h3 style="display:none">Bottom Section</h3>
[[Category:Scripting Commands|PLAYER]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.96|PLAYER]]
[[Category:Scripting Commands OFP 1.46|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.46|PLAYER]]
[[Category:Scripting Commands OFP 1.96|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA|PLAYER]]
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]

Revision as of 23:46, 2 July 2019

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.

In MP player is different on each computer and on dedicated server it is objNull by default (however this doesn't mean there couldn't be one). When user is joining 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 local to the client and stays local.

See Multiplayer Scripting's player topic for additional helpful information.
Problems:
In MP the command is not initialised in functions called by initline or init eventhandlers.
Groups:
Uncategorised

Syntax

Syntax:
player
Return Value:
Object

Examples

Example 1:
player addRating 500;

Additional Information

See also:
Multiplayer ScriptingisPlayerplayableUnitsselectPlayer

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

Posted on 20 Jul, 2010
GalZohar
Before you use the player object (usually 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. 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.
Posted on 27 Jan, 2008
Dr_Eyeball
isNull player is true for JIP players on their client during initialization.
After initialization, it will be set, making it valid again.

To cater for this, some people use code similar to the following in their spawned 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, ""];
Posted on June 26, 2014 - 18:49 (UTC)
Killzone Kid
player can actually be REMOTE object on player's PC: http://www.youtube.com/watch?v=m6IILtfa3cQ

Bottom Section