-Rex- Posted June 7, 2016 Posted June 7, 2016 Se puede hacer con el recurso Voice, que solo escuchen lo que habla X jugador si estan cerca de el? Por ejemplo hablo por el micro y lo que yo hablo quiero que solo lo escuchen las personas que estan cerca mio, y las que no no. ¿Como lo podría hacer? Leal es quien te ama y respeta tus sentimientos Paid Scripter, Contact me: https://www.facebook.com/rexscripting/ Estoy retirado.
Simple0x47 Posted June 7, 2016 Posted June 7, 2016 Lo veo posible, sí necesitas una mano te podría ayudar con ello. "Keep making it simplex."
Tomas Posted June 7, 2016 Posted June 7, 2016 Sí, es bastante fácil. Currently developing for International Gaming Community - Join us!
-Rex- Posted June 7, 2016 Author Posted June 7, 2016 Lo veo posible, sí necesitas una mano te podría ayudar con ello. Te he enviado un PM Leal es quien te ama y respeta tus sentimientos Paid Scripter, Contact me: https://www.facebook.com/rexscripting/ Estoy retirado.
-Rex- Posted June 7, 2016 Author Posted June 7, 2016 Observando por buen rato el recurso voice, Hice esto, Pero como no tengo con quien testear, Funcionara asi? --- addEventHandler ( "onClientPlayerVoiceStart", root, function() if isPlayerVoiceMuted ( source ) then cancelEvent() return end local x,y,z = getElementPosition( getLocalPlayer( ) ) local x2,y2,z2 = getElementPosition( source ) if getDistanceBetweenPoints3D( x, y, z, x2, y2, z2 ) > 20 then cancelEvent() return end voicePlayers[source] = true end ) Leal es quien te ama y respeta tus sentimientos Paid Scripter, Contact me: https://www.facebook.com/rexscripting/ Estoy retirado.
PDMTA Posted June 7, 2016 Posted June 7, 2016 te ayudo a testearlo Servidor Guerra Latina Servidor Gang War 90% en progreso. Volviendo al scripting.
Simple0x47 Posted June 7, 2016 Posted June 7, 2016 Ami me da que no, ya que emplear "source" se refiere al mismo "localPlayer". "Keep making it simplex."
starksZ Posted June 7, 2016 Posted June 7, 2016 (edited) Ami me da que no, ya que emplear "source" se refiere al mismo "localPlayer". Entonces como se haría desde server si de? Edited June 7, 2016 by Guest El unico limite en la vida, es tu imaginacion. Programar es la mejor forma de aprender a pensar.
Tomas Posted June 7, 2016 Posted June 7, 2016 No es necesario usar el recurso voice, esto debería funcionar: Plus: en este ejemplo sólo llega al jugador el audio que debe escuchar, para evitar tráfico y subidas de latencia. JugadoresCercanos = {}; Cerca = 50; setTimer( function () for i, player in ipairs( getElementsByType("player") ) do for i, players in ipairs( getElementsByType("player") ) do if ( player ~= players and estaCercaDe(a, b) ) then if ( not JugadoresCercanos[player] ) then JugadoresCercanos[player] = {}; end table.insert(JugadoresCercanos[player], players); end end setPlayerVoiceBroadcastTo(player, JugadoresCercanos[player]); end end, 1500, 0 ) function estaCercaDe(a, b) return Vector3.getLength(Vector3.create(getElementPosition(a)), Vector3.create(getElementPosition(b))) <= Cerca; end Currently developing for International Gaming Community - Join us!
Enargy, Posted June 7, 2016 Posted June 7, 2016 No es necesario usar el recurso voice, esto debería funcionar:Plus: en este ejemplo sólo llega al jugador el audio que debe escuchar, para evitar tráfico y subidas de latencia. JugadoresCercanos = {}; Cerca = 50; setTimer( function () for i, player in ipairs( getElementsByType("player") ) do for i, players in ipairs( getElementsByType("player") ) do if ( player ~= players and estaCercaDe(a, b) ) then if ( not JugadoresCercanos[player] ) then JugadoresCercanos[player] = {}; end table.insert(JugadoresCercanos[player], players); end end setPlayerVoiceBroadcastTo(player, JugadoresCercanos[player]); end end, 1500, 0 ) function estaCercaDe(a, b) return Vector3.getLength(Vector3.create(getElementPosition(a)), Vector3.create(getElementPosition(b))) <= Cerca; end No es mas eficiente de este modo ? for i, player in ipairs( getElementsByType("player") ) do local otherplayer = getElementsByType("player")[i]; if ( player ~= otherplayer and estaCercaDe(a, b) ) then if ( not JugadoresCercanos[player] ) then JugadoresCercanos[player] = {}; end table.insert(JugadoresCercanos[player], players); end end - Inactivo.
Tomas Posted June 7, 2016 Posted June 7, 2016 No es necesario usar el recurso voice, esto debería funcionar:Plus: en este ejemplo sólo llega al jugador el audio que debe escuchar, para evitar tráfico y subidas de latencia. JugadoresCercanos = {}; Cerca = 50; setTimer( function () for i, player in ipairs( getElementsByType("player") ) do for i, players in ipairs( getElementsByType("player") ) do if ( player ~= players and estaCercaDe(a, b) ) then if ( not JugadoresCercanos[player] ) then JugadoresCercanos[player] = {}; end table.insert(JugadoresCercanos[player], players); end end setPlayerVoiceBroadcastTo(player, JugadoresCercanos[player]); end end, 1500, 0 ) function estaCercaDe(a, b) return Vector3.getLength(Vector3.create(getElementPosition(a)), Vector3.create(getElementPosition(b))) <= Cerca; end No es mas eficiente de este modo ? for i, player in ipairs( getElementsByType("player") ) do local otherplayer = getElementsByType("player")[i]; if ( player ~= otherplayer and estaCercaDe(a, b) ) then if ( not JugadoresCercanos[player] ) then JugadoresCercanos[player] = {}; end table.insert(JugadoresCercanos[player], players); end end Eso no funcionaría. Currently developing for International Gaming Community - Join us!
Sasu Posted June 8, 2016 Posted June 8, 2016 Ami me da que no, ya que emplear "source" se refiere al mismo "localPlayer". No, también puede ser un jugador remoto. State: Inactive
-Rex- Posted June 8, 2016 Author Posted June 8, 2016 No es necesario usar el recurso voice, esto debería funcionar:Plus: en este ejemplo sólo llega al jugador el audio que debe escuchar, para evitar tráfico y subidas de latencia. JugadoresCercanos = {}; Cerca = 50; setTimer( function () for i, player in ipairs( getElementsByType("player") ) do for i, players in ipairs( getElementsByType("player") ) do if ( player ~= players and estaCercaDe(a, b) ) then if ( not JugadoresCercanos[player] ) then JugadoresCercanos[player] = {}; end table.insert(JugadoresCercanos[player], players); end end setPlayerVoiceBroadcastTo(player, JugadoresCercanos[player]); end end, 1500, 0 ) function estaCercaDe(a, b) return Vector3.getLength(Vector3.create(getElementPosition(a)), Vector3.create(getElementPosition(b))) <= Cerca; end No tengo con quien testear pero, Leyendo el codigo me parece que esta bien, Gracias Leal es quien te ama y respeta tus sentimientos Paid Scripter, Contact me: https://www.facebook.com/rexscripting/ Estoy retirado.
Castillo Posted June 8, 2016 Posted June 8, 2016 No es necesario usar el recurso voice, esto debería funcionar:Plus: en este ejemplo sólo llega al jugador el audio que debe escuchar, para evitar tráfico y subidas de latencia. JugadoresCercanos = {}; Cerca = 50; setTimer( function () for i, player in ipairs( getElementsByType("player") ) do for i, players in ipairs( getElementsByType("player") ) do if ( player ~= players and estaCercaDe(a, b) ) then if ( not JugadoresCercanos[player] ) then JugadoresCercanos[player] = {}; end table.insert(JugadoresCercanos[player], players); end end setPlayerVoiceBroadcastTo(player, JugadoresCercanos[player]); end end, 1500, 0 ) function estaCercaDe(a, b) return Vector3.getLength(Vector3.create(getElementPosition(a)), Vector3.create(getElementPosition(b))) <= Cerca; end ¿Donde esta definido 'a' y 'b'? San Andreas Utopia RPG (SAUR) Owner & Developer. Education is the most powerful weapon which you can use to change the world.
Simple0x47 Posted June 8, 2016 Posted June 8, 2016 Yo que tu reemplazaría los ipairs por pairs. Y utilizaría también getDistanceBetween3DPoints en vez de un vector. "Keep making it simplex."
Tomas Posted June 8, 2016 Posted June 8, 2016 ¿Donde esta definido 'a' y 'b'? Whoops JugadoresCercanos = {}; Cerca = 50; setTimer( function () for i, player in ipairs( getElementsByType("player") ) do for i, players in ipairs( getElementsByType("player") ) do if ( player ~= players and estaCercaDe(player, players) ) then if ( not JugadoresCercanos[player] ) then JugadoresCercanos[player] = {}; end table.insert(JugadoresCercanos[player], players); end end setPlayerVoiceBroadcastTo(player, JugadoresCercanos[player]); end end, 1500, 0 ) function estaCercaDe(a, b) return Vector3.getLength(Vector3.create(getElementPosition(a)), Vector3.create(getElementPosition(b))) <= Cerca; end Currently developing for International Gaming Community - Join us!
Castillo Posted June 8, 2016 Posted June 8, 2016 Yo que tu reemplazaría los ipairs por pairs. Y utilizaría también getDistanceBetween3DPoints en vez de un vector. Remplazar 'ipairs' por 'pairs' no tiene sentido, tendria el mismo resultado, getElementsByType devuelve una tabla ordenada numericamente. San Andreas Utopia RPG (SAUR) Owner & Developer. Education is the most powerful weapon which you can use to change the world.
Recommended Posts