Ir para conteúdo

Tabelas


caotic

Posts Recomendados

Tabelas são estruturas de facil edição e são ultilizadas para diminuição e simplificação de um script lua.

Muitos pessoas tem duvidas sobre elas vamos resolver todas elas:

<------------------------------------------------------------------------------------------------------------------------------------------------------------->

Vamos ver uma tabela vazia.

 

tab = { }

 

Para adicionar um valor na tab usamos

 

table.insert

 

Para ver a quantidade de valores na tabela usamos #tab

print(#tab) que retornaria 0 ja que não existe nenhum valor na tabela

Outros exemplo e usar a estrutura for para a repetição dos valores na tabelas.

 

 



<------------------------------------------------------------------------------------------------------------------------------------------------------------->

Considere outra tabela



 
tab = { "rad", "leg" }

 

Esta tabela apresenta as seguintes string(rad e leg)

Sendo

 

Rad[1] e leg[2]

 

 

Para acessar o valor delas podemos defenir sua posição por numeros crescentes.

 

Logo podemos fazer assim:


print(tab[1])
Que retornaria rad
ou
print(tab[2)
Que retornaria leg



 

 

<------------------------------------------------------------------------------------------------------------------------------------------------------------->

 

Vamos agora em uma estrutura mais complexa.

 

 


local transf = {
["Morte"] = {level = 1, type = "(Dark)", health = 2222, addlevel = 10, looktype = 300, spell = exori, addmana = 2000},
["Demon"] = {level = 1, type = "(Demonio)", health = 22622, addlevel = 20, looktype = 35, spell = exori, addmana = 1800},
["Dragon"] = {level = 1, type = "(Dragon)", health = 22622, addlevel = 20, looktype = 34, spell = exori, addmana = 1222}

}



 

Esta tabela veem do Sistema de Transformação logo e usada num script de Opentibia.

 

Para colocar uma string em um valor da tabela simplesmente colocamos "..." ou '...' normalmente.

 

Se quisermos adicionar um numero não ultilizamos ".." nem '..' ja que não e uma string.

 

Para acessar uma coluna corresponde da tabela ultilizamos a seguinte maneira:

 

local transflevel = transf[Valor].level



 

Logo se o valor for "Demon" o script acessaria a coluna tal:

 

["Demon"] = {level = 1, type = "(Demonio)", health = 22622, addlevel = 20, looktype = 35, spell = exori, addmana = 1800},



 

Exemplo de um valor:

 

local transflevel = transf[param].level

 

Como pode observar escolhi param de talkactions.

Logo se o player falar Demon a coluna seria do "Demon"

 

<------------------------------------------------------------------------------------------------------------------------------------------------------------->

Funçoes Tables

 

table.sort (table) --Ordena uma table

table.insert (table, value) – Acrescentar um valor da tabela

table.remove (table, value) – Remove o valor da tablea

Editado por caotic
Link para o comentário
Compartilhar em outros sites

o.O

cade

Exemplo na prática

 

 

local tabela = {

["Morte"] = {level = 1, type = "(Dark)", health = 2222, addlevel = 10, looktype = 300, spell = exori, addmana = 2000},

["Demon"] = {level = 1, type = "(Demonio)", health = 22622, addlevel = 20, looktype = 35, spell = exori, addmana = 1800},

["Dragon"] = {level = 1, type = "(Dragon)", health = 22622, addlevel = 20, looktype = 34, spell = exori, addmana = 1222}

}

 

-- peguei um pedaço aqui incompleto

Editado por notle2012
Link para o comentário
Compartilhar em outros sites

Tipo bem legal até mais esqueceu do table.find e poderia colocar uns tutoriais.

 

table.find (procura algo na tabela) table.find(tabela, oque procurar)

 

function onAttack(cid, target)
local blockedTargets = {"Rat", "Demon", "Cave Rat"}
if isMonster(target) and table.find(blockedTargets, string.lower(getCreatureName(target))) then
doPlayerSendTextMessage(cid, 28, "You can't attack this creature.")
return false
end
return true
end

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...