table = { [1] = {x = 1}, [2] = {x = 2}, } for k, v in pairs(table) do x = 2 if k == x then return print(v.x) else return print(v.x) end endAlguém manja em como resolver esse problema, ele só pode entrar no else, caso o x não seja igual a nem um numero da tabela.
o meu problema é que mesmo existindo o numero 2 na tabela ele entra dentro do else, porque a ordem da tabela faz com que ele passe primeiro pelo 1.
Complicado, pq o for vai olhar tabela toda e todas as verificacoes, entao mesmo tendo o 2 na tabela ele vai verificar primeiro o 1 e passar pelo if e depois o else, um break ou return nao vai funcionar, pq ele vai verificar um por um, nao sei o que tu quer fazer mas, tu pode fazer o seguinte...
Valor = table[k]
Se k for um valor numerico tirado de alguma funcao do tibia que retorne a um numero isso vai funcionar exempli.
k = getPlayerVocation(cid)
Valor = table[k]
Sacou?
Nao sei se ajudei ou se eu etendi errado, mas ta ai...





info
Grupo: Conde
Registrado: 14/02/13
Posts: 702
Reputação: +196
Gênero: Masculino
table = {
[1] = {x = 1},
[2] = {x = 2},
}
for k, v in pairs(table) do
x = 2
if k == x then
return print(v.x)
else
return print(v.x)
end
end