ED

Tabelas - Como Criar E Usar

Por eduardo190696, 30 de jul. de 2011 em Tutoriais de Scripting

otserv
tibia
script
19
3.5k
eduardo190696E
30 de julho de 2011 às 00:43

Bom hoje vim postar um pouco do meu conhecimento sobre tabelas,

O meu professor foi o apocarai e só tenho a agradecer a ele,

 

Tabelas:

Tabelas servem para armazenar valores sejam eles números ou strings.

Criando uma tabela:

Para criar uma tabela devemos começar pelo seu corpo, ou seja, Criar sua base para depois começarmos a colar valores dentro dela.

 

Exemplo:

 local tabela = { }

Uma tabela pode ter diversos nomes desde que não haja espaço e nem caracteres coringas.

Caso você queira fazer uma tabela com chaves certifique se que no fim você a fechou.

 

Preenchendo uma tabela.

 

Exemplo:

 local tutorial= {4,5 } 

Nesse exemplo temos 2 valores para a tabela tutorial, cada numero dentro dessa tabela tem sua posição pré definida.

Como assim pré definida?

Simples, Cada valor dentro da tabela começa do 1 e vai seguindo, ou seja

1° posição = 4

2 °posição = 5

Essas posições ajudam na hora que precisamos usar esses valores em algum script.

Usando um valor da tabela.

Para pegar o valor 4 e usarmos em algum script devemos usar o nome da tabela e a posição entre colchetes do valor que você quer usar, Logo temos :

 tutorial[1]

E é só isso.

 

Tabelas Avançadas

 

Agora iremos trabalhar com tabelas com valor que contem resultados.

 

Exemplo:

 
Local tabela = {
["xtibia"] = {"Tutoriais", "Usuários", 'Download"},
["Google"] = {"Pesquisas", "Imagens", "Sites"}
}

 

Nesse exemplo temos 2 valores que tem 3 resultados cada.

 

No final de cada linha bote a virgula, Pois é ela que indica que tem mais valores.

 

Um bom modo de representarmos os valores dessa tabela é usando um código diferente.

 
for k,v in pairs(tabela) do 
end

Com esse código estamos dizendo que

K = xtibia e Google

e a variável

v = Tutoriais, Usuários, Download e Pesquisas, Imagens, Sites

Bom, acho que deu de entender, agora um exemplo de como usar essa tabela

Local tabela = {
["xtibia"] = {"Tutoriais", "Usuários", "Download"},
["Google"] = {"Pesquisas", "Imagens", "Sites"}
}
for k,v in pairs(tabela) do 
if k == “xtibia” then
doCreatureSay(cid,v[1], 1)
end
end

Explicando

 for k,v in pairs(tabela) do 

k = representa tudo que estiver antes do símbolo “=” Seja eles ["xtibia"] ou ["Google"]

v = tudo que vem depois do símbolo “=” seja eles {"Tutoriais", "Usuários", "Download"}, ou {"Pesquisas", "Imagens", "Sites"}

 

 if k == "xtibia" then 

Se valor da tabela for igual a "xtibia" então.

 

"xtibia" esta entre aspas por ser uma String então é necessário por entre aspas para o script identificar o que é String.

 

xtibia e "xtibia" não são iguais pois uma é uma variável e a outra String

 

 doCreatureSay(cid,v[1], 1)

Vou encurtar a parte doCreatureSay.

v[1] quer dizer que quando o script achar um valor dentro da tabela que seja igual a “xtibia” ele vai mostrar o valor1 desse valor que é igual a "xtibia".

Como já ensinei, o script pré define a posição dos valores, então v[1] é igual a Tutoriais

Caso no script eu tivese colocado

 if k == "Google" then 

ele mostraria o valor Pesquisas

bom pessoal acho que deu de entender tudo, caso fique alguma duvida poste ela aqui em baixo que eu estarei procurando responde La. Obrigado a todos que leram e se gostou da ++rep :D.

Editado Agosto 4 por eduardobean

PedrinhuHenriqueP
30 de julho de 2011 às 01:16

Muito boa sua iniciativa Eduardo.

Parabéns mesmo!

Só tente organizar mais o tópico, com cores e um português agradável.

 

Abraços.

eduardo190696E
30 de julho de 2011 às 01:52

meu português não tem erro --', ok vo reformular

Editado Julho 30 por eduardobean

30 de julho de 2011 às 03:11

Ta um pouco fraco o tutorial. Você tentou misturar manipulação de tabelas com a função iteradora pairs.

 

Não sei se vou aprovar, o tutorial ficou incompleto. Deixo na aprovação por hora.

 

E seu português tem erros sim.

Editado Julho 30 por Demonbholder

eduardo190696E
30 de julho de 2011 às 13:29

Tópico recriado

Editado Julho 30 por eduardobean

30 de julho de 2011 às 19:53

Realmente seu entendimento quanto a tabelas é de alguém que aprendeu a pouco. Aconselho a fazer tutoriais de assuntos que você já saiba a mais tempo.

 

dês de

 

Nossa, o correto é desde.

 

Ainda sim, tutorial aprovado.

Editado Julho 30 por Demonbholder

eduardo190696E
03 de agosto de 2011 às 22:26

Demonbholder quem vive de erro de escrita é professor de português, sim o tutorial é básico, mais é o único que mostra como usar valores com resultados

 

["Dragon"] = {...}

 

nos outros tutoriais só encima a criar tabelas, eu particularmente só aprendi pq o apocarai me mando pm ensinando, pq com os tutos que tem no xtibia n da de aprender n

meubkM
04 de agosto de 2011 às 13:42

isso não é uma tabela :S

 

 local tabela2 = getPlayerLevel(cid)

 

ja seria mais para um tutorial de variavel.

eduardo190696E
04 de agosto de 2011 às 14:13

xotservx

 

Basicamente é uma tabela

04 de agosto de 2011 às 14:25

Não, não é basicamente nem complexamente uma tabela. Não adianta ter um tutorial com tantos erros de português e pouco esclarecedor, se for assim melhor ir para o manual lua que não é muito esclarecedor mas pelo menos não tem erros de português e tem uma teoria corretíssima.

eduardo190696E
04 de agosto de 2011 às 16:18

Mano, na moral ta chato isso dos erros, se acha ruim corrige que eu posto o editado,

Editado Agosto 4 por eduardobean

04 de agosto de 2011 às 16:27

Não, você está errado. Leia e aprende o que é variável, tabela, string e outros valores.

MatheusGladM
04 de agosto de 2011 às 16:47

Eduardo, uma variavel nao eh basicamente uma tabela.

 

Se voce testar isso:

 

local a = 4

local b = {4}

 

print(type(a))

print(type(b))

 

...

eduardo190696E
04 de agosto de 2011 às 16:50

mano exclui essa merda então vai, já que o tutorial ta uma merda exclui do xtibia. se tava tão ruim pq aprovo ? pra fala mau dps ?

 

@edit

 

Blz Matheus ,

 

sorry eu errei

 

Tópico revisado e editado

Editado Agosto 4 por eduardobean

04 de agosto de 2011 às 17:04

Se eu aprovei é porque está bom o bastante. Só estou corrigindo os erros para que os usuários não aprendam nada errado.