Básico De Lua

honux
Por honux
em Tutoriais de Scripting
  • 1
  • 2

honux

Serviços Prestados ao XTibia.com
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/07/05Posts: 71

Esse tutorial foi feito com algumas partes e com base no Tutorial "noções 3.1", que pode ser encontrado em : ftp://ftp.tecgraf.puc-rio.br/pub/lua/nocoes-3.1.pdf

Bom, basicamente lua não necessitará o saber de qualquer outra linguagem. Lua foi uma linguagem produzida com o intuido de ajudar os programadores, sendo muito mais fácil de programar, não tendo finais ( ";" no caso do C++ ) que você tem que colocar no final de toda linha, variáveis não precisam ser declaradas e podem assumir qualquer tipo de string, assim vai.

Como lua não é uma linguagem muito complexa ( pelo menos para mim ) irei começar com o tutorial básico e clássico que todos estamos " acustumados ".

 

-- Primeiro programa feito em LUA-- Imprime a mensagem na telaio.write("Ola Companheiro!\n")

 

Vamos olhar linha por linha o nosso programa.

Os "--" expressa um comentário, que será ignorado pelo programa quando for executado. Também pode ser expresso um bloco de comentário, onde será utilizado "--[[" e "--]]" respectivamente.

Então as 2 primeiras linhas representam um comentário do programa.

 

io.write("Ola Companheiro!\n")

 

Essa linha chama a função que escreve na tela e envia a string "Ola Companheiro!" na tela. Se você já programa em alguma outra linguagem você já deve ter imaginado que o \n é um breakline, quer dizer, uma nova linha.

Caso você tenha executado nosso primeiro programa você deverá ter percebido que abriu uma janela e fexou extremamente rápido, não dando para ver nada.

Eu criei uma "solução" para esse problema, e a mesma é criar um outro arquivo lua e digitar isso :

 

-- Arquivo feito para rodar um programa constante-- Ele simplismente lê o arquivo alvo e chama a função main dele.dofile("Programa.lua") -- Carrega o arquivo Programa.lua, como conseqüência suas funçõesshow = 0 -- inicializa a variável show com valor inicial igual a 0while 1 do -- cria uma condição constante, então vai ficar rodando o programa e nunca fechar o mesmo.	if show == 0 then -- só queremos chamar a função main do arquivo alvo uma vez não?  main () -- chama a função main  show = 1 -- muda o valor da variável show para não executar novamente.	endend

 

Mais para frente vamos saber exatamente o que este arquivo faz.

E o arquivo que vamos trabalhar vai ter que ter o nome obrigatório de "Programa.lua" e terá que ser da seguinte forma :

 

-- A execução do programa, agora com uma tela constante.function main () -- Cria a função mainio.write("Ola Companheiro!\n") -- Escreve na telaend

 

Pronto, temos o nosso primeiro programa feito em lua que escreve na tela Ola Companheiro e não fecha.

Vamos começar a mecher com variáveis, então conseguir fazer o primeiro programa que faz algo.

Variáveis

Diferente de várias outras linguagens em lua você não precisa declarar nenhuma variável pelo seu tipo, pois elas são automaticamente declaradas ao inicializar-las.

O modo para declarar uma variável é :

 

Variável = Valor

 

A única diferença é que para strings você deverá colocar entre aspas simples ( ' ), aspas ( " ) ou chaves ( [[ e ]] ).

Existem basicamente 7 tipos de variáveis : nil, number, string, function, cfunction, userdata e table.

Tipo nil

Basicamente toda variável não inicializada tem o valor de nil, essas variáveis tem o valor indefinido. Então pode se testar se uma variável foi inicializada igualando o seu valor a nil :

 

a == nil

 

Tipo number

O tipo number representa valores numéricos. Lua não faz distinção entre valores numéricos com valores inteiros e reais. Todos os valores numéricos são tratados como sendo do tipo number.

Tipo string

O tipo string representa cadeia de caracteres. Uma cadeia de caracateres em Lua é definida

por uma seqüência de caracteres delimitadas por aspas simples (' ') ou duplas

(" "). A seqüência de caracteres deve estar numa mesma linha de código. Dentro de

um string, são interpretadas as seguintes seqüências de escape:

escape2re.png

Tipo function

Funções em Lua são consideradas valores de primeira classe. Isto significa que funções podem ser armazenadas em variáveis, passadas como parâmetros para outras funções, ou retornadas como resultados. A definição de uma função equivale a atribuir a uma variável global o valor do código que executa a função. Esta variável global passa a armazenar um dado do tipo function. Assim, adiantando um pouco a sintaxe de definição de funções, o trecho ilustrativo de código abaixo armazena na variável func1 um valor do tipo function:

 

function func1 (...)...end

 

que pode posteriormente ser executada através de uma chamada de função:

 

func1(...)

 

Tipo userdata

O tipo userdata permite armazenar numa variável de Lua um ponteiro qualquer de C.

Este tipo corresponde ao tipo void* de C e só pode ser atribuído ou comparado

para igualdade a outro valor de mesmo tipo em Lua. Este tipo é muito útil para

programadores de aplicação que fazem a ligação Lua-C, mas não é manipulado por

usuários que programam somente em Lua, pois não é possível criar dados deste tipo

diretamente em Lua.

Tipo Table

O tipo table (tabela) é o tipo mais expressivo da linguagem. Este tipo implementa os

chamados vetores associativos, que permitem indexação por valores de qualquer

outro tipo, com exceção do tipo nil. As tabelas em Lua permitem a construção de

vetores convencionais, listas e records numa mesma estrutura. Tabelas devem ser

explicitamente criadas. Adiantando a sintaxe de criação de uma tabela, o código

a = { }

cria uma tabela vazia e armazena em a este valor. Novos campos podem ser

adicionados posteriormente a esta tabela. Futuramente estudaremos a fundo tabelas.

</span>

<div align='center'>

Não me mandem mensagens NEM ADICIONEM NO MSN!

NÃO MEXO MAIS COM OTSERVER!

</div>

Foox

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 30/04/06Posts: 115Char no Tibia: Não jogo

Tá cara mais agora traduz por favor não entendi nada disso me explica por favor que estou curioso...


Join The Naruto Online Multiplayer Game Naruto - Arena.com

GM Pikkeno

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/02/06Posts: 15

Ta otimo o tutor mas seria melhor que você colocasse um pouco mais explicado para a galera que não sabe. :icon1:

Abraços,

GM Pikkeno

Assinatura Removida by Don
Motivo: Desrespeito as regras.

Lukus Jhor

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/10/05Posts: 64

Acho que você teria que explicar como EXECUTAR os arquivos LUA!

94491504.jpg

MSN: warcraft_69@live.ru

Tutaum

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/05/06Posts: 4

Otimo tuto, me mostrou que eu nao tenho mais de basico que aprender de LUA (talvez uma coisa ou outra, nunca se sabe neh ;): ), mas pra quem ta começando seria legal voce adicionar as clasuas if, while,until e for xD

