I hate playing sound in JASS

Nerfpl

New Member
Reaction score
53
Ok can any1 exaplin me how this should be done?

JASS:
function Trig_Time_Pause_Actions takes nothing returns nothing
    local location loc = GetSpellTargetLoc()
    local unit u
    local real x= 2.00 + ( 1 * I2R(GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())))
    local group grp = GetUnitsInRangeOfLocMatching(( 100.00 + ( 100.00 * I2R(GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) ) ), loc, Condition(function Trig_Time_Pause_Func002002003))
    set u = CreateUnitAtLoc(GetOwningPlayer(GetTriggerUnit()),'H007',loc, 270)
    call UnitApplyTimedLife(u,'BTLF',x)
    call SetUnitScale(u,(0.14*x),(0.14*x),1)
    call ForGroupBJ( grp, function Trig_Time_Pause_Func003A )
    call PlaySoundOnUnitBJ( gg_snd_time, 35, GetTriggerUnit())
    call StopMusic(true)
    call TriggerSleepAction(x)
    call ForGroupBJ( grp, function Trig_Time_Pause_Func005A )
    call ResumeMusic()
    call StopSound(gg_snd_time,true,true)
    call RemoveLocation(loc)
    set loc=null
    call DestroyGroup(grp)
    set grp = null
    set u = null
endfunction


i tried 100 diffrent ways. storing sound as sound give me "cannot convert sound to string or string to sound", i tried diffrent functions and my sound is only played once. then when i cast spell again theres no sound....

also does it leak anyway? how i should remove this
 

Romek

Super Moderator
Reaction score
963
> call StopSound(gg_snd_time,true,true)
Should be:
call StopSound(gg_snd_time, false, true)

Also, the gg_snd_variables are annoying in the sense that music is actually a string, and sound is a 'sound' handle variable.
So you'll be getting errors if you mix them up.
 

Romek

Super Moderator
Reaction score
963
Well, you are currently destroying it.
I have no idea why, as the only thing that's doing is stopping you play the sound again.

Not every single handle is a leak either.
 

Strilanc

Veteran Scripter
Reaction score
42
Jass treats sounds slightly differently from GUI. In GUI you're likely to use the sound editor to add sounds, but with Jass you can create sounds at run-time (using the sound's path). All the sound editor does is create the sound for you at map startup.

You don't need to destroy sounds unless you are creating them manually throughout the game. If you're using the sound editor, you aren't creating sounds manually.

If you're wondering why Jass would let you create sounds, it's because a sound can't be played twice at the same time. By making multiple sounds from the same path, you can play a sound twice (or more) at the same time. In my racing map I use this functionality to give each car its own copy of the engine noise loop.
 

Naga'sShadow

Ultra Cool Member
Reaction score
49
If you have a sound file already being used as sound you can deliberately cause the map to have a save error, a typo in the code works, this will bring up the error screen with the full text of the map. If you scroll to the top you can see exactly how blizzard programs in sounds.
 

Strilanc

Veteran Scripter
Reaction score
42
If you have a sound file already being used as sound you can deliberately cause the map to have a save error, a typo in the code works, this will bring up the error screen with the full text of the map. If you scroll to the top you can see exactly how blizzard programs in sounds.

... What?
 
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