Bom, vocês já se depararam com um array assim:
local array = {
["olá"] = 1,
["xtibia"] = 1,
}
E quiseram checar se uma string correspondia ao "olá" ou ao "xtibia"? Ou, se "olá" fosse "1" e "xtibia" fosse 2, ver se um número estava entre esses dois?
Bom, eu já, e fiz uma função pra fazer isso.
function isInArrayBrackets(array,thing)
local a = 0
for x, i in pairs (array) do
if thing == x then
a = a + 1
end
end
if a > 0 then
return true
else
return false
end
end
O que ela faz?
Ela quebra o array em x e i, sendo x a parte que fica entre colchetes e o i o que vem depois.
Ela compara todos os x's e vê se ele é igual ao thing
Se for, aumenta a variável a em 1, se não, não faz nada.
No final, se a for maior que 0 (tiver achado algo igual), retorna true, se não, false.
Por exemplo:
local array = {
["olá"] = 1,
["xtibia"] = 2
}
if isInArrayBrackets(array,"olá") then
print("yes")
else
print("no")
end
Ali, vai retornar true, pois, "olá" está nos colchetes da array
Se fosse
Por exemplo:
local array = {
["olá"] = 1,
["xtibia"] = 2
}
if isInArrayBrackets(array,"megan fox gostosa pra caralho") then
print("yes")
else
print("no")
end
Retornaria falso, pois "megan fox gostosa pra caralho" não está nem em ["olá"] nem em ["xtibia"]
É isso galera, abraços