aka Blue Posted May 25, 2016 Share Posted May 25, 2016 Bueno, últimamente estoy teniendo muchos errores con esta función y la verdad es que ya no tengo ni idea de como solucionarlo. Lo que quiero hacer y por ahora tengo hecho, es un sistema de radios en los vehículos que funcione mediante link de YouTube. El problema que tengo es que el sonido solo lo oyen los creadores del mismo y no el resto de jugadores que estén cerca del vehiculo o del sonido. Servidor: --[[ Script: Radio en vehiculos. Autor: Blue Pie Servidor: Las Venturas Roleplay. Version: 1.0 ]]-- local reproduciendo = { } addCommandHandler ( "radio", function ( player, commandName, link ) local vehicle = getPedOccupiedVehicle ( player ) local link = tostring ( link ) if vehicle then if getElementData ( vehicle, "radio" ) == 1 then if link then exports.chat:me(player, "enciende la radio del vehiculo") triggerClientEvent ( player, "onEncenderRadio", player, vehicle, link ) reproduciendo [ vehicle ] = true else outputChatBox ( "Syntax: /"..commandName.." [link de youtube]", player, 255, 255, 255 ) end else outputChatBox ( "El vehiculo no tiene radio. Compra uno en la electrónica.", player, 255, 145, 0 ) end end end ) addCommandHandler ( "aradio", function ( player, commandName ) local vehicle = getPedOccupiedVehicle ( player ) if vehicle and reproduciendo [ vehicle ] == true then exports.chat:me(player, "apaga la radio del vehiculo") triggerClientEvent ( player, "onApagarRadio", player, vehicle ) reproduciendo [ vehicle ] = false end end ) Cliente: --[[ Script: Radio en vehiculos. Autor: Blue Pie Servidor: Las Venturas Roleplay. Version: 1.0 ]]-- local sonido function radioOn ( vehicle, link ) local x, y, z = getElementPosition(vehicle) local interior, dimension = getElementInterior ( vehicle ), getElementDimension ( vehicle ) if vehicle and link then if not sonido then sonido = playSound3D("https://www.youtubeinmp3.com/fetch/?video="..link, x, y, z, false) setElementDimension ( sonido, dimension ) setElementInterior ( sonido, interior ) setSoundMaxDistance ( sonido, 4000 ) attachElements ( sonido, vehicle ) else stopSound ( sonido ) sonido = playSound3D("https://www.youtubeinmp3.com/fetch/?video="..link, x, y, z, false) setElementDimension ( sonido, dimension ) setElementInterior ( sonido, interior ) setSoundMaxDistance ( sonido, 4000 ) attachElements ( sonido, vehicle ) end end end addEvent ( "onEncenderRadio", true ) addEventHandler ( "onEncenderRadio", getRootElement ( ), radioOn ) function apagarRadio ( vehicle ) if vehicle then if sonido then stopSound ( sonido ) sonido = nil end end end addEvent ( "onApagarRadio", true ) addEventHandler ( "onApagarRadio", getRootElement ( ), apagarRadio ) Link to comment
Enargy, Posted May 26, 2016 Share Posted May 26, 2016 triggerClientEvent ( player, "onEncenderRadio", root, vehicle, link ) triggerClientEvent ( player, "onApagarRadio", root, vehicle ) EDIT: Para que otros jugadores no detengan el sonido de todos al cambiar la música. local sonido = {} function radioOn ( vehicle, link ) local x, y, z = getElementPosition(vehicle) local interior, dimension = getElementInterior ( vehicle ), getElementDimension ( vehicle ) if vehicle and link then if not sonido[vehicle] then sonido[vehicle] = playSound3D("https://www.youtubeinmp3.com/fetch/?video="..link, x, y, z, false) setElementDimension ( sonido[vehicle], dimension ) setElementInterior ( sonido[vehicle], interior ) setSoundMaxDistance ( sonido[vehicle], 4000 ) attachElements ( sonido[vehicle], vehicle ) else stopSound ( sonido[vehicle] ) sonido[vehicle] = playSound3D("https://www.youtubeinmp3.com/fetch/?video="..link, x, y, z, false) setElementDimension ( sonido[vehicle], dimension ) setElementInterior ( sonido[vehicle], interior ) setSoundMaxDistance ( sonido[vehicle], 4000 ) attachElements ( sonido[vehicle], vehicle ) end end end addEvent ( "onEncenderRadio", true ) addEventHandler ( "onEncenderRadio", getRootElement ( ), radioOn ) function apagarRadio ( vehicle ) if vehicle then if sonido[vehicle] then stopSound ( sonido[vehicle] ) sonido[vehicle] = nil end end end addEvent ( "onApagarRadio", true ) addEventHandler ( "onApagarRadio", getRootElement ( ), apagarRadio ) Link to comment
aka Blue Posted May 26, 2016 Author Share Posted May 26, 2016 Gracias @Tomas. Lo único que cambie fue el argumento 1 de los triggers por root para que todos lo escucharan. No sé si es correcto o no. Link to comment
aka Blue Posted May 26, 2016 Author Share Posted May 26, 2016 Vale, el problema que tengo ahora es que quiero hacer un trigger de cliente a cliente y me da nil value al poner root como envio a cliente. ¿Alguna solución? He intentado así: triggerClientEvent ( root, "iniciarRadio", root, attachedElement, link ) Y así también, pero ninguna va: triggerClientEvent ( "iniciarRadio", root, attachedElement ) Me envían nil value ambos métodos. Link to comment
Tomas Posted May 26, 2016 Share Posted May 26, 2016 Gracias @Tomas. Lo único que cambie fue el argumento 1 de los triggers por root para que todos lo escucharan. No sé si es correcto o no. De nada? Si es de cliente a cliente o de servidor a servidor se usa triggerEvent, si es de servidor a cliente triggerClientEvent y si es de cliente a servidor triggerServerEvent. Link to comment
Enargy, Posted May 26, 2016 Share Posted May 26, 2016 Gracias @Tomas. Lo único que cambie fue el argumento 1 de los triggers por root para que todos lo escucharan. No sé si es correcto o no. De nada @CiBeR, el primer argumento es el elemento que ejecuta el triggeo, luego nombre del evento y luego el/los elementos que definiran el source del evento, y lo demas argumentos adicionales. Link to comment
-Rex- Posted May 26, 2016 Share Posted May 26, 2016 Gracias @Tomas. Lo único que cambie fue el argumento 1 de los triggers por root para que todos lo escucharan. No sé si es correcto o no. De nada @CiBeR, el primer argumento es el elemento que ejecuta el triggeo, luego nombre del evento y luego el/los elementos que definiran el source del evento, y lo demas argumentos adicionales. Épico Link to comment
aka Blue Posted May 26, 2016 Author Share Posted May 26, 2016 Que rayada me he pegado. Total, muchas gracias a ambos, tenia bastantes problemas con esta función. Mas bien dudas. Gracias @Gaberiel y @Tomas o más bien @Tomas y @Tomas, okno Link to comment
Recommended Posts