selectPlayer: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
m (Text replacement - "ArmA II" to "{{arma2}}")
 
(90 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| arma |= Game name
|game1= ofpe
|version1= 1.00


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


| Switch player to given person. |= Description
|game3= arma2
____________________________________________________________________________________________
|version3= 1.00


| '''selectPlayer''' unitName |= Syntax
|game4= arma2oa
|version4= 1.50


|p1= unitName: [[Object]] |= Parameter 1
|game5= tkoh
|version5= 1.00


| [[Nothing]] |= Return value
|game6= arma3
____________________________________________________________________________________________
|version6= 0.50
 
|x1= <pre>selectPlayer _aPerson</pre> |= Example 1
____________________________________________________________________________________________


| [[switchCamera]] |= See also
|arg= local


|eff= global
|gr1= Object Manipulation
|gr2= Multiplayer
|descr= Move player into given unit. Some usage advices:
* Avoid using [[selectPlayer]] on editor-placed units in multiplayer, as it may, on occasion, lead to some undefined behaviour.
* If you need to [[selectPlayer]] into another unit, consider [[createUnit|creating a unit]] dynamically.{{Feature|informative|Before {{arma3}} it was possible to [[selectPlayer]] another player-controlled unit, leading to control issues. }}
{{Feature|warning|
Creating and immediately selecting player into newly created unit could cause all sort of problems due to possible delay in unit initialisation.
Give the unit some time to propagate properly on the network before using this command on it.
}}
|s1= [[selectPlayer]] unitName
|p1= unitName: [[Object]]
|r1= [[Nothing]]
|x1= <sqf>selectPlayer bob;</sqf>
|seealso= [[selectNoPlayer]] [[remoteControl]] [[Team Switch]] [[switchCamera]] [[teamSwitch]] [[enableTeamSwitch]]
}}
{{Note
|user= Killzone_Kid
|timestamp= 20150624233400
|text= {{Feature|important|Most of the notes below do not apply to Arma 3 anymore. }}
}}
{{Note
|user= SnowSky
|timestamp= 20100302230900
|text= '''This command has significant effects on [[Multiplayer Scripting#Locality|locality]]'''!<br>
Notes on locality issues with selectPlayer in multiplayer environments:
<br><br>
1) If you switch to a unit that's not local, control over movement will not be given to you immediately. For example, if you switch to an AI unit whose leader is a player, you will not be able to control the movement of your new avatar, as its control remains with the leader unit. You will however be able to look around while the unit walks automatically.
<br><br>
2) The identity of units are not transferred properly: If your old unit dies, this will count for your stats. Your old unit might remain identifiable as you (if you aim at the unit you see your own name). Your new unit will keep it is name, face and voice (face can be set dynamically, but name, voice and glasses have to be defined before mission start in the description.ext). When chatting, not the name of your original identity, but the identity of the transferred to person will show.<br><br>
Those 2 Points were for ArmA I, I am currently analyzing the behaviour in {{arma2}} with version 1.08 + OA 1.57<br>
So with {{arma2}}, you still have to keep an eye on locality (otherwise the AI will controll the unit you are), but there are cool possibilities now: if you do a "selectPlayer unitVarName",the unit takes your identity (with name, voice, face and glasses) - and your identity is also visible on other clients!<br><br>
But you have to remember that your old unit will stay with your Identity. Dies the old unit, the stats count it. An other thing you have to pay attention is the Death for your new unit - you have to register an EventHandler, otherwise you will stay in your dead unit, and also the MenuOption Respawn won't help you out! 3.Jan. 2011
<br><br>
3) If you do a selectPlayer call, join,joinSilent,joinAs,joinAsSilent wont work anymore correctly. Means: Your unit joins the other group AND your unit will be local to the other group. so at the moment you can use selectPlayer only as a single human player in a group. In the later day I will try what happens if both human players are units by selectPlayer, and both join the same group (till yet tried with one selectPlayer unit and one originUnit)
14.May 2011
<br><br>
Tried to create ingame a group with a selectPlayer Unit (on both clients), and joint the new squad. The result was, the group was local to the client who created the group, so after that, all other units that join that Group are - as you may think already, local to that single client. 18.May 2011
}}
}}


<h3 style="display:none">Notes</h3>
{{Note
<dl class="command_description">
|user= Besselinksjm
<!-- Note Section BEGIN -->
|timestamp= 20100617161900
selectPlayer brings some Problems with it:
|text= 4) After switching to a unit that's not local, the unit will remain local to you after switching back. For example, if we have units A and B, and a client starts as unit A and unit B is AI under server control. If you switch to unit B, it will take some time, but eventually you can control the movement of unit B (see (1) above). Now if you switch back to unit A, unit B will remain [[Multiplayer Scripting#Locality|local]] to you, the player. Any server-side scripts which try to execute local arguments – such as [[doMove]] – will fail.
MP-Section: In Multiplayer section you can use it, but be careful!
}}
If the unit of "selectPlayer unit" is not local, you will be in the body of the "unit", but you don't have the control about the unit. The Control of the Unit lies there, were the unit is local too (for example a server, if the Leader unit is on the server, or another client, if the Leader or first client of a unit is in its group).
The second problem is the Identity: if your old unit dies - it will count also to your Identity.
The third problem is: Your old Unit will still be identifiable as you (means if you aim at the unit). Your new Unit will keep it's name, face and voice (face is settable dynamically, name, voice and glasses have to be defined before mission started in the description.ext).
fourth problem: If you want to chat - the name of your new unit will be used as writer


