selectPlayer: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|seealso= *\[\[([^ ]+)\]\], \[\[([^ ]+)\]\]" to "|seealso= $1 $2")
m (Text replacement - "<code>\[\[([a-zA-Z0-9_]+)\]\] ([a-zA-Z0-9_]+);?<\/code>" to "<sqf>$1 $2;</sqf>")
Line 38: Line 38:
|r1= [[Nothing]]
|r1= [[Nothing]]


|x1= <code>[[selectPlayer]] bob;</code>
|x1= <sqf>selectPlayer bob;</sqf>


|seealso= [[selectNoPlayer]] [[Team_Switch]] [[switchCamera]] [[teamSwitch]] [[enableTeamSwitch]]
|seealso= [[selectNoPlayer]] [[Team_Switch]] [[switchCamera]] [[teamSwitch]] [[enableTeamSwitch]]

Revision as of 13:16, 5 May 2022

Hover & click on the images for description

Description

Description:
Move player into given unit. Some usage advices:
  • Try avoiding 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 creatingUnit 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 initialization. Give unit some time to propagate properly on network before selecting player into it.
Groups:
Object ManipulationMultiplayer

Syntax

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

Examples

Example 1:
selectPlayer bob;

Additional Information

See also:
selectNoPlayer 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
Posted on June 24, 2015 - 23:34 (UTC)
Killzone Kid
Most of the notes below do not apply to Arma 3 anymore.
Posted on 14 May 2011
SnowSky
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 II with version 1.08 + OA 1.57
So with ArmA II, 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
Posted on -
besselinksjm
3) 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.
Posted on -
kju
A working implementation can be found at A&S ProMode dev-heaven repo (dead link), acc guest, pw guest or at pastebin.
Be careful to learn all the pitfalls and things you need to take into consideration to have this working in MP.
Posted on 09 March 2014
EUTWtrnapster
Arma 3 (v1.13): In MP the Identity and the name carries over to the new Unit but not in SP. Use setName to set the name in SP.