- Joined
- Mar 24, 2020
- Messages
- 80
Hi guys, just a quick one! I am just trying to figure out the best way to manage player specific sounds.
Q.1 - Is there a way to GetLocalPlayer to detect the picked player? So I could put it in a player group loop?
Q.2 - How do I optimize the below?
During the first 30 seconds a voiceover is being played to all players. This voiceover is broken down into 4 sounds/parts. If a player within the first 30 seconds begins building too close to a point, the voiceover stops playing for that specific player and then plays a sound/voiceover to that specific triggering player. What I need to happen is if this sound/warning is being played to the specific player, that specific player won't hear the next part of the main voiceover, IF the warning sound is still being played to them.
I hope that makes sense! So far I have this:
Q.1 - Is there a way to GetLocalPlayer to detect the picked player? So I could put it in a player group loop?
Q.2 - How do I optimize the below?
During the first 30 seconds a voiceover is being played to all players. This voiceover is broken down into 4 sounds/parts. If a player within the first 30 seconds begins building too close to a point, the voiceover stops playing for that specific player and then plays a sound/voiceover to that specific triggering player. What I need to happen is if this sound/warning is being played to the specific player, that specific player won't hear the next part of the main voiceover, IF the warning sound is still being played to them.
I hope that makes sense! So far I have this:
-
Build near gates
-

Events
-


Unit - A unit Begins construction
-
-

Conditions
-


Or - Any (Conditions) are true
-



Conditions
-




(Distance between (Position of (Triggering unit)) and (Position of DomainGate[1])) Less than or equal to 3500.00
-




(Distance between (Position of (Triggering unit)) and (Position of DomainGate[2])) Less than or equal to 3500.00
-
-
-
-

Actions
-


Game - Display to (All players matching ((Owner of (Triggering unit)) Equal to (Matching player)).) for 20.00 seconds the text: |cffff0000You are b...
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




(Owner of (Triggering unit)) Equal to Player 1 (Red)
-
-



Then - Actions
-




Custom script: if GetLocalPlayer() == Player(0) then
-




Sound - Stop CurrentSound Immediately
-




Sound - Play You_Are_Building_Next_To_One_Of_My_Gates <gen>
-




Set VariableSet SoundGateBuildWarningBoolean[(Player number of (Owner of (Triggering unit)))] = True
-




Wait 9.00 game-time seconds
-




Set VariableSet SoundGateBuildWarningBoolean[(Player number of (Owner of (Triggering unit)))] = False
-




Custom script: endif
-
-



Else - Actions
-
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




(Owner of (Triggering unit)) Equal to Player 2 (Blue)
-
-



Then - Actions
-




Custom script: if GetLocalPlayer() == Player(1) then
-




Sound - Stop CurrentSound Immediately
-




Sound - Play You_Are_Building_Next_To_One_Of_My_Gates <gen>
-




Set VariableSet SoundGateBuildWarningBoolean[(Player number of (Owner of (Triggering unit)))] = True
-




Wait 9.00 game-time seconds
-




Set VariableSet SoundGateBuildWarningBoolean[(Player number of (Owner of (Triggering unit)))] = False
-




Custom script: endif
-
-



Else - Actions
-
-
-
-
Example
-

Events
-

Conditions
-

Actions
-


Sound - Play Part_3 <gen>
-


Set VariableSet CurrentSound = (Last played sound)
-


Player Group - Pick every player in Players and do (Actions)
-



Loop - Actions
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






SoundGateBuildWarningBoolean[(Player number of (Picked player))] Equal to False
-
-





Then - Actions
-





Else - Actions
-






Custom script: if GetLocalPlayer() == Player(PickedPlayer) then
-






Sound - Stop CurrentSound Immediately
-






Custom script: endif
-
-
-
-
-
-
Last edited:

