Big Smoker Posted July 22, 2019 Share Posted July 22, 2019 Bom dia, Estou precisando de uma ajuda num sistema que to precisando de uma ajuda mais to fazendo errado pq nao sabia como fazer. Que é aparecer um icone mostrando que o jogador ta com o ping acima do limite. a imagem deu certo so que nao consigo destruir quando fica abaixo disso function teste() if getPlayerPing(getLocalPlayer()) > 180 then imagensnet = guiCreateStaticImage(0.85, 0.85, 0.03, 0.05, "net.png", true) setElementData(getLocalPlayer(),"pingaltyo",true) outputChatBox("alto ping") else if getElementData(getLocalPlayer(),"pingaltyo") then if isElement(imagensnet) then destroyElement(imagensnet) end end end end addEventHandler("onClientRender", getRootElement(), teste) Link to comment
Other Languages Moderators androksi Posted July 22, 2019 Other Languages Moderators Share Posted July 22, 2019 (edited) Há um erro de lógica no seu código. Sempre que a latência do jogador estiver acima de 100, uma nova imagem será criada. Este é o porquê da imagem não estar sendo destruída. Você deve verificar se o jogador está com a imagem na tela. Fiz um código rápido, só pra mostrar. local highPing = false setTimer( function( ) if ( not highPing ) then -- // Verificar se ele não esta na tela de "ping alto". Não tem mensagem? Então passemos para a linha de baixo. if ( getPlayerPing( localPlayer ) > 100 ) then -- // O ping é maior que 100? Se sim, vamos avisar ao jogador, mostrando uma mensagem na tela. highPing = true -- // Salvar a informação de que ele está com uma mensagem na tela. addEventHandler( "onClientRender", root, show, true, "low-128" ) -- // Adicionar o evento, para que mostre a mensagem. end else -- // Se o jogador estiver na tela, então: if ( getPlayerPing( localPlayer ) <= 100 ) then -- // O ping dele é menor ou igual a 100? Se sim, podemos retirar a mensagem da tela. highPing = false -- // Salvar a informação que retiramos a mensagem da tela do jogador. O ping dele já se normalizou. removeEventHandler( "onClientRender", root, show ) -- // Remover o evento, nenhuma mensagem está sendo mostrada mais. end end end, 666, 0 ) function show() local screen = Vector2( guiGetScreenSize( ) ) dxDrawRectangle( 0, 0, screen.x, screen.y, tocolor( 32, 32, 32, 64 ), false ) dxDrawText( "Sua conexão está ruim", 0, 0, screen.x, screen.y, tocolor( 255, 255, 255, 255 ), 1.80, "clear", "center", "center" ) end Edited July 22, 2019 by asrzkj Link to comment
Other Languages Moderators Lord Henry Posted July 22, 2019 Other Languages Moderators Share Posted July 22, 2019 (edited) É mais fácil vc simplesmente fazer a imagem com dxDrawImage. Assim, ela só aparece nos frames que o jogador estiver com mais de 180 de ping. local x, y = guiGetScreenSize() function teste () if (getPlayerPing (localPlayer) > 180) then dxDrawImage (x*0.85, y*0.85, x*0.03, y*0.05, "net.png") end end addEventHandler ("onClientRender", root, teste) Edited July 22, 2019 by Lord Henry 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