ajs52698 Posted October 2, 2016 Share Posted October 2, 2016 (edited) Im attempting to start sound instances using scripts, store there id in a array, and then mute them if needed, but for some reason I can play sounds just fine but muting them does not seem to work. I honestly am out of ideas, heres how I have the script set up. Edited October 4, 2016 by ajs52698 Link to comment Share on other sites More sharing options...
Reneer Posted October 3, 2016 Share Posted October 3, 2016 (edited) You will want to post your entire script, not just bits and pieces. And please use tags. It also doesn't look like you are setting up your arrays properly, which would likely explain your problem. Edited October 3, 2016 by Reneer Link to comment Share on other sites More sharing options...
ajs52698 Posted October 3, 2016 Author Share Posted October 3, 2016 (edited) Alright here ya go reneer, and im not sure what you mean by the tag thing. Edited October 4, 2016 by ajs52698 Link to comment Share on other sites More sharing options...
Reneer Posted October 3, 2016 Share Posted October 3, 2016 (edited) I mean to literally use the code tags, like this: Scriptname JukeBoxScriptSOUNDBOARDSCRIPT extends Objectreference Group Properties Formlist Property MusicList auto Activator Property JukeBox auto SoundCategory Property AllSongsMute auto Actor Property Player auto KeyWord Property WorkShopSpeaker Auto GlobalVariable Property SpeakerIsOnInt auto Message Property MainMenu auto Formlist Property DiskList auto GlobalVariable Property WhichSongForMixer auto Message Property VolumeMenu auto Message Property RadioMenu auto EndGroup Int SoundIDArrayInt int[] SoundIDArray Event OnActivate(Objectreference akactionref) MakeRadio() Menu() Endevent Function Menu(int aibutton = 0) aibutton = MainMenu.Show() if aibutton == 0 PlaySetHolotape() elseif aibutton == 1 && SpeakerIsOnInt.GetValue() == 0 Debug.MessageBox("Speakers On") SpeakerIsOnInt.SetValue(1) Menu() Elseif aibutton == 1 && SpeakerIsOnInt.GetValue() == 1 Debug.MessageBox("Speakers Off") Mute() SpeakerIsOnInt.SetValue(0) Elseif aibutton == 2 AdjustVolume() Elseif aibutton == 3 Radio() Elseif aibutton == 4 ;exit Endif EndFunction Function MakeRadio() Objectreference[] WorkShopSPeakerArray = Player.FindAllReferencesWithKeyWord(WorkShopSpeaker,15000) Int SpeakerInt0 = 0 Int SpeakerInt1 = WorkshopSpeakerArray.length While SpeakerInt0 < SpeakerInt1 (WorkShopSpeakerArray[SpeakerInt0] as Objectreference).MakeRadioReceiver(00.0,0.0) SpeakerInt0 += 1 EndWhile EndFunction Function PlaySetHolotape() Objectreference[] WorkShopSPeakerArray = Player.FindAllReferencesWithKeyWord(WorkShopSpeaker,15000) Int SpeakerInt0 = 0 Int SpeakerInt1 = WorkshopSpeakerArray.length Mute() While SpeakerInt0 < SpeakerInt1 if WhichSongForMixer.GetValue() == 1 && SpeakerIsOnInt.GetValue() == 1 && (WorkShopSpeakerArray[SpeakerInt0] as Objectreference).IsEnabled() Int Instance1 = (MusicList.GetAt(0) as Sound).Play(WorkShopSPeakerArray[SpeakerInt0] As Objectreference) Debug.Notification("Speaker" + Speakerint0 + " Is Playing") SoundIDArray[SoundIDArrayInt as int] SoundIDArrayInt += 1 elseif WhichSongForMixer.GetValue() == 2 && SpeakerIsOnInt.GetValue() == 1 && (WorkShopSpeakerArray[SpeakerInt0] as Objectreference).IsEnabled() Int Instance1 =(MusicList.GetAt(1) as Sound).Play(WorkShopSPeakerArray[SpeakerInt0] As Objectreference) Debug.Notification("Speaker" + Speakerint0 + " Is Playing") SoundIDArray[SoundIDArrayInt as int] SoundIDArrayInt += 1 Endif SpeakerInt0 += 1 EndWhile SpeakerInt0 = 0 EndFunction Function AdjustVolume(int aibutton3 = 0) aibutton3 = VolumeMenu.Show() Int SpeakerInt03 = 0 Int SpeakerInt13 = SoundIDArray.length if aibutton3 == 0 While SpeakerInt03 < SpeakerInt13 Sound.SetInstanceVolume((SoundIDArray[SpeakerInt03] as Int),0.25) SpeakerInt03 += 1 EndWhile elseif aibutton3 == 1 While SpeakerInt03 < SpeakerInt13 Sound.SetInstanceVolume((SoundIDArray[SpeakerInt03] as Int),0.50) SpeakerInt03 += 1 EndWhile elseif aibutton3 == 2 While SpeakerInt03 < SpeakerInt13 Sound.SetInstanceVolume((SoundIDArray[SpeakerInt03] as int),0.75) SpeakerInt03 += 1 EndWhile elseif aibutton3 == 3 While SpeakerInt03 < SpeakerInt13 Sound.SetInstanceVolume((SoundIDArray[SpeakerInt03] as int),1.0) SpeakerInt03 += 1 EndWhile elseif aibutton3 == 4 ;Exit Menu() Endif SpeakerInt03 = 0 Debug.Messagebox("VolumeAdjusted" ) Menu() EndFunction Function Mute() Objectreference[] WorkShopSPeakerArray = Player.FindAllReferencesWithKeyWord(WorkShopSpeaker,15000) Int SpeakerInt03 = 0 Int SpeakerInt13 = SoundIDArray.length Int SpeakerIntRadio13 = WorkshopSPeakerArray.length While SpeakerInt03 < SpeakerInt13 Sound.StopInstance(SoundIDArray[SpeakerInt03] as int) Debug.Notification("Muted" + SpeakerInt03) (WorkShopSpeakerArray[SpeakerInt03] ).SetRadioVolume(0.0) (WorkShopSPeakerArray[SpeakerInt03] ).SetRadioFrequency(0.00) SpeakerInt03 += 1 EndWhile SpeakerInt03 = 0 ;SoundIDArray.Clear() EndFunction Function Radio(int Button23 = 0) Button23 = RadioMenu.Show() Objectreference[] WorkShopSPeakerArray = Player.FindAllReferencesWithKeyWord(WorkShopSpeaker,15000) Int SpeakerInt02 = 0 Int SpeakerInt12 = WorkshopSpeakerArray.length Mute() if button23 == 0 && SpeakerIsOnInt.GetValue() == 1 && (WorkShopSpeakerArray[SpeakerInt02] as objectreference).IsEnabled() While SpeakerInt02 < SpeakerInt12 (WorkShopSPeakerArray[SpeakerInt02] As Objectreference).SetRadioVolume(1.0) (WorkShopSPeakerArray[SpeakerInt02] As Objectreference).SetRadioFrequency(98.00) SpeakerInt02 += 1 EndWhile Debug.Notification("Playing1" + SpeakerInt02) elseif button23 == 1 && SpeakerIsOnInt.GetValue() == 1 && (WorkShopSpeakerArray[SpeakerInt02] as objectreference).IsEnabled() While SpeakerInt02 < SpeakerInt12 (WorkShopSPeakerArray[SpeakerInt02] As Objectreference).SetRadioVolume(1.0) (WorkShopSPeakerArray[SpeakerInt02] As Objectreference).SetRadioFrequency(91.00) SpeakerInt02 += 1 EndWhile Debug.Notification("Playing1" + SpeakerInt02) elseif button23 == 2 && SpeakerIsOnInt.GetValue() == 1 && (WorkShopSpeakerArray[SpeakerInt02] as objectreference).IsEnabled() While SpeakerInt02 < SpeakerInt12 (WorkShopSPeakerArray[SpeakerInt02] As Objectreference).SetRadioVolume(1.0) (WorkShopSPeakerArray[SpeakerInt02] As Objectreference).SetRadioFrequency(105.00) SpeakerInt02 += 1 EndWhile Debug.Notification("Playing1" + SpeakerInt02) Elseif button23 == 3 && SpeakerIsOnInt.GetValue() == 1 && (WorkShopSpeakerArray[SpeakerInt02] as objectreference).IsEnabled() While SpeakerInt02 < SpeakerInt12 (WorkShopSPeakerArray[SpeakerInt02] As Objectreference).SetRadioVolume(0.0) (WorkShopSPeakerArray[SpeakerInt02] As Objectreference).SetRadioFrequency(00.00) SpeakerInt02 += 1 EndWhile Elseif button23 == 4 Menu() ;exit Endif SpeakerInt02 = 0 EndFunction And one big issue seems to be that you never properly create your SoundIDArray in the code. You need to set it up like this:SoundIDArray = new Int[128] Edited October 3, 2016 by Reneer Link to comment Share on other sites More sharing options...
ajs52698 Posted October 3, 2016 Author Share Posted October 3, 2016 (edited) Alright Ill test it soon. Edit: if thats the only issue i guess ive learned alot :p Edited October 3, 2016 by ajs52698 Link to comment Share on other sites More sharing options...
ajs52698 Posted October 3, 2016 Author Share Posted October 3, 2016 (edited) Still doesnt work, heres the code now Edited October 4, 2016 by ajs52698 Link to comment Share on other sites More sharing options...
Reneer Posted October 3, 2016 Share Posted October 3, 2016 (edited) Sorry, but I'm not going to continue helping you when you can't even be bothered to properly indent your own code. Especially when I did it for you only hours ago. Go look over the CK Papyrus Wiki for more help, specifically this page. Edited October 3, 2016 by Reneer Link to comment Share on other sites More sharing options...
ajs52698 Posted October 3, 2016 Author Share Posted October 3, 2016 oh, im sorry, didnt realize that bothered you, i personally am fine with the way I have it, I guess ill continue to try to fix it myself. Link to comment Share on other sites More sharing options...
Recommended Posts