ID:2400562
 
Resolved
A new sound.params var can be used to set up skin-related interactions with the sound. Currently the only parameter supported is on-end, which can call a command when a sound is finished.
Applies to:DM Language
Status: Resolved (515.1590)

This issue has been resolved.
a /client proc that get run when a sound is stopped/finished would be useful for finer control over sounds. Something like the following:

/client/SoundEnd(sound/ending_sound)


If an actual reference to the sound isn't viable a \ref to the original sound would be good too. The issue at the moment is we have no way of determining sound length, which would also be nice but there's already a feature request for this iirc which was denied. Instead of that a hook for the sound ending for the client seems a good alternative to many use cases.
Please yes, this would really make dealing with sounds in general not easier but actually doable without having to offload the job to javascript or something else. +1
or maybe a sound status that could tell when it ends, for example SOUND_ENDED
Sounds can be sent to multiple clients
I think this feature is fundamental to handle sounds decently anyhow. Right now I want to make a sounds subsystem for SS13 to handle queueing,sending and updating sounds. This, in particular, is needed for updating sounds if the source location moves, so that the client always hears the sounds from the right direction, but I cannot do it anyhow without being able to detect when the sound stops playing for the client, to stop it being updated. I hope the special FMOD license byond has would allow for this to become a thing, because right now I believe sounds are pretty limited to how we can handle them.
I'll put this on the list for 513. It seems pretty doable and 513 is a good target for it.
Thank you!
Lummox JR resolved issue with message:
A new sound.params var can be used to set up skin-related interactions with the sound. Currently the only parameter supported is on-end, which can call a command when a sound is finished.