DuFraN Posted October 4, 2013 Posted October 4, 2013 Hola, como puedo hacer para reproducir un sonido al azar cuando toque el marker?, que debo usar. Ah y también como hago para cuando acabe un sonido, reproduzca uno distinto al actual. marker_entrada = createMarker(1837,-1682,14,"arrow",1,0,255,255,255) function Musica_Entrada(source) if (source == localPlayer) then Musica = playSound("song.mp3",true) end end addEventHandler("onClientMarkerHit",marker_entrada,Musica_Entrada)
~ProtoN! Posted October 4, 2013 Posted October 4, 2013 Dufrana Usá math.random(int, int) esa función devuelve un numero random, dependiendo de los argumentos que le hayas puesto. Por ejemplo math.random(1,10) va a devolver un numero entre 1 y 10. Con el script que querés hacer podes hacer algo así local function cancionRandom() local numero = math.random(1,3) if numero == 1 then playSong('song1.mp3',true) elseif numero == 2 then playSong('song2.mp3',true) else playSong('song3.mp3',true) end end addEventHandler('onClientMarkerHit', getRootElement(), cancionRandom) ~ProtoN!
FraN-724 Posted October 4, 2013 Posted October 4, 2013 Creo que saldria mejor asi local musica = {"song.mp3","song1.mp3","song2.mp3"} marker_entrada = createMarker(1837,-1682,14,"arrow",1,0,255,255,255) function Musica_Entrada(source) if (source == localPlayer) then playSound(musica[math.random(1,#musica)]) end end addEventHandler("onClientMarkerHit",marker_entrada,Musica_Entrada) PD: Protonsito:B creo que es playSound en vez de playSong:p
~ProtoN! Posted October 4, 2013 Posted October 4, 2013 PlaySong JAJAJAJA Lo importante era que entendiera. Solamente le quise dar una idea de como funciona el math.random() Y creo que todavia no sabe usar las tablas la Dufrana por eso se lo hice así ~ProtoN!
DuFraN Posted October 4, 2013 Author Posted October 4, 2013 Lo hice con una tabla pero ahora no se como parar la cancion , local canciones = { {"song.mp3"}, {"song2.mp3"} } marker_entrada = createMarker(1837,-1682,14,"arrow",1,0,255,255,255) marker_salida = createMarker(493.5,-25,1001,"arrow",1,0,255,255,255) function Musica_Entrada(source) if (source == localPlayer) then local cancionesrandom = math.random ( #canciones ) playSound(unpack (canciones[cancionesrandom]),true) end function Musica_Salida(source) if(source == localPlayer) then stopSound("") -- Aqui que pongo, porque lo hice de distintas formas y no funciona end end addEventHandler("onClientMarkerHit",marker_entrada,Musica_Entrada) addEventHandler("onClientMarkerHit",marker_salida,Musica_Salida) end PD: Estoy aprendiendo ;D
DuFraN Posted October 4, 2013 Author Posted October 4, 2013 No, es que quiero que pare pero cuando toque el marker de salida.
~ProtoN! Posted October 4, 2013 Posted October 4, 2013 Usá 'onClientMarkerLeave' que dispara una funcion cuando se sale del marker. ~ProtoN!
Atouk Posted October 4, 2013 Posted October 4, 2013 Proba con esto: local canciones = { {"song.mp3"}, {"song2.mp3"} } marker_entrada = createMarker(1837,-1682,14,"arrow",1,0,255,255,255) marker_salida = createMarker(493.5,-25,1001,"arrow",1,0,255,255,255) addEventHandler("onClientMarkerHit",marker_entrada, function(source) if (source == localPlayer) then local cancionesrandom = math.random ( #canciones ) musica = playSound(unpack (canciones[cancionesrandom]),true) end end ) addEventHandler("onClientMarkerHit",marker_salida, function(source) if(source == localPlayer) then stopSound(musica) end end )
Recommended Posts