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)
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í
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.
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