Prego22Zika Posted August 16, 2018 Share Posted August 16, 2018 Fiz um painel youtube, e ta configurado, mas a única coisa que falta é a função de "proteção" que n sei fazer. Estou querendo uma função que a pessoa clica no botão e a "proteção é ativada!! Se alguem souber e porder me ajudar estarei agredecido!! Link to comment
FeniXMTA Posted August 16, 2018 Share Posted August 16, 2018 46 minutes ago, Prego22Zika said: Fiz um painel youtube, e ta configurado, mas a única coisa que falta é a função de "proteção" que n sei fazer. Estou querendo uma função que a pessoa clica no botão e a "proteção é ativada!! Se alguem souber e porder me ajudar estarei agredecido!! --==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==- addEvent("ativado", true) addEvent("desativado", true) addEventHandler ("ativado", getRootElement(), function() addEventHandler ("onClientPlayerDamage", getRootElement(), cancelEventEvent) end) --==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==- addEventHandler ("desativado", getRootElement(), function() removeEventHandler ("onClientPlayerDamage", getRootElement(), cancelEventEvent) end) --==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==- function cancelEventEvent () cancelEvent() end Utiliza essa função no client,agora só pegar triggerClientEvent e puxar pro server. 1 Link to comment
Other Languages Moderators Lord Henry Posted August 16, 2018 Other Languages Moderators Share Posted August 16, 2018 (edited) Da pra fazer tudo client-side. Basta você setar uma data no jogador quando ele clica no botão e depois tirar essa data quando ele clica novamente. Enquanto ele estiver com essa data ("protegido") ele estará protegido. local x, y = guiGetScreenSize () buttonPro = guiCreateButton (x/2, y/2, 80, 25, "Proteção", false) -- Botão de exemplo. addEventHandler ("onClientGUIClick", buttonPro, function () -- Executa essa função ao clicar no buttonPro. if not getElementData (localPlayer, "protegido") then -- Se o jogador não está protegido, então: setElementData (localPlayer, "protegido", true) -- Torna o jogador protegido. outputChatBox ("Você está protegido.", 0, 255, 0) else -- Se o jogador está protegido, então: setElementData (localPlayer, "protegido", false) -- Torna o jogador desprotegido. outputChatBox ("Você está desprotegido.", 255, 0, 0) end end, false) addEventHandler ("onClientPlayerDamage", getRootElement(), function () -- Protege o jogador contra danos se ele estiver com data "protegido". if getElementData (source, "protegido") then cancelEvent() end end) addEventHandler ("onClientPlayerStealthKill", localPlayer, function (targetPlayer) -- Protege o jogador contra a facada mortal se ele estiver com data "protegido". if getElementData (targetPlayer, "protegido") then cancelEvent() end end) Edited August 16, 2018 by Lord Henry 1 Link to comment
Prego22Zika Posted August 16, 2018 Author Share Posted August 16, 2018 (edited) o meu client esta assim e eu acho q ta td errado função Pro (_, estado) , se Painel == true, em seguida, se o estado == "para baixo", em seguida, se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, triggerServerEvent ( "pro", localPlayer) end end end end AddEventHandler ("onClientClick", root, Pro) Edited August 16, 2018 by Prego22Zika Link to comment
Jonas^ Posted August 16, 2018 Share Posted August 16, 2018 2 hours ago, Prego22Zika said: o meu client esta assim e eu acho q ta td errado função Pro (_, estado) , se Painel == true, em seguida, se o estado == "para baixo", em seguida, se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, triggerServerEvent ( "pro", localPlayer) end end end end AddEventHandler ("onClientClick", root, Pro) função Pro (_, estado) , se Painel == true, em seguida, se o estado == "para baixo", em seguida, se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, triggerServerEvent ( "pro", localPlayer) end end end end AddEventHandler ("onClientClick", root, Pro) Use a função do fórum para postar códigos em lua, assim fica muito feio e difícil de entender, mas enfim eu testei o exemplo do Lord e funcionou, você pode usar o que ele fez acima como base e adicionar no seu painel. OBS: Não entendi por que seu código esta em português ! 1 Link to comment
Prego22Zika Posted August 17, 2018 Author Share Posted August 17, 2018 4 hours ago, OverKILL said: função Pro (_, estado) , se Painel == true, em seguida, se o estado == "para baixo", em seguida, se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, triggerServerEvent ( "pro", localPlayer) end end end end AddEventHandler ("onClientClick", root, Pro) Use a função do fórum para postar códigos em lua, assim fica muito feio e difícil de entender, mas enfim eu testei o exemplo do Lord e funcionou, você pode usar o que ele fez acima como base e adicionar no seu painel. OBS: Não entendi por que seu código esta em português ! Eu só não entendi se essa função e o client ou arquivo server e onde eu coloco as coordenadas do botão Obs: O meu ficou em português prq eu traduzir a página antes de enviar a resposta Link to comment
Jonas^ Posted August 17, 2018 Share Posted August 17, 2018 (edited) 13 hours ago, Prego22Zika said: Eu só não entendi se essa função e o client ou arquivo server e onde eu coloco as coordenadas do botão Obs: O meu ficou em português prq eu traduzir a página antes de enviar a resposta Em relação ao botão você coloca as coordenadas do seu botão aqui: buttonPro = guiCreateButton (x/2, y/2, 80, 25, "Proteção", false) -- Botão de exemplo. Sobre essa sua dúvida: ' ou arquivo server ' R: Você não vai usar nada relacionado ao 'pro' no server-side, apenas no client-side usando setElementData E essa função você remove do seu painel: função Pro (_, estado) , se Painel == true, em seguida, se o estado == "para baixo", em seguida, se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, triggerServerEvent ( "pro", localPlayer) end end end end AddEventHandler ("onClientClick", root, Pro) E coloca no client-side a função que o @Lord Henry citou acima ! OBS: Percebi que tem um triggerServerEvent puxando do lado client para o lado server, você deve remover a função que esta no client/server e adicionar somente a função que o Lord citou , se eu estiver falando algo errado, me corrija por favor ! Edited August 17, 2018 by OverKILL 1 Link to comment
Other Languages Moderators Lord Henry Posted August 17, 2018 Other Languages Moderators Share Posted August 17, 2018 21 hours ago, Prego22Zika said: o meu client esta assim e eu acho q ta td errado função Pro (_, estado) , se Painel == true, em seguida, se o estado == "para baixo", em seguida, se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, triggerServerEvent ( "pro", localPlayer) end end end end AddEventHandler ("onClientClick", root, Pro) Favor reenvie seu código sem traduzir a página. Estamos falando em Português com você, não precisa tentar nos traduzir. E use a ferramenta de código do fórum para postar códigos. Link to comment
Prego22Zika Posted August 18, 2018 Author Share Posted August 18, 2018 Agora eu coloquei ingual o seu e está aparecendo o botão la quando da start, e eu queria q o botão do painel ficasse dx tmb junto com o painel, vou mandar uma print do painel e vcs olha como ta para ficar mais fácil de vcs me ajudar. ESSE E O PAINEL: http://prntscr.com/kk6qp0 ESSE E ELE COM A FUNÇÃO DO LORD HENRY ATIVADA: http://prntscr.com/kk6rc2 ISSO E ELE FECHADO: http://prntscr.com/kk6rpq O BOTÃO NÃO SOME. SE VCS NÃO ESTAVÃO ME ENTENDENDO AGORA ESPERO QUE FIQUEI MAIS FACIL. local x, y = guiGetScreenSize () buttonPro = guiCreateButton (screenW * 0.5571, screenH * 0.6602, 200, 49, "Proteção", false) -- Botão de exemplo. addEventHandler ("onClientGUIClick", buttonPro, function () -- Executa essa função ao clicar no buttonPro. if not getElementData (localPlayer, "protegido") then -- Se o jogador não está protegido, então: setElementData (localPlayer, "protegido", true) -- Torna o jogador protegido. outputChatBox ("Você está protegido.", 0, 255, 0) else -- Se o jogador está protegido, então: setElementData (localPlayer, "protegido", false) -- Torna o jogador desprotegido. outputChatBox ("Você está desprotegido.", 255, 0, 0) end end, false) addEventHandler ("onClientPlayerDamage", getRootElement(), function () -- Protege o jogador contra danos se ele estiver com data "protegido". if getElementData (source, "protegido") then cancelEvent() end end) addEventHandler ("onClientPlayerStealthKill", localPlayer, function (targetPlayer) -- Protege o jogador contra a facada mortal se ele estiver com data "protegido". if getElementData (targetPlayer, "protegido") then cancelEvent() end end) Link to comment
Other Languages Moderators Lord Henry Posted August 18, 2018 Other Languages Moderators Share Posted August 18, 2018 (edited) Recomendo que não faça painéis DX com objetivo interativo, pois eles são mais pesados e mais complexos de se fazer manutenção. Mas caso você não esteja preocupado com desempenho e queira apenas um painel bonito, siga em frente. Delete toda essa parte: local x, y = guiGetScreenSize () buttonPro = guiCreateButton (screenW * 0.5571, screenH * 0.6602, 200, 49, "Proteção", false) -- Botão de exemplo. addEventHandler ("onClientGUIClick", buttonPro, function () -- Executa essa função ao clicar no buttonPro. if not getElementData (localPlayer, "protegido") then -- Se o jogador não está protegido, então: setElementData (localPlayer, "protegido", true) -- Torna o jogador protegido. outputChatBox ("Você está protegido.", 0, 255, 0) else -- Se o jogador está protegido, então: setElementData (localPlayer, "protegido", false) -- Torna o jogador desprotegido. outputChatBox ("Você está desprotegido.", 255, 0, 0) end end, false) E coloque isso: function Pro (button, state, absoluteX, absoluteY) if Painel == true then if state == "down" then if absoluteX >= (screenW * 0.5586) and absoluteX <= ((screenW * 0.5586) + 200) and absoluteY >= (screenH * 0.5716) and absoluteY <= ((screenH * 0.5716) + 49) then if not getElementData (localPlayer, "protegido") then setElementData (localPlayer, "protegido", true) outputChatBox ("Você está protegido.", 0, 255, 0) else setElementData (localPlayer, "protegido", false) outputChatBox ("Você está desprotegido.", 255, 0, 0) end end end end end addEventHandler ("onClientClick", root, Pro) Edited August 18, 2018 by Lord Henry Link to comment
Prego22Zika Posted August 18, 2018 Author Share Posted August 18, 2018 3 hours ago, Lord Henry said: Recomendo que não faça painéis DX com objetivo interativo, pois eles são mais pesados e mais complexos de se fazer manutenção. Mas caso você não esteja preocupado com desempenho e queira apenas um painel bonito, siga em frente. Delete toda essa parte: local x, y = guiGetScreenSize () buttonPro = guiCreateButton (screenW * 0.5571, screenH * 0.6602, 200, 49, "Proteção", false) -- Botão de exemplo. addEventHandler ("onClientGUIClick", buttonPro, function () -- Executa essa função ao clicar no buttonPro. if not getElementData (localPlayer, "protegido") then -- Se o jogador não está protegido, então: setElementData (localPlayer, "protegido", true) -- Torna o jogador protegido. outputChatBox ("Você está protegido.", 0, 255, 0) else -- Se o jogador está protegido, então: setElementData (localPlayer, "protegido", false) -- Torna o jogador desprotegido. outputChatBox ("Você está desprotegido.", 255, 0, 0) end end, false) E coloque isso: function Pro (button, state, absoluteX, absoluteY) if Painel == true then if state == "down" then if absoluteX >= (screenW * 0.5586) and absoluteX <= ((screenW * 0.5586) + 200) and absoluteY >= (screenH * 0.5716) and absoluteY <= ((screenH * 0.5716) + 49) then if not getElementData (localPlayer, "protegido") then setElementData (localPlayer, "protegido", true) outputChatBox ("Você está protegido.", 0, 255, 0) else setElementData (localPlayer, "protegido", false) outputChatBox ("Você está desprotegido.", 255, 0, 0) end end end end end addEventHandler ("onClientClick", root, Pro) Então a função do meu botão e essa!! dxDrawRectangle(screenW * 0.5571, screenH * 0.6602, 200, 49, tocolor(0, 0, 0, 90), false) Eu vou colocar ele nisso aqui da sua função?? if absoluteX >= (screenW * 0.5586) and absoluteX <= ((screenW * 0.5586) + 200) and absoluteY >= (screenH * 0.5716) and absoluteY <= ((screenH * 0.5716) + 49) then Então Vai ficar dessa forma?? if absoluteX >= (screenW * 0.5571) and absoluteX <= ((screenW * 0.5571) + 200) and absoluteY >= (screenH * 0.6602) and absoluteY <= ((screenH * 0.6602) + 49) then Link to comment
Other Languages Moderators Lord Henry Posted August 19, 2018 Other Languages Moderators Share Posted August 19, 2018 Sim, vai ficar dessa forma. 3 hours ago, Prego22Zika said: if absoluteX >= (screenW * 0.5571) and absoluteX <= ((screenW * 0.5571) + 200) and absoluteY >= (screenH * 0.6602) and absoluteY <= ((screenH * 0.6602) + 49) then Link to comment
Prego22Zika Posted August 19, 2018 Author Share Posted August 19, 2018 18 hours ago, Lord Henry said: Sim, vai ficar dessa forma. Mano o botão não funciono!!! Link to comment
Other Languages Moderators Lord Henry Posted August 19, 2018 Other Languages Moderators Share Posted August 19, 2018 1 hour ago, Prego22Zika said: Mano o botão não funciono!!! Então me passa o painel por privado. Vc está fazendo algo errado. 1 Link to comment
Other Languages Moderators Lord Henry Posted August 21, 2018 Other Languages Moderators Share Posted August 21, 2018 (Resolvido por privado) 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