boa honux xD

Batata

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/03/06Posts: 51

Bem, eu que aprendo rapido, aprendi só um pouquinho, pouco mesmo!

Só aprendi o comando /n =P



AE GENTE, TEM UNS POSTS MEU QUE TÃO APARECENDO DO NADA SEM EU POSTAR, JÁ MUDEI MINHA SENHA, SOU UM BOM E ANTIGO USER, EU NÃO INVENTARIA ISSO PRA SAIR FALANDO MERDA, JÁ EDITEI POSTS SUSPEITOS

Dark-X

Os bons sempre voltam!
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/05/06Posts: 91

Cara ficou um pouco dificil de enteder

eu nunca vi essa palavra na minha vida,Modo Table,

mais no geral,pelo o que eu entendi

foi bom

;]

Flowz

signxtbia.png

Nostradamus

Serviços Prestados ao XTibia.com
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 10/06/06Posts: 338Char no Tibia: Setyte Berseker

Me gradifico por uma linguagem 100% brasileira chegar a mãos de uma comunidade de "Open Tibia" e fazer sucesso e que curiosos posam aprender para algum fim.

[twitter]ThomazYuji[/twitter]

ladenn

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/09/05Posts: 34

PRa q usar palavras dificies?

Tenta colocar palavras faceis, dar exemplos.

E explicar como uma professora dando aula pra primário.

Xerizezo~

"A diplomat is a person who can tell you how to go to hell in the such that a way actually forward to the trip."

kamimura

Old School :D
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 19/04/06Posts: 201

Oi,

bela explicação téorica quanto prática,

sei o basico de LUA, mas to aprendendo...

Tipo tem algum leitor espécifico para LUA,

tirando Word e bloco de notas ?

Abraços,

kamimura


"Sem música, a vida seria um erro." (Friedrich Nietzsche)
___________________________________________________
©1993 - 2009 kamimura™ - Todos os direitos reservados

kelvien

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/11/06Posts: 11

explica melhor ai cara

vlws



Movimento Pense Antes de Postar















Kenzo

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 08/10/06Posts: 131Char no Tibia: Kenzo Phoenix

o.O Sei meche em server mais nun sabia disso :p

Muit bom

//Kenzo

Visite a melhor parte do Fórum XTibia! Basta você apenas clicar aqui e deixar sua opinião sobre qualquer um dos assuntos!

Está com dúvidas no Tibia? Quer dicas de como melhorar seu character? Mande uma PM e lhe responderei a medida do possível.

"Tonight
I'm gonna have myself a real good time
I feel alive
And the world is turning inside out
Yeah!
And floating around in ecstasy

So don't stop me now
Don't stop me
'Cause I'm having a good time
I'm having a good time

I'm a shooting star leaping through the sky
Like a tiger defying the laws of gravity
I'm a racing car passing by like Lady Godiva
I'm gonna go go go
There's no stopping me...
"

Dont Stop me Now - McFly

Psy_demoniO

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/01/07Posts: 38

@Batata

eu tbm so aprendi o comando \n... xD

 

@Topico

Eu so nao sei como EXECUTAR! mas ta bom

^^ Flw. vlw



Meu Pokt-iT tá ficando bom!

Billsin

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/07/06Posts: 36

Eu sempre pensei assim:

Lua=easy

Mais agora complico mais doq eu ja sabia! :blink:

Duvidas? SEMPRE-----Problemas? TODO DIA----Desistir! JAMAIS

Tomekk

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/02/07Posts: 1

hot 3x video

link removido

  • 1
  • 2