KiritoAguiar Posted August 25, 2020 Share Posted August 25, 2020 Boa noite galera eu gostaria de saber se é possivel eu fazer uma pessoa falar no voice e o som só sair pra uma pessoa em especifico, tipo eu digitar /voice Arthur e ai quando eu falar no voice só ele me escutaria, podem me dizer quais funções eu teria q usar? agradeço desde já Link to comment
DNL291 Posted August 25, 2020 Share Posted August 25, 2020 Você pode tentar o seguinte: triggerEvent( "onClientPlayerVoiceStart", localPlayer, targetPlayer ) localPlayer : O jogador que começou falar; source do evento. targetPlayer : O jogador que deverá ouvir o source do evento. Fazendo o cancelamento para outros jogadores: addEventHandler("onClientPlayerVoiceStart", root, function( targetPlayer ) if targetPlayer and localPlayer ~= targetPlayer then cancelEvent() end end) A função triggerEvent você usa na sua função do comando. É uma forma paralela à padrão do voice para forçar a voz no modo ativado. Para forçar a voz desativada faça o trigger com onClientPlayerVoiceStop Não cheguei a testar se tudo isso funciona, só a parte do triggerEvent. Link to comment
Boechat Posted August 25, 2020 Share Posted August 25, 2020 12 hours ago, DNL291 said: Você pode tentar o seguinte: triggerEvent( "onClientPlayerVoiceStart", localPlayer, targetPlayer ) localPlayer : O jogador que começou falar; source do evento. targetPlayer : O jogador que deverá ouvir o source do evento. Fazendo o cancelamento para outros jogadores: addEventHandler("onClientPlayerVoiceStart", root, function( targetPlayer ) if targetPlayer and localPlayer ~= targetPlayer then cancelEvent() end end) A função triggerEvent você usa na sua função do comando. É uma forma paralela à padrão do voice para forçar a voz no modo ativado. Para forçar a voz desativada faça o trigger com onClientPlayerVoiceStop Não cheguei a testar se tudo isso funciona, só a parte do triggerEvent. Você pode me explicar por favor o porquê dessa condição? Se o localPlayer for diferente do targetPlayer cancela o evento, ou seja, só teria como falar consigo mesmo? Link to comment
DNL291 Posted August 25, 2020 Share Posted August 25, 2020 4 hours ago, Boechat said: Você pode me explicar por favor o porquê dessa condição? Se o localPlayer for diferente do targetPlayer cancela o evento, ou seja, só teria como falar consigo mesmo? localPlayer representa o jogador local; ou seja, o jogador local pode ser qualquer um cliente (se você já tem um entendimento sobre client-server vai entender melhor). localPlayer pode ser qualquer um jogador, e aquele código 'pertence' a ele, porque os clientsides executam individualmente. Outros jogadores não existem no ambiente de tal cliente, podem ser acessados apenas como jogadores remotos. Falando sobre a condição: agora que está esclarecido, você deve entender que isso irá verificar se o jogador local é aquele que foi especificado no comando /voice, se não for, a transmissão de voz é desativada. 1 Link to comment
Boechat Posted August 25, 2020 Share Posted August 25, 2020 1 hour ago, DNL291 said: localPlayer representa o jogador local; ou seja, o jogador local pode ser qualquer um cliente (se você já tem um entendimento sobre client-server vai entender melhor). localPlayer pode ser qualquer um jogador, e aquele código 'pertence' a ele, porque os clientsides executam individualmente. Outros jogadores não existem no ambiente de tal cliente, podem ser acessados apenas como jogadores remotos. Falando sobre a condição: agora que está esclarecido, você deve entender que isso irá verificar se o jogador local é aquele que foi especificado no comando /voice, se não for, a transmissão de voz é desativada. Humm acho q consegui compreender, só uma coisa que não entendi muito bem, se puder me explicar eu agradeço: o onClientPlayerVoiceStart é Clientside, certo? Quando você dá um triggerEvent( "onClientPlayerVoiceStart", localPlayer, targetPlayer) mesmo sendo um evento client-side ainda sim é enviado pra todos os players do servidor, pra que possa achar o targetPlayer? Link to comment
DNL291 Posted August 25, 2020 Share Posted August 25, 2020 O evento só vai ser chamado no client. Esse triggerEvent deve estar também. A linha do triggerEvent com o targetPlayer que fiz foi só como um exemplo, você precisa armazenar o elemento. 26 minutes ago, Boechat said: mesmo sendo um evento client-side ainda sim é enviado pra todos os players do servidor, pra que possa achar o targetPlayer? Sim, vai chamar para todos os clientes. O targetPlayer (jogador que irá escutar o que deu o comando) pode ser armazenado com setElementData (útil se você precisar obtê-lo no lado server); Ou numa variável. 1 Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now