Play Sound For Player 1

wingdnosring

New Member
Reaction score
16
How can I play a sound for only player 1 (red)? I think I need to use custom script, but I'm not very confident in my JASS skills. I know next to nothing about using custom scripts in triggers. I can call animations by index and I can remove leaks and that's about it.

Please show me a trigger and explain it in GUI.

Thanks!
 

Silvenon

New Member
Reaction score
19
Trigger:
  • Actions
    • Custom script: if GetLocalPlayer() == Player(0) then
    • Custom script: call StartSound(gg_snd...)
    • Custom script: endif


Brackets after Player (where the zero is) hold the index of a player, but in JASS it starts from 0, not from 1, so Player(0) is Player 1, Player(1) is Player 2 etc. So change the number accordingly. If you have the player stored in a global variable, just replace Player(0) with your variable name, but put an "udg_" before that.

Also, you need to make a dummy trigger which uses your sound somewhere, convert it to JASS and find a word that looks like gg_snd (and something after that). Copy that part (delete your dummy trigger) and paste it in the brackets after StartSound (put it instead of that "gg_snd...").

You need a map initialization trigger. Make a new trigger that runs on map initialization, convert it to JASS and find a function that has the trigger name + Actions, it looks something like:

JASS:
function Trig_Map_Initialization_Actions takes nothing returns nothing
endfunction


If your trigger is named "Map Initialization".

One thing before you do anything with that function, you need to put this function in your map header:

JASS:
function PreloadSoundPath takes string path returns nothing
    local sound snd = CreateSound(path, false, false, false, 10, 10, "")
    call SetSoundVolume(snd, 0)
    call StartSound(snd)
    call KillSoundWhenDone(snd)
    set snd = null
endfunction


Map header is on top of your trigger tree (it holds your map's name), click it and on the right you will se a comment like "here you can put your custom script code blabla" and in the box below (because the box above is just a comment) paste this function.

Now return to your "Actions" function and do this:

JASS:
function Trig_Map_Initialization_Actions takes nothing returns nothing
    call PreloadSoundPath("")
endfunction


Inside the "" you need to put the path of your sound. For example: "Abilities//RainOfChaos//...". I don't remember if it's double forwardslash or a double backslash... You can check that by creating a dummy trigger, making a special effect action, converting it in JASS and check the slashes in "" (wherever they are).
 

wingdnosring

New Member
Reaction score
16
could i just do this?

Custom Script: if GetLocalPlayer() == Player(0) then
Sound - Play MySound (GUI style)
Custom Script: endif
 

Silvenon

New Member
Reaction score
19
The PreloadSoundPath is used because sounds don't play the first time you play them. They need to load first.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top