Jump to content

setElementData e getElementData


Recommended Posts

  • Other Languages Moderators

Olá.

Há toda uma polêmica sobre o uso dessas funções, por conta de desempenho dentro do servidor. Minha recomendação é que você dê uma estudada em tabelas, e também sobre como sincronizá-las. Mas vamos lá.

A função setElementData possui um quarto parâmetro, sendo os valores aceitos true ou false. Caso você não for usar o dado no outro lado, opte por definir como false. Por padrão, você não precisa mexer nisso, a menos que seja necessário ter o dado em ambos lados, tanto client-side como também server-side.

Aqui um exemplo:

-- Server-side
addCommandHandler("uuu", function(player)
    setElementData(player, "player.accountName", getAccountName(getPlayerAccount(player)))
end)

-- Client-side
addCommandHandler("account", function()
    local cAccountName = getElementData(localPlayer, "player.accountName") or "?"

    outputChatBox("A sua conta é: " .. cAccountName)
end)

Pelo amor de Deus, nunca faça algo assim.

  • Thanks 1
Link to comment

Bom eu dei uma estudada no setElementData e getElementData e eles me bugaram kkk. Eu estou tentando fazer uma verificação aonde eu clico no botão Entrar ele retorna ou seja bem vindo ou Você já trabalha aqui e igualmente pro Botão sair que no caso é ou você foi Demitido ou você não trabalha aqui.
Meu código está assim:
 

function clicar(button, state)
    if isShowing then
        if painel == true then 
            if button == "left" and state == "up" then 
                if isMouseInPosition(screenW * 0.3133, screenH * 0.4089, screenW * 0.0836, screenH * 0.0794) then    
                    if painel == true then 
                        removeEventHandler("onClientRender", root, abrirPainel)
                        painel = false
                        showCursor(false)
                        setElementData(localPlayer, "Pedreiro", true)
                    end
                end
            end
        end
    end
end
addEventHandler("onClientClick", root, clicar)

function clicar2(button, state)
    if isShowing then 
        if painel == true then 
            if button == "left" and state == "up" then
                if isMouseInPosition(screenW * 0.3133, screenH * 0.5768, screenW * 0.0836, screenH * 0.0794) then
                    if painel == true then 
                        removeEventHandler("onClientRender", root, abrirPainel)
                        painel = false
                        showCursor(false)
                        if getElementData(localPlayer, "Pedreiro") then
                            setElementData(localPlayer, "Demitido", true)
                            outputChatBox("Você foi demitido com sucesso!")
                            removeElementData(localPlayer, "Pedreiro")
                        end
                    end
                end
            end
        end 
    end
end
addEventHandler("onClientClick", root, clicar2)

E no server-side eu fiz um teste já tentei de todas as formas e só executa o seja bem vindo.
 

function pergunta(player,cmd)--Apagar depois
    if getElementData(player, "Pedreiro") then
        outputChatBox("Seja bem vindo",player,255,255,255,true)
    else 
        outputChatBox("Demitido!",player,255,255,255,true)
    end
end
addCommandHandler("teste", pergunta)

Como eu consigo fazer a verificação corretamente?

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...