Jump to content

Verificar se elemento possui element data


Recommended Posts

12 hours ago, SciptNovato said:

então eu não queria verificar se o elemento possui tal element data, eu gostaria de saber se ele possui algum element data
verificar caso o elemento abrigue algum element data, independente do nome do element data

Não entendi muito bem sua pergunta, mas para saber se um elemento possui o element data use getElementData.

--Exemplo 1

local Sede = getElementData(localPlayer, "Sede") or 0

if Sede then -- Verifica se tem o elemento "Sede" nele, então:
	
end

--Exemplo 2

local Sede = getElementData(localPlayer, "Sede") or 0

if Sede >= 10 then -- Verifica se a sede é maior ou igual a 10, se for então:
end

--Exemplo 3

local Teste = createElement("SaldoGeral") -- Cria um elemento
setElementData(Teste, "Sd_Geral", 1000) -- Seta um element Data no elemento.

local SaldoBank = getElementData(Teste, "Sd_Geral") or 0 -- Retorna o saldo.

se não for isso, explica melhor um pouquinho pra ver se posso ajudar...

Edited by FelipeX
Link to comment

eu vou dar um exemplo que nao sei se ta certo:
fazer um loop com getAllElementData, getando todos os element datas do elemento
entao usar o simbolo ~= para verificar se os element datas do elemento e diferente de nil
tipo assim:
 

function checkData(elemento)
    for i, objeto in ipairs(getAllElementData(elemento)) do
        if objeto ~= nil then
        --entao faz algo
        end
    end
end

algo assim. Verificar se o elemento possui algum element data sabe? 
Detalhe: eu tenho que fazer essa verificacao no client e o getAllElementData funciona no server

Edited by SciptNovato
Link to comment
  • Other Languages Moderators

Normalmente no client espera-se que você já saiba quais elementDatas um elemento pode ter. Nesse caso você cria primeiro uma tabela com os nomes de todas as datas que o elemento possa ter e verifica com um loop quais datas o elemento possui, ou se não possui tal data específica.

local datas = {
    "dataName1",
    "dataName2",
    "dataName3",
}

function checkData(elemento)
    for _, data in pairs(datas) do -- Para cada nome de data que está na tabela datas, faça:
        local value = getElementData(elemento, data) -- Obtém o valor dessa elementData no elemento, se não existir retorna false.
        if not value then -- Se o elemento NÃO TEM essa data, então:
            -- faz algo
            -- OBS: Se a data existir mas estiver definida com valor false, vai ser o mesmo que não existir.
        end
    end
end

 

Edited by Lord Henry
Link to comment

mas a forma do exemplo que dei funcionaria no servidor?
 

function checkData(elemento)
    for i, objeto in ipairs(getAllElementData(elemento)) do
        if objeto ~= nil then
        --entao faz algo
        end
    end
end

ai eu modificaria no caso para usar o trigger, eu poderia usar isso de base e então passar pro client?

Link to comment
  • Other Languages Moderators

ElementDatas só serão nil se você setar esse valor nele.

ElementDatas que não existem, não vão aparecer ali no getAllElementData.

Se você quer que tal elementData exista mas não esteja sendo usada, normalmente definimos valor false nela.

Se for o caso de setar false na data, você faria a condição ali assim:

if objeto then

-- É o mesmo que
if objeto ~= false then

 

  • Like 1
Link to comment
  • 2 weeks later...
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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