Ari Alves Posted June 6, 2023 Share Posted June 6, 2023 Olá, bom dia, gostaria de pedir ajuda a voces, to criando um painel dx para comprar plano medico, que estaria vinculada ao inventario, mas quando eu clico para comprar, da erro e não funciona, poderiam me ajudar? Irei anexar umas imagens com os erros: ja adicionei os codigos de ( IsMouseInPosition ) addEventHandler("onClientClick", getRootElement(), function(button, state, thePlayer) if button == "left" and state== "down" then if exibindo_painel == true then if isMouseInPosition(screenW * 0.4213, screenH * 0.5964, screenW * 0.1559, screenH * 0.0833) then local next = exports.n3xt_inventario local money = getPlayerMoney(thePlayer) if (money > 1000) then takePlayerMoney(1000) next:giveItem(thePlayer, "Plano", 1) message(thePlayer, "[#00bfffHospital#ffffff]Vocé comprou um #00bfffplano medico#ffffff.", "info") else message(thePlayer, "[#00bfffHospital#ffffff]Vocé não tem #00bfffDinheiro#ffffff.", "info") end end end end end) -------------------------------------------------------------------------------------------------------------------- --Funçao Exportar Dx -------------------------------------------------------------------------------------------------------------------- function message(player, message, type) triggerClientEvent(player, "N3xT.dxNotification", resourceRoot, message, type) end -------------------------------------------------------------------------------------------------------------------- Link to comment
Molvine Posted June 6, 2023 Share Posted June 6, 2023 I don't remember exactly, but, it seems, the underscore does not work in export through a dot, only characters and numbers. Try this format: exports["name"]. I also can't figure out which side you are writing on? Is it client side or server side? Judging by the error, this is most likely the client side. Then instead of triggerClientEvent, you just need to use triggerEvent. Link to comment
Ari Alves Posted June 6, 2023 Author Share Posted June 6, 2023 2 hours ago, Molvine said: I don't remember exactly, but, it seems, the underscore does not work in export through a dot, only characters and numbers. Try this format: exports["name"]. I also can't figure out which side you are writing on? Is it client side or server side? Judging by the error, this is most likely the client side. Then instead of triggerClientEvent, you just need to use triggerEvent. Na verdade pode, ja usei essa função de export antes. A programação ta do lado client, pode ser isso? Link to comment
Other Languages Moderators Lord Henry Posted June 6, 2023 Other Languages Moderators Share Posted June 6, 2023 (edited) Onde você declarou a variável next? Está usando OOP? Indente seu código para torná-lo legível. Edited June 6, 2023 by Lord Henry 1 Link to comment
Ari Alves Posted June 6, 2023 Author Share Posted June 6, 2023 1 hour ago, Lord Henry said: Onde você declarou a variável next? Está usando OOP? Indente seu código para torná-lo legível. Declarei a variável next em client-side, imagino que o erro seja esse, irei mandar o codigo por inteiro para melhor entendimento 1 hour ago, Lord Henry said: Onde você declarou a variável next? Está usando OOP? Indente seu código para torná-lo legível. Aqui temos a server-side outputDebugString("------------------------------------------------------------------------------") outputDebugString("") outputDebugString(" [Alves] Obrigado por usar nossos scripts. ") outputDebugString("") outputDebugString("------------------------------------------------------------------------------") -------------------------------------------------------------------------------------------------------------------- -- Função Criar Marker -------------------------------------------------------------------------------------------------------------------- local ped = createPed(15, 2029.765, -1382.825, 17.211, 179.205) setElementData(ped, "Cleitinho", true) -------------------------------------------------------------------------------------------------------------------- --Funçao Exportar Dx -------------------------------------------------------------------------------------------------------------------- function message(player, message, type) triggerClientEvent(player, "N3xT.dxNotification", resourceRoot, message, type) end -------------------------------------------------------------------------------------------------------------------- e aqui temos a client-side local screenW,screenH = guiGetScreenSize() local resW, resH = 1365,767 local x, y = (screenW/resW), (screenH/resH) function PainelNew() dxDrawImage(screenW * 0.2926, screenH * 0.0664, screenW * 0.4125, screenH * 0.8307, ":[Alves]ComprarPlano/AlvesScript/imagens/start.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.4213, screenH * 0.5964, screenW * 0.1559, screenH * 0.0833, tocolor(255, 0, 0, 0), false) end local exibindo_painel = false addEventHandler("onClientClick", getRootElement(), function(button, state,obsolutex, obsolutey,worldx,worldy,worldz,clickedElement) if button == "left" then if state == "down" then if clickedElement then if getElementType(clickedElement) == "ped" then if getElementData( clickedElement, "Cleitinho") == true then if exibindo_painel == false then addEventHandler("onClientRender", getRootElement(), PainelNew) exibindo_painel = true else removeEventHandler("onClientRender", getRootElement(), PainelNew) exibindo_painel = false end end end end end end end) bindKey( "backspace", "down", function() if exibindo_painel == true then removeEventHandler("onClientRender", getRootElement(), PainelNew) exibindo_painel = false end end) function isMouseInPosition ( x, y, width, height ) if ( not isCursorShowing( ) ) then return false end local sx, sy = guiGetScreenSize ( ) local cx, cy = getCursorPosition ( ) local cx, cy = ( cx * sx ), ( cy * sy ) return ( ( cx >= x and cx <= x + width ) and ( cy >= y and cy <= y + height ) ) end -- Modified version for DX Text function isCursorOverText(posX, posY, sizeX, sizeY) if ( not isCursorShowing( ) ) then return false end local cX, cY = getCursorPosition() local screenWidth, screenHeight = guiGetScreenSize() local cX, cY = (cX*screenWidth), (cY*screenHeight) return ( (cX >= posX and cX <= posX+(sizeX - posX)) and (cY >= posY and cY <= posY+(sizeY - posY)) ) end addEventHandler("onClientClick", getRootElement(), function(button, state, thePlayer) if button == "left" and state== "down" then if exibindo_painel == true then if isMouseInPosition(screenW * 0.4213, screenH * 0.5964, screenW * 0.1559, screenH * 0.0833) then local next = exports.n3xt_inventario local money = getPlayerMoney(thePlayer) if (money > 1000) then takePlayerMoney(1000) next:giveItem(thePlayer, "Plano", 1) message(thePlayer, "[#00bfffHospital#ffffff]Vocé comprou um #00bfffplano medico#ffffff.", "info") else message(thePlayer, "[#00bfffHospital#ffffff]Vocé não tem #00bfffDinheiro#ffffff.", "info") end end end end end) -------------------------------------------------------------------------------------------------------------------- --Funçao Exportar Dx -------------------------------------------------------------------------------------------------------------------- function message(player, message, type) triggerClientEvent(player, "N3xT.dxNotification", resourceRoot, message, type) end -------------------------------------------------------------------------------------------------------------------- 1 hour ago, Lord Henry said: Onde você declarou a variável next? Está usando OOP? Indente seu código para torná-lo legível. Fiz o script todo sozinho, mas é minha primeira vez criando um painel dx, normalmente meus scripts nem usam client Link to comment
Other Languages Moderators Lord Henry Posted June 7, 2023 Other Languages Moderators Share Posted June 7, 2023 (edited) Quando for postar os códigos aqui no fórum, clique no botão <> e depois selecione a linguagem Lua. Sobre indentação, você pode aprender aqui: A sua variável next é uma palavra reservada, troque para outra coisa, por exemplo nextInv. E está faltando o nome da função exportada. Se tiver parâmetros, também devem ter seus valores definidos. local nextInv = exports["n3xt_inventario"]:nomeFunction (parametro1, parametro2) Obs: Maiúsculas e minúsculas fazem diferença. Os nomes precisam ser exatos. Edited June 7, 2023 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