DuFraN Posted October 4, 2013 Share 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) Link to comment
~ProtoN! Posted October 4, 2013 Share 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) Link to comment
FraN-724 Posted October 4, 2013 Share 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 Link to comment
~ProtoN! Posted October 4, 2013 Share 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í Link to comment
DuFraN Posted October 4, 2013 Author Share 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 Link to comment
FraN-724 Posted October 4, 2013 Share Posted October 4, 2013 En playSound cambia true por false Link to comment
DuFraN Posted October 4, 2013 Author Share Posted October 4, 2013 No, es que quiero que pare pero cuando toque el marker de salida. Link to comment
~ProtoN! Posted October 4, 2013 Share Posted October 4, 2013 Usá 'onClientMarkerLeave' que dispara una funcion cuando se sale del marker. Link to comment
Atouk Posted October 4, 2013 Share 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 ) Link to comment
Recommended Posts