Topico Muito bom!
Explica tudo certinho!
REP ++! ;D
Por SkyDangerous, 11 de out. de 2012 em Tutoriais de Scripting
info
Grupo: Campones
Registrado: 17/07/10
Posts: 66
Reputação: +38
Char no Tibia: Potreco

Topico Muito bom!
Explica tudo certinho!
REP ++! ;D
info
Grupo: Visconde
Registrado: 14/01/08
Posts: 461
Reputação: +100

Perfeito, tudo organizado e bem explicado.
Tenho curiosidade sobre "lua", quem sabe um dia não me dedique, parabéns pelo tópico.
Reputado
info
Grupo: Lorde
Registrado: 17/01/09
Posts: 2.1k
Reputação: +395
Char no Tibia: Adra Sata

Obrigado a todos.
Eu retirei as informações de um blog, porém eu rescrevi tudo, arrumei alguns erros e testei os códigos.
info
Grupo: Artesão
Registrado: 07/09/12
Posts: 140
Reputação: -2
Char no Tibia: Nenhum

Muito bom,prima coisa que gosto em você
ajudou muito aqui em algumas duvidas.
Rep+
info
Grupo: Lorde
Registrado: 17/01/09
Posts: 2.1k
Reputação: +395
Char no Tibia: Adra Sata

~D
Vlw, vou fazer vários tutoriais de lua.
ai depois eu faço uns de tibia também ;D
Apesar de parecer que foi traduzido no google, é legal o tutorial, e também poste os créditos
Fora isso, legal...
info
Grupo: Lorde
Registrado: 17/01/09
Posts: 2.1k
Reputação: +395
Char no Tibia: Adra Sata

Apesar de parecer que foi traduzido no google, é legal o tutorial, e também poste os créditos
Fora isso, legal...
Não foi traduzido, o tutorial que eu encontrei está em português.
Porém ele está muito complicado de se intender, e tive tentei melhorar ele, além de retirar pequenos erros.
info
Grupo: Lorde
Registrado: 22/07/12
Posts: 2.2k
Reputação: +453
Char no Tibia: Kissy

Parabéns Sky Otimo Tutorial
Só eu não entendi?
O que é uma meta tabela?
São tabelas que controlam o comportamento de outras estruturas de dados, ela nos permie alterar o comportamento da tabela.
Mas o que é a tabela que a meta tabela controla seu comportamento?
Bem...Não sei se é muito diferente do que eu entendo por POO ou se tem muita lacuna no tutorial.
Mesmo assim parabéns.
Seu tutorial e sua iniciativa foram legais, mas o que ele tem de colorido, ele não tem de conteúdo. Desculpe a crítica, mas analisando seu tutorial, acho ele bastante superficial, você dá voltas e voltas, define os meta-métodos e só.
Você podia ter começado dizendo que Lua não possui orientação a objetos e o uso das meta-tabelas é só um modo de contornar isso. Para mim, este é mais uma definição de meta-tabelas do que um tutorial de orientação a objetos, uma vez que uma aula/tutorial voltado a esse tema, deve girar em torno da definição de classe, atributo e método.
Mesmo assim, não é sua culpa, pois você mesmo disse que adaptou o conteúdo de um blog e tal.
Abração.
info
Grupo: Banidos
Registrado: 13/05/13
Posts: 1
Reputação: 0
Char no Tibia: Cape Verde

