Gw8 Posted September 29, 2017 Share Posted September 29, 2017 registro = {} registro.__index = registro function registro.new(nome,senha) local dados = {} setmetatable(dados,registro) dados.nome = nome dados.senha = senha return dados end function registro:name() outputDebugString(tostring(self.nome)) end function registro:pw() outputDebugString(tostring(self.senha)) end user1 = registro.new("gw8","1234") user2 = registro.new("gw9","789654") user1:name() user2:name() por exemplo neste código que eu criei aqui rapidinho, como eu devo fazer o inverso, tipo neste eu crio o objeto e pego as informações através dele, como eu faria para localizar o objeto através de uma determinada propriedade, tipo localizar o objeto user1 pelo nome dele que no caso eo "gw8". Link to comment
raynner Posted September 29, 2017 Share Posted September 29, 2017 deixa eu ver se eu entendi é que fiquei meio confuso com a forma que você nomeou, com objeto você quer dizer um valor da tabela certo ? Bom eu não posso ajudar sem saber ao certo como você deseja fazer isso por ex por um comando ou algo assim. mas vou lhe dar alguns exemplos que eu pensar no momento. vejo que você esta fazendo um novo sistema de login.. function registro.login(nome) return registro.nome end Você só precisa fornecer a tabela e o nome do valor que você deseja recuperar eu não sei se este exemplo realmente será útil pois realmente não entendi muito bem oque você quer fazer Link to comment
Gw8 Posted September 29, 2017 Author Share Posted September 29, 2017 creio que vc entendeu o codigo, entao vo tenta explicar melhor, exemplo eu crio 1oo usuarios e nao salvei eles for i =1,100 do registro.new(tostring(i),1234) end como eu recupero o usuario "10" sendo que nao salvei ele? trazer ele dnv pra fica salvo numa variavel pra dps recuperar a senha... Link to comment
ZL|LuCaS Posted October 1, 2017 Share Posted October 1, 2017 (edited) registro = {} registro.__index = registro function registro.new(name,senha) local new = {} new.name = name new.senha = senha setmetatable(new,registro) return new end function registro:obter() return self.name,self.senha end user1 = registro.new("gw8","1234") user,pass = user1:obter() outputChatBox(user.." "..pass) user2 = registro.new("gw9","789654") user,pass = user2:obter() outputChatBox(user.." "..pass) ???????????????????????????????????????? Edited October 1, 2017 by ZL|LuCaS Link to comment
Banex Posted October 3, 2017 Share Posted October 3, 2017 Para fazer isso, você precisa armazenar todas as instâncias criadas pela classe registro = {} registro.__index = registro registro.instances = {} function registro.new(nome,senha) local dados = setmetatable({},registro) dados.nome = nome dados.senha = senha table.insert(registro.instances,dados) return dados end function registro:getName() return self.nome end function registro.getFromName(nome) for _, v in pairs(registro.instances) do if (v.nome == nome) then return v end end end for i=1,100 do registro.new(tostring(i),1234) end local account = registro.getFromName("10") print(account:getName()) Link to comment
Gw8 Posted October 3, 2017 Author Share Posted October 3, 2017 VLW MAN!! Entre 26 scripters que eu conheço, apenas 2 me deram a solução mais eficaz e simples, Banex e Anony Vlw!! é Nois. Precisar de mim é só chama. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now