SP-Section:
{{Note
locality doesn't matter in SP because all units are local, but:
|user= Kju
Maybe Points-sharing for Missiongoals and Kills may not work correctly.
|timestamp= 20100617172000
The thrid problem of MP is also in Single Player.
|text= A working implementation can be found at {{Link|http://dev-heaven.net/projects/clanbase-aas/repository/revisions/master/entry/core/cb_aas_20_ChernarusTemplate.Utes/changePlayerModel.sqf|A&S ProMode dev-heaven repo}}, acc guest, pw guest or at {{Link|http://pastebin.jonasscholz.de/834|pastebin}}.<br>
<!-- Note Section END -->
Be careful to learn all the pitfalls and things you need to take into consideration to have this working in MP.
</dl>
}}


<h3 style="display:none">Bottom Section</h3>
{{Note
[[Category:Scripting Commands|SELECTPLAYER]]
|user= EUTWtrnapster
[[Category:Scripting Commands OFP Elite |SELECTPLAYER]]
|timestamp= 20140309190600
[[Category:Scripting Commands ArmA|SELECTPLAYER]]
|text= {{arma3}} (v1.13): In MP the Identity and the name carries over to the new Unit but not in SP. Use [[setName]]+[[profileName]] to set the name in SP.
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
|game= arma3
[[Category:Scripting Commands VBS2|{{uc:{{PAGENAME}}}}]]
|version= 1.13
}}

Latest revision as of 18:43, 29 March 2024

Hover & click on the images for description

Description

Description:
Move player into given unit. Some usage advices:
  • Avoid using selectPlayer on editor-placed units in multiplayer, as it may, on occasion, lead to some undefined behaviour.
  • If you need to selectPlayer into another unit, consider creating a unit dynamically.
    Before Arma 3 it was possible to selectPlayer another player-controlled unit, leading to control issues.
Creating and immediately selecting player into newly created unit could cause all sort of problems due to possible delay in unit initialisation. Give the unit some time to propagate properly on the network before using this command on it.
Groups:
Object ManipulationMultiplayer

Syntax

Syntax:
selectPlayer unitName
Parameters:
unitName: Object
Return Value:
Nothing

Examples

Example 1:
selectPlayer bob;

Additional Information

See also:
selectNoPlayer remoteControl Team Switch switchCamera teamSwitch enableTeamSwitch

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
Killzone_Kid - c
Posted on Jun 24, 2015 - 23:34 (UTC)
Most of the notes below do not apply to Arma 3 anymore.
SnowSky - c
Posted on Mar 02, 2010 - 23:09 (UTC)
This command has significant effects on locality!
Notes on locality issues with selectPlayer in multiplayer environments:

1) If you switch to a unit that's not local, control over movement will not be given to you immediately. For example, if you switch to an AI unit whose leader is a player, you will not be able to control the movement of your new avatar, as its control remains with the leader unit. You will however be able to look around while the unit walks automatically.

2) The identity of units are not transferred properly: If your old unit dies, this will count for your stats. Your old unit might remain identifiable as you (if you aim at the unit you see your own name). Your new unit will keep it is name, face and voice (face can be set dynamically, but name, voice and glasses have to be defined before mission start in the description.ext). When chatting, not the name of your original identity, but the identity of the transferred to person will show.

Those 2 Points were for ArmA I, I am currently analyzing the behaviour in Arma 2 with version 1.08 + OA 1.57
So with Arma 2, you still have to keep an eye on locality (otherwise the AI will controll the unit you are), but there are cool possibilities now: if you do a "selectPlayer unitVarName",the unit takes your identity (with name, voice, face and glasses) - and your identity is also visible on other clients!

But you have to remember that your old unit will stay with your Identity. Dies the old unit, the stats count it. An other thing you have to pay attention is the Death for your new unit - you have to register an EventHandler, otherwise you will stay in your dead unit, and also the MenuOption Respawn won't help you out! 3.Jan. 2011

3) If you do a selectPlayer call, join,joinSilent,joinAs,joinAsSilent wont work anymore correctly. Means: Your unit joins the other group AND your unit will be local to the other group. so at the moment you can use selectPlayer only as a single human player in a group. In the later day I will try what happens if both human players are units by selectPlayer, and both join the same group (till yet tried with one selectPlayer unit and one originUnit) 14.May 2011

Tried to create ingame a group with a selectPlayer Unit (on both clients), and joint the new squad. The result was, the group was local to the client who created the group, so after that, all other units that join that Group are - as you may think already, local to that single client. 18.May 2011
Besselinksjm - c
Posted on Jun 17, 2010 - 16:19 (UTC)
4) After switching to a unit that's not local, the unit will remain local to you after switching back. For example, if we have units A and B, and a client starts as unit A and unit B is AI under server control. If you switch to unit B, it will take some time, but eventually you can control the movement of unit B (see (1) above). Now if you switch back to unit A, unit B will remain local to you, the player. Any server-side scripts which try to execute local arguments – such as doMove – will fail.
Kju - c
Posted on Jun 17, 2010 - 17:20 (UTC)
A working implementation can be found at A&S ProMode dev-heaven repo (dead link), acc guest, pw guest or at pastebin (dead link).
Be careful to learn all the pitfalls and things you need to take into consideration to have this working in MP.
EUTWtrnapster - c
Posted on Mar 09, 2014 - 19:06 (UTC)

Arma 3 (v1.13): In MP the Identity and the name carries over to the new Unit but not in SP. Use setName+profileName to set the name in SP.