These reading glasses available on the internet are crafted out partying about high-quality materials all of which bring to the table all your family durability and comfort. Plus going to be the camera lenses concerning all these glasses come so that you have different coatings often the foremost you can use and popular among them because they are the UV coating. The UV coating ensures that for those times when all your family are wearing many of these reading glasses, your with what they see are given going to be the maximum safe practices back and forth from going to be the harmful ultra azure radiations having to do with going to be the rays of the sun As significantly more plus a good deal more a period of time are today being that they are spent on trips UV coating has ceased being aware of an all in one up to you and has turned out to be into a multi functional basic necessity as well as each of these reading glasses. Apart both to and from going to be the UV coating, anti-glare coating also works well for offering your family an all in one a lot better talent Reading glasses most of the time have camera lenses leaving this anti-glare coating, because a resource box may be the a common thing for more information on round trip drive your car besides the fact that wearing your pair to do with reading glasses or otherwise reading an all in one pick out however relaxing at going to be the beach. Anti glare coating makes many of these reading glasses less reflective to understand more about light,and as such ensuring maximum relevant light weight gets into your eyes plus this be sure at the back of an all in one considerably better the view of the Finally, anti as high as scratch coating, adds durability plus electrical power to understand more about going to be the camera lenses protecting the two the lenses and your their vision back and forth from made up dangers slightly like air - borne debris or perhaps powdered ingredients and pollutants. This coating is the fact that the culprit and then for an all in one a considerable ways lasting eyewear experience in the field.
sunglass computer glasses buy glasses online sunglasses ray ban glasses
Eu já tinha feito um tutorial sobre isso há muito tempo atrás, mas o seu com certeza está bem melhor formatado, entretanto poderia ter dado mais exemplos práticos e explicado mais detalhadamente, pra quem achou difícil usar as metatables, existem algumas bibliotecas que facilitam o trabalho com POO em Lua:
classlib:
http://lua-users.org...eritanceClasses
http://code.google.c.../downloads/list
LOOP:
Ambas vem junto com o Lua For Windows, mas requerem instalação para serem usadas em otserv.
obs: nunca usei nenhuma das duas pois acho desnecessário usar classes em Lua, use por sua conta em risco.
Editado Maio 21 por Eventide
info
Grupo: Lorde
Registrado: 17/01/09
Posts: 2.1k
Reputação: +395
Char no Tibia: Adra Sata
Lua Orientada a Objetos
Avançado !
* Meta tabelas *
A saída será:
Porém, da onde saiu esse upper()? Vejamos..
Sua saída será:
Uma meta tabela associado a string !!, vejamos:
Sua saída será:
ou seja concluímos que a chave __index da meta tabelas é módulo de uma string: como exemplo
*Chave __index*
Se o objeto referenciado pela variável nome(uma string) não possui a chave upper, então quando tentamos acessar esta chave, o sistema procura pela chave na tabela referenciada pela chave __index da meta tabela, que é uma string
mt = {__index = function (t, k)return k:byte()end}var = setmetatable({b}, mt)print(var)Vale lembrar que essa chave é importante para orientação a objetos.
* Classes e Construtores *
mt = {}mt.__index = mtMeta tabelas se torna um molde para as outras tabelas. As tabelas que fazem o uso deste molde são chamadas de instâncias.
As funções de uma classe/instância são chamadas de métodos e sempre recebem implícita ou explicitamente como primeiro argumento a classe ou instância que faz a chamada.
Lua pode chamar um método passando a instância (ou classe) implícita ou explicitamente
Existe um método especial chamado construtor, que é executado sempre que uma nova instância é criada.
function mt:new(o)o = o or {}return setmetatable(o, self)endO construtor do código a cima recebe como um argumento uma tabela que servirá de referência para a criação da instância.
O primeiro comando garante que o argumento o é uma tabela, o segundo associa a meta tabela ao objeto, retornando-o.
Como new()é um método de classe, self representa a classe. Se fosse um método de instância, self representaria a instância.
* Outros métodos *
Podemos criar um objeto com alguns valores números e retornar seu somatório:
var = mt:new { 2, 4, 6 }ret = var:soma()print (ret)Que imprimirá:
Apenas irei citar alguns, caso tenha curiosidade procure sobre.
* Herança *
Para isso herdamos uma nova classe, para isso precisamos instanciar a classe pai normalmente, modificar a instância e usar esta instância como uma nova classe
function nmt:produto()local p = 1]table.foreachi(self, function (i, e)if type(e) == "number" thenp = p * eendend)return pendvar = nmt:new { 2, 4, 6 }[size=4]print(var:soma(), var:produto())Imprimirá:
Há outra forma mais avançada de herança, chamada herança múltipla, que acontece quando uma classe é herdeira de mais de uma classe pai.
Mega Tutorial OOP em Lua
Editado Agosto 20 por Drazyn