Simply setting the volume isn't enough because it wasn't started in the first place. Play Sound is used to start the sound, and automatically kills the sound when done. If you read the JASS of PlaySoundBJ function, you'll notice it starts the sound and kills the sound when done.
The sound does not need to be set as a variable. It just adds more lines. First, open the sound editor. Right-click the sound you would like to use, and click "
Use as Sound". Then right-click it or double-click it (I forgot which) so that options come up. Then uncheck "3D Sound" part. As well as the one below it (Something like play sound when nearby or something such as that) unless it already becomes grayed out.
Now open the trigger editor, and use "play sound".
Why the sound doesn't need to be set to a variable:
I bet more than half the people in the GUI coding area don't know what <gen> means. Well, now you can know!
<gen> = Generated
If you convert a trigger to JASS, you'll notice in the initialization function, it reads "gg_" before the trigger name. This is what the <gen> means.
gg_ stands for
Generated Global
As the world editor parses the code, it generates the global. The only thing that is required is the type after the underscore in "gg"... Well, the acronym in most cases.
Generating globals is fast and easy, but you need "gg_type_name" as the layout of it each time it is used.
So <gen> generates the sound variable. When the sound is used in the sound editor, it creates that as a generated global. Thus, it is a variable itself so it does not need to be set to a variable. It is basically setting a variable to a variable.
I hope this not only helps you, Wraith, but other people out there too.