Jump to content

Ajuda com painel dx


Recommended Posts

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:                  spacer.png

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

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
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
  1. Onde você declarou a variável next?
  2. Está usando OOP?
  3. Indente seu código para torná-lo legível.
Edited by Lord Henry
  • Thanks 1
Link to comment
1 hour ago, Lord Henry said:
  1. Onde você declarou a variável next?
  2. Está usando OOP?
  3. 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:
  1. Onde você declarou a variável next?
  2. Está usando OOP?
  3. 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:
  1. Onde você declarou a variável next?
  2. Está usando OOP?
  3. 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

Quando for postar os códigos aqui no fórum, clique no botão <> e depois selecione a linguagem Lua.

OfSmewi.png

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 by Lord Henry
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...