Scorpion659 Posted April 29, 2017 Share Posted April 29, 2017 preciso de algumas ajudinhas pois estou iniciando a programar em mta. 1 duvida: Eu estava estudando a linguagem .lua em si, mas fiquei com uma grande duvida, olhese eu fizerfor i=0, 100 do --aq coloco e talsendmas pra q servefor i, v in ipairs(vetor) do --aq coloco e talsendpra que serve esse pairs e ipairs? se puder me expliquem dando ex pois meu raciocínio é meio lento rs 2 duvida: Onde ficam salvas as contas dos players? tem um painel de login aqui, mas onde elas estão salvas? que tipo de salvamento é? Link to comment
Pedro Colto Posted April 29, 2017 Share Posted April 29, 2017 (edited) Exemplo de ipairs refreshs = { {"Oudri","Canda","Larrari"}, } function refreshFunction () for i, refresh in ipairs(refreshs) do outputChatBox(refresh[1].." "..refresh[2].." "..refresh[3]) end end addCommandHandler("refreshh",refreshFunction) http://www.lua.org/manual/5.1/manual.html#pdf-ipairs Edited April 29, 2017 by Pedro Colto Link to comment
gustavorn Posted April 30, 2017 Share Posted April 30, 2017 Tirando sua segunda dúvida, não me recordo bem, faz tempo que nao vasculho as pastas do mta, mas, as contas criadas no servidor devem ser armazenadas no arquivo registry.db. Link to comment
DNL291 Posted May 1, 2017 Share Posted May 1, 2017 (edited) for i=1, 10 do for i,v in ipairs(table) do for i,v in pairs(table) do Esses três métodos vão fazer a mesma coisa, a diferença é que você usa ipairs ou pairs para iterar os valores duma tabela, você também pode fazer usando o primeiro loop no código acima, mas já tem duas funções apropriadas para isso. ipairs: percorre pelos valores da tabela (começando do índice 1), retornando os valores sempre na ordem, exemplo local cores = { [1] = "branco", [2] = "vermelho", [3] = "amarelo", [4] = "azul", [5] = "verde" } for i,v in ipairs(cores) do print(v) --[[ > branco > vermelho > amarelo > azul > verde ]] end Nesse caso, os índices são de 1 a 5. Neste caso a seguir, ipairs não funciona: local cores = { [10] = "branco", [20] = "vermelho", [30] = "amarelo", [40] = "azul", [50] = "verde" } for i,v in ipairs(cores) do print(v) -- > não sai nada end Conclusão: ipairs deve ser usado apenas quando a tabela estiver definida com uma ordem em seus índices. Se você usar: local cores = { [1] = "branco", [3] = "vermelho", [4] = "amarelo", [5] = "azul", [6] = "verde" } for i,v in ipairs(cores) do print(v) -- > branco end Note que o índice 2 é pulado. Vai sair só o valor do índice 1, os restante será ignorado. Ou seja ipairs é usado apenas em tabelas simples, quando seus índices têm uma ordem, iniciando de 1. Só deixando claro outra coisa, você não precisa criar cada índice no código quando for estruturado dessa forma. Você pode deixar: local cores = { "branco", "vermelho", "amarelo", "azul", "verde" } Isso é o mesmo que definindo os índices com 1,2,3,4,5 para cada valor, respectivamente. Sobre pairs então, fica tudo mais claro - usa-se quando a estrutura da tabela é mais complexa, exemplo: local cores = { ["white"] = "branco", ["red"] = "vermelho", ["yellow"] = "amarelo", ["blue"] = "azul", ["green"] = "verde" } for k,v in pairs(cores) do print(k.. " Tradução: "..v) --[[ > blue Tradução: azul > green Tradução: verde > yellow Tradução: amarelo > red Tradução: vermelho > white Tradução: branco ]] end Esses valores serão retornados numa ordem aleatória. EDIT: Sobre a segunda pergunta, as contas do MTA ficam armazenadas no arquivo internal.db. Edited May 1, 2017 by DNL291 1 Link to comment
Scorpion659 Posted May 3, 2017 Author Share Posted May 3, 2017 On 01/05/2017 at 01:09, DNL291 said: for i=1, 10 do for i,v in ipairs(table) do for i,v in pairs(table) do Esses três métodos vão fazer a mesma coisa, a diferença é que você usa ipairs ou pairs para iterar os valores duma tabela, você também pode fazer usando o primeiro loop no código acima, mas já tem duas funções apropriadas para isso. ipairs: percorre pelos valores da tabela (começando do índice 1), retornando os valores sempre na ordem, exemplo local cores = { [1] = "branco", [2] = "vermelho", [3] = "amarelo", [4] = "azul", [5] = "verde" } for i,v in ipairs(cores) do print(v) --[[ > branco > vermelho > amarelo > azul > verde ]] end Nesse caso, os índices são de 1 a 5. Neste caso a seguir, ipairs não funciona: local cores = { [10] = "branco", [20] = "vermelho", [30] = "amarelo", [40] = "azul", [50] = "verde" } for i,v in ipairs(cores) do print(v) -- > não sai nada end Conclusão: ipairs deve ser usado apenas quando a tabela estiver definida com uma ordem em seus índices. Se você usar: local cores = { [1] = "branco", [3] = "vermelho", [4] = "amarelo", [5] = "azul", [6] = "verde" } for i,v in ipairs(cores) do print(v) -- > branco end Note que o índice 2 é pulado. Vai sair só o valor do índice 1, os restante será ignorado. Ou seja ipairs é usado apenas em tabelas simples, quando seus índices têm uma ordem, iniciando de 1. Só deixando claro outra coisa, você não precisa criar cada índice no código quando for estruturado dessa forma. Você pode deixar: local cores = { "branco", "vermelho", "amarelo", "azul", "verde" } Isso é o mesmo que definindo os índices com 1,2,3,4,5 para cada valor, respectivamente. Sobre pairs então, fica tudo mais claro - usa-se quando a estrutura da tabela é mais complexa, exemplo: local cores = { ["white"] = "branco", ["red"] = "vermelho", ["yellow"] = "amarelo", ["blue"] = "azul", ["green"] = "verde" } for k,v in pairs(cores) do print(k.. " Tradução: "..v) --[[ > blue Tradução: azul > green Tradução: verde > yellow Tradução: amarelo > red Tradução: vermelho > white Tradução: branco ]] end Esses valores serão retornados numa ordem aleatória. EDIT: Sobre a segunda pergunta, as contas do MTA ficam armazenadas no arquivo internal.db. vlw, e obrigado pelos outros que postaram tb, mas uma duvida: sobre o salvamento de contas, como faço pra ser salvo mais um item no internal.db? tipo, vou criar um server de mta rpg ai preciso que fique salva a organização do cara, a skin, se tem veiculo ou não, qual a casa dele, etc, como coloco mais um campo no internal.db? Link to comment
DNL291 Posted May 3, 2017 Share Posted May 3, 2017 Só usar esta função: setAccountData 1 Link to comment
Scorpion659 Posted May 3, 2017 Author Share Posted May 3, 2017 8 minutes ago, DNL291 said: Só usar esta função: setAccountData Mt obrigado, ultima duvida, oque é GetRootElement, ja li na wiki mas não entendo seu uso, se poderes me explicar ou me dar um exemplo eu agradeço Link to comment
DNL291 Posted May 3, 2017 Share Posted May 3, 2017 Representa todos os elementos da árvore, digamos que é o pai de todos os elementos presente no servidor. Por exemplo, usando a função getElementChildren(root) retorna uma tabela com todos os elementos-filhos (esses são todos elementos, por exemplo). E a estrutura é nessa ordem: root > resources > elementos_do_resource, nunca testei getElementChildren mas deve ser assim. Facilita na hora de chamar uma função na qual deve ser executada pra todos os elementos que convém para a função. Também, caso não saiba, root é a variável predefinida pra getRootElement, usando root no código é o mesmo que chamar essa função. getResourceRootElement funciona da mesma forma, mas engloba apenas os elementos presente em tal resource, e sua variável predefinida é resourceRoot. 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