PashaBiceps Posted March 9, 2019 Share Posted March 9, 2019 Boas, eu precisava de ajuda para remover o dxDrawRectangle e o dxDrawText no onPlayerConnect. Como eu posso fazê-lo? Obrigado desde já por qualquer ajuda. Link to comment
Jonas^ Posted March 9, 2019 Share Posted March 9, 2019 (edited) Como esta seu código? talvez um removeEventHandler resolve o problema. Edited March 9, 2019 by Jonas^ 1 Link to comment
PashaBiceps Posted March 9, 2019 Author Share Posted March 9, 2019 10 hours ago, Jonas^ said: Como esta seu código? talvez um removeEventHandler resolve o problema. Eu tentei isso, mas não está desaparecendo quando o jogador está na tela de login. addEventHandler("onClientRender", root, function() local lvl = getElementData(localPlayer, "Level") or 1 local exp = getElementData(localPlayer, "Exp") or 0 local needexp = lvl * 1 dxDrawRectangle(x*12, y*495, x*298, y*27, tocolor(0, 0, 0, 207), false) -- Nivel dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawText(string.format("%d", 100/(needexp/exp)).."%", 670*sW, 1350*sH, 400*sW, 80*sH, tocolor(0, 0, 0), 1.20, "default-bold", "center", "center") end) removeEventHandler("onClientConnect", getRootElement(), drawText) Link to comment
PashaBiceps Posted March 9, 2019 Author Share Posted March 9, 2019 1 hour ago, GodKraken said: Eu tentei isso, mas não está desaparecendo quando o jogador está na tela de login. addEventHandler("onClientRender", root, function() local lvl = getElementData(localPlayer, "Level") or 1 local exp = getElementData(localPlayer, "Exp") or 0 local needexp = lvl * 1 dxDrawRectangle(x*12, y*495, x*298, y*27, tocolor(0, 0, 0, 207), false) -- Nivel dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawText(string.format("%d", 100/(needexp/exp)).."%", 670*sW, 1350*sH, 400*sW, 80*sH, tocolor(0, 0, 0), 1.20, "default-bold", "center", "center") end) removeEventHandler("onClientConnect", getRootElement(), drawText) Na verdade eu não quero remover os dx, apenas esconde-los. Como posso fazer isso? Obrigado desde já. Link to comment
Other Languages Moderators Lord Henry Posted March 9, 2019 Other Languages Moderators Share Posted March 9, 2019 (edited) Então cara. É o seguinte: Você não poderá remover o eventHandler dessa sua função enquanto não der um nome a ela. A função precisa ter um nome para poder ser chamada depois. Exemplo de teste, use o comando /eae function drawRender () local lvl = getElementData(localPlayer, "Level") or 1 local exp = getElementData(localPlayer, "Exp") or 0 local needexp = lvl * 1 dxDrawRectangle(x*12, y*495, x*298, y*27, tocolor(0, 0, 0, 207), false) -- Nivel dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawText(string.format("%d", 100/(needexp/exp)).."%", 670*sW, 1350*sH, 400*sW, 80*sH, tocolor(0, 0, 0), 1.20, "default-bold", "center", "center") end addEventHandler("onClientRender", root, drawRender) function teste (cmd) removeEventHandler("onClientRender", root, drawRender) end addCommandHandler ("eae", teste) Edited March 9, 2019 by Lord Henry 1 Link to comment
PashaBiceps Posted March 9, 2019 Author Share Posted March 9, 2019 1 hour ago, Lord Henry said: Então cara. É o seguinte: Você não poderá remover o eventHandler dessa sua função enquanto não der um nome a ela. A função precisa ter um nome para poder ser chamada depois. Exemplo de teste, use o comando /eae function drawRender () local lvl = getElementData(localPlayer, "Level") or 1 local exp = getElementData(localPlayer, "Exp") or 0 local needexp = lvl * 1 dxDrawRectangle(x*12, y*495, x*298, y*27, tocolor(0, 0, 0, 207), false) -- Nivel dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawText(string.format("%d", 100/(needexp/exp)).."%", 670*sW, 1350*sH, 400*sW, 80*sH, tocolor(0, 0, 0), 1.20, "default-bold", "center", "center") end addEventHandler("onClientRender", root, drawRender) function teste (cmd) removeEventHandler("onClientRender", root, drawRender) end addCommandHandler ("eae", teste) Resolvi alguns dos meus problemas fazendo isso. Obrigado !! function esconder() if isVisible then addEventHandler("onClientRender", root, drawRender) else removeEventHandler("onClientRender", root, drawRender) end isVisible = not isVisible end bindKey ("F11", "down", esconder) bindKey ("F10", "down", esconder) addCommandHandler( "hud", esconder ) Agora como eu posso esconder os elementos em causa (dxdraw) no login? Sei que preciso esconder no onPlayerConnect e só mostrar depois do onPlayerLogin. Link to comment
Other Languages Moderators Lord Henry Posted March 9, 2019 Other Languages Moderators Share Posted March 9, 2019 dxDraw não se esconde. Apenas para de ser renderizado. Se fosse CEGUI, dai sim vc poderia ocultar sem destruir. 1 Link to comment
PashaBiceps Posted March 9, 2019 Author Share Posted March 9, 2019 22 minutes ago, Lord Henry said: dxDraw não se esconde. Apenas para de ser renderizado. Se fosse CEGUI, dai sim vc poderia ocultar sem destruir. Compreendi E então como posso fazer para ele apenas ser renderizado depois do Onplayerlogin, não tem como também? Link to comment
DNL291 Posted March 9, 2019 Share Posted March 9, 2019 onPlayerLogin triggerClientEvent addEventHandler onClientRender Link to comment
Other Languages Moderators Lord Henry Posted March 9, 2019 Other Languages Moderators Share Posted March 9, 2019 Só criar uma função que é ativada com onPlayerLogin e dentro dela vc coloca o evento onClientRender da função do render. Link to comment
PashaBiceps Posted March 9, 2019 Author Share Posted March 9, 2019 2 hours ago, Lord Henry said: Só criar uma função que é ativada com onPlayerLogin e dentro dela vc coloca o evento onClientRender da função do render. Tipo assim? addEventHandler( 'onPlayerLogin', root, function drawRender () local lvl = getElementData(localPlayer, "Level") or 1 local exp = getElementData(localPlayer, "Exp") or 0 local needexp = lvl * 1 dxDrawRectangle(x*13, y*513, x*297, y*20, tocolor(0, 0, 0, 207), false) -- Nivel dxDrawRectangle(567*sW, 725*sH, -538*sW, 20*sH, tocolor(166, 166, 166)) dxDrawRectangle(567*sW, 725*sH, -538*sW, 20*sH, tocolor(166, 166, 166)) dxDrawText(string.format("%d", 100/(needexp/exp)).."%", 670*sW, 1392*sH, 400*sW, 80*sH, tocolor(0, 0, 0), 1, "default-bold", "center", "center") end addEventHandler("onClientRender", root, drawRender) ) Deu o seguinte erro '(' expected near 'drawRender' Link to comment
Jonas^ Posted March 9, 2019 Share Posted March 9, 2019 (edited) onPlayerLogin é somente server-side, você deve fazer uma conexão client-server com trigger. No server faça assim: addEventHandler( "onPlayerLogin", root, function() triggerClientEvent (source, "startRender", source, true) end ) E no client: local startRender = false function drawRender () local lvl = getElementData(localPlayer, "Level") or 1 local exp = getElementData(localPlayer, "Exp") or 0 local needexp = lvl * 1 dxDrawRectangle(x*12, y*495, x*298, y*27, tocolor(0, 0, 0, 207), false) -- Nivel dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawText(string.format("%d", 100/(needexp/exp)).."%", 670*sW, 1350*sH, 400*sW, 80*sH, tocolor(0, 0, 0), 1.20, "default-bold", "center", "center") end addEvent ("startRender", true) addEventHandler("startRender", root, function (showRender) if (showRender == startRender) then return end startRender = showRender if showRender then addEventHandler("onClientRender", root, drawRender) else removeEventHandler("onClientRender", root, drawRender) end end) Edited March 9, 2019 by Jonas^ Correção. 1 Link to comment
PashaBiceps Posted March 10, 2019 Author Share Posted March 10, 2019 1 hour ago, Jonas^ said: onPlayerLogin é somente server-side, você deve fazer uma conexão client-server com trigger. No server faça assim: addEventHandler( "onPlayerLogin", root, function() triggerClientEvent (source, "startRender", source, true) end ) E no client: local startRender = false function drawRender () local lvl = getElementData(localPlayer, "Level") or 1 local exp = getElementData(localPlayer, "Exp") or 0 local needexp = lvl * 1 dxDrawRectangle(x*12, y*495, x*298, y*27, tocolor(0, 0, 0, 207), false) -- Nivel dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawText(string.format("%d", 100/(needexp/exp)).."%", 670*sW, 1350*sH, 400*sW, 80*sH, tocolor(0, 0, 0), 1.20, "default-bold", "center", "center") end addEvent ("startRender", true) addEventHandler("startRender", root, function (showRender) if (showRender == startRender) then return end startRender = showRender if showRender then addEventHandler("onClientRender", root, drawRender) else removeEventHandler("onClientRender", root, drawRender) end end) Muito obrigado!! Infelizmente coloquei tudo correto mas no server side está a dar um erro unexpected symbol near '' Link to comment
Jonas^ Posted March 10, 2019 Share Posted March 10, 2019 (edited) Vou upar o código no pastebin, o fórum fica colocando uns caracteres extras nem sei porque. Aqui esta: https://pastebin.com/GTzMVrFR Se continuar o erro me avise, poste a linha do erro também aqui. Edited March 10, 2019 by Jonas^ 1 Link to comment
PashaBiceps Posted March 10, 2019 Author Share Posted March 10, 2019 12 minutes ago, Jonas^ said: Vou upar o código no pastebin, o fórum fica colocando uns caracteres extras nem sei porque. Aqui esta: https://pastebin.com/GTzMVrFR Se continuar o erro me avise, poste a linha do erro também aqui. addEventHandler( "onPlayerLogin", root, function() triggerClientEvent (source, "startRender", source, true) end ) <---- Linha do erro O erro é no server side nessa exata linha Link to comment
DNL291 Posted March 10, 2019 Share Posted March 10, 2019 O código está certo. Copie este código por aqui: https://pastebin.com/w3afN76b 1 Link to comment
Jonas^ Posted March 10, 2019 Share Posted March 10, 2019 Se ainda estiver problemas, poste o erro e a linha do erro. 1 Link to comment
PashaBiceps Posted March 10, 2019 Author Share Posted March 10, 2019 Just now, Jonas^ said: Se ainda estiver problemas, poste o erro e a linha do erro. Não tive tudo deu certo, muito muito muito obrigado Link to comment
PashaBiceps Posted March 10, 2019 Author Share Posted March 10, 2019 9 hours ago, Jonas^ said: De nada mano. Peço desculpa por estar a voltar a um problema, mas eu adicionei +2 linhas um problema parecido apareceu. function drawRender () local lvl = getElementData(localPlayer, "Level") or 1 local exp = getElementData(localPlayer, "Exp") or 0 local needexp = lvl * 1 dxDrawRectangle(x*13, y*513, x*297, y*20, tocolor(0, 0, 0, 207), false) -- Nivel dxDrawRectangle(567*sW, 725*sH, -538*sW, 20*sH, tocolor(166, 166, 166)) <---- LINHA DO ERRO dxDrawRectangle(567*sW, 725*sH, -538*sW, 20*sH, tocolor(166, 166, 166)) dxDrawRectangle(567*sW, 725*sH, -540*sW/needexp*(exp), 20*sH, tocolor(217, 217, 217)) dxDrawText("Nível: "..lvl, 210*sW, 1403*sH, 400*sW, 70*sH, tocolor(0, 0, 0), 1.00, "default-bold", "center", "center") dxDrawText(string.format("%d", 100/(needexp/exp)).."%", 670*sW, 1392*sH, 400*sW, 80*sH, tocolor(0, 0, 0), 1, "default-bold", "center", "center") end addEvent ("startRender", true) addEventHandler("startRender", root, function (showRender) if (showRender == startRender) then return end startRender = showRender if showRender then addEventHandler("onClientRender", root, drawRender) else removeEventHandler("onClientRender", root, drawRender) end end) Marquei a linha do seguinte erro. ')' expected near ' Link to comment
Other Languages Moderators androksi Posted March 10, 2019 Other Languages Moderators Share Posted March 10, 2019 (edited) function drawRender( ) local lvl = getElementData( localPlayer, "Level" ) or 1; local exp = getElementData( localPlayer, "Exp" ) or 0; local needexp = lvl * 1; dxDrawRectangle( x * 13, y * 513, x * 297, y * 20, tocolor( 0, 0, 0, 207 ), false ); dxDrawRectangle( 567 * sW, 725 * sH, -538 * sW, 20 * sH, tocolor( 166, 166, 166, 255 ), false ); dxDrawRectangle( 567 * sW, 725 * sH, -538 * sW, 20 * sH, tocolor( 166, 166, 166, 255 ), false ); dxDrawRectangle( 567 * sW, 725 * sH, -540 * sW / needexp * ( exp ), 20 * sH, tocolor( 217, 217, 217, 255 ), false ); dxDrawText( "Nível: " .. tostring( lvl ), 210 * sW, 1403 * sH, 400 * sW, 70 * sH, tocolor( 0, 0, 0, 255 ), 1.0, "default-bold", "center", "center" ); dxDrawText( string.format( "%d", 100 / ( needexp / exp ) ) .. "%", 670 * sW, 1392 * sH, 400 * sW, 80 * sH, tocolor( 0, 0, 0, 255 ), 1.0, "default-bold", "center", "center" ); end addEvent( "startRender", true ); addEventHandler( "startRender", root, function( showRender ) if ( showRender == startRender ) then return false; end startRender = showRender; if ( showRender ) then addEventHandler( "onClientRender", root, drawRender ); else removeEventHandler( "onClientRender", root, drawRender ); end end ); Edited March 10, 2019 by asrzk Link to comment
PashaBiceps Posted March 10, 2019 Author Share Posted March 10, 2019 14 minutes ago, asrzk said: function drawRender( ) local lvl = getElementData( localPlayer, "Level" ) or 1; local exp = getElementData( localPlayer, "Exp" ) or 0; local needexp = lvl * 1; dxDrawRectangle( x * 13, y * 513, x * 297, y * 20, tocolor( 0, 0, 0, 207 ), false ); dxDrawRectangle( 567 * sW, 725 * sH, -538 * sW, 20 * sH, tocolor( 166, 166, 166, 255 ), false ); dxDrawRectangle( 567 * sW, 725 * sH, -538 * sW, 20 * sH, tocolor( 166, 166, 166, 255 ), false ); dxDrawRectangle( 567 * sW, 725 * sH, -540 * sW / needexp * ( exp ), 20 * sH, tocolor( 217, 217, 217, 255 ), false ); dxDrawText( "Nível: " .. tostring( lvl ), 210 * sW, 1403 * sH, 400 * sW, 70 * sH, tocolor( 0, 0, 0, 255 ), 1.0, "default-bold", "center", "center" ); dxDrawText( string.format( "%d", 100 / ( needexp / exp ) ) .. "%", 670 * sW, 1392 * sH, 400 * sW, 80 * sH, tocolor( 0, 0, 0, 255 ), 1.0, "default-bold", "center", "center" ); end addEvent( "startRender", true ); addEventHandler( "startRender", root, function( showRender ) if ( showRender == startRender ) then return false; end startRender = showRender; if ( showRender ) then addEventHandler( "onClientRender", root, drawRender ); else removeEventHandler( "onClientRender", root, drawRender ); end end ); Foi eficaz para resolver os erros, já não aparece mas não está funcionando agora. Link to comment
Jonas^ Posted March 10, 2019 Share Posted March 10, 2019 Corrigi o código copie do pastebin. Link: https://pastebin.com/ukR4e3Wi Link to comment
PashaBiceps Posted March 10, 2019 Author Share Posted March 10, 2019 2 hours ago, Jonas^ said: Corrigi o código copie do pastebin. Link: https://pastebin.com/ukR4e3Wi Infelizmente o erro persiste. Link to comment
Jonas^ Posted March 10, 2019 Share Posted March 10, 2019 O código esta certo, não estou entendendo.. 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