Jump to content
trollzor45

Does referencing "player" call on all active players?

Recommended Posts

In my mission I'm using say3D acting on the player walking through a trigger to simulate the player's character actually talking.

However, I'm concerned. I'm intending to make this multiplayer, and I'm not sure how wide of a scope "player" has.
If someone walks through my say3D trigger, will ALL players play my .wav file? Or just the player who triggered it?

Thanks.

Share this post


Link to post
Share on other sites
13 hours ago, trollzor45 said:

 I'm intending to make this multiplayer, and I'm not sure how wide of a scope "player" has.

 

'player' script command returns the player object on the machine where it is executed. This quirk means if we're both connected to the same dedicated server the following would be true:

 

- On my PC: name player == "mrcurry"

- On your PC: name player == "trollzor45"

- On the server: name player == "Error: No unit" (or "",  I don't remember exactly )

 

13 hours ago, trollzor45 said:

If someone walks through my say3D trigger, will ALL players play my .wav file? Or just the player who triggered it?

 

Depends on the activation and condition of the trigger.

 

Triggers are evaluated on every machine individually and the trigger's state (activated/not activated) is not synchronized. If you want something to happen at the same time for all machines you have to make sure the conditions in which they activate will occur at the same time across all machines.

 

This will result in a synchronized activation:

Trigger activation: Any player

Condition: this

 

This also (assuming a player-unit is named 'someDude' in editor):

Trigger activation: Any player

Condition: someDude in thisList

 

This will not (see aforementioned quirk regarding 'player' above):

Trigger activation: Any player

Condition: player in thisList

 

Hope that clears things up a bit, if not just ask away.

  • Like 1

Share this post


Link to post
Share on other sites

Yeah, that makes sense. So to synchronize my say3D triggers, I'd either have to determine who triggered it, and call say3D on them... Or give a variable name to someone (squad lead, for example) and have that player say the lines. Right?

Share this post


Link to post
Share on other sites
6 hours ago, trollzor45 said:

Yeah, that makes sense. So to synchronize my say3D triggers, I'd either have to determine who triggered it, and call say3D on them... Or give a variable name to someone (squad lead, for example) and have that player say the lines. Right?

Yes. In On Act. the 'magic'-variable thisList contains the units which activated the trigger.

  • Like 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×