pejuge2 1 #1 Posted December 19, 2009 (edited) PON - Par, Impar ou Não numeral? 2 Funções Olá a todos novamente, depois de algum tempo sem postar (o vício no jogo estava muito), voltei com toda força =D. Neste Tutorial simples e rápido demonstrarei duas funções simples criadas por mim (o título está incorreto na visualização antes de entrar, não sei o motivo), como gosto de dar nome aos meus scripts, estes se chamarão PON (Par, Ímpar ou Não numeral), isPON(param) - é par, ímpar ou não numeral? - e PONQtd(table, value) - quantos de pares, ímpares ou não números? - caso já existam estas funções favor postar neste tutorial. Pretendo criar um script com elas (aguardem =D). :fun::style::pirate: Obs.: Ao final disponibilizarei o download e o modo de instalação. Os scripts scripts de ímpares estão feitos baseados nos pares, pois em caso de necessitar mudanças é mais facil. A função isPON: Esta Função é bem simples, ela determina se um número é par ou ímpar. Aí está: function isPON(param) --> Check if the param is a pair or an odd number if type(param) == 'number' then if param % 2 == 0 then return "pair" else return "odd" end else return "not number" end end Bom, utilizei um recurso muito simples, o módulo (%). Para quem desejar saber mais sobre este e outros recursos recomendo este tutorial: http://forums.otserv.com.br/f176/aula-4-operadores-e-bibliotecas-115674/ , iniciei meus estudos com estas aulas e são de grande auxílio, será facil compreender o script com elas (principalmente a do link). Você deve estar se perguntando, o que é esse negócio de param? Bem simples hehe :loool:. Ele é o conteúdo analizado, geralmente o número de uma tabela. A seguir um exemplo prático: local tabela = {1, 2, 3, 4, casa, olho} print(isPON(tabela[2])) -- retornará par print(isPON(tabela[5])) -- retornará not number, pois 'olho' não é um número print(isPON(tabela[3])) -- retornará ímpar A função PONQtd: Esta função é apenas uma aplicação da função isPON, onde no caso avalia uma tabela e determina qual a quantidade de números pares, ímpares ou não números. Bom, aqui está o script: function PONQtd(table, value) --> Check how many pair or odd or not numbers have on the table; use "pair" or "odd" or "not number" local a = nil local total = 0 for a = 1, #table do if isPON(table[a]) == value then total = total + 1 end end return total end Note que neste caso utilizei table ao invés de param pois não há sentido escrever milhões de números para posterior avaliação, o mais comum é avaliação de tabelas. Ok, mas o que é esse negócio de value? Simples, hehe :said::pirate::laugh::ras: (nem gosto de emoticons), é um parâmetro "extra" (necessário colocá-lo), coloque nele "pair" para que se obtenha a quantidade de números pares, "odd" para os ímpares ou "not number" para não números. A seguir um exemplo: local tabela = {1, 2, 3, 4, camarao,"casa", "olho", 20, 90} print(PONQtd(tabela, "pair")) -- retornará 4, pois 2, 4, 20 e 90 são pares print(PONQtd(tabela, "not number")) -- retornará 3 pois camarao, "casa" e "olho" não sao números print(PONQtd(tabela, "odd")) -- retornará 1, pois apenas 1 e 3 neste caso são ímpares Download: Script: http://www.mediafire.com/file/hmz25qtn4gm/Par ou Impar.lua Instalação: Para instalar, é simples, basta colar o arquivo na pasta lib(...\lib) e colar isto: dofile(getDataDir() .. "lib/Par ou Impar.lua") em data.lua(...\lib\data.lua). Lembre-se para no caso de mudar o nome do arquivo mudar o texto em negrito preto. Obrigado: Agradeço por ter lido meu tópico e espero ter ajudado, aguardem o script prometido ^^. Aguardo comentários hehe :w00t: Edited January 6, 2010 by pejuge2 Share this post Link to post Share on other sites
Gpwjhlkdcf 21 #2 Posted December 21, 2009 Aprovado e movido. Obrigado pela contribuição. Share this post Link to post Share on other sites
pejuge2 1 #3 Posted December 22, 2009 Obrigado Skyen ^^, meu terceiro post (2 Tutoriais e 1 Download), terceira aprovação, =D. Bom, achei que faltavam estas duas funções, logo logo (quando a preguiça deixar) eu faço o npc prometido (o vício no jogo é muito uhauhauha), além disso PROMETO =D postar um tutorial novo logo logo hehe. Obs.: Estou de férias, mereço um disconto huauhuahuauh Grato, Pedro(PeJuGe) Share this post Link to post Share on other sites
Gabrielmaxx 0 #4 Posted December 22, 2009 O Script é legal, mas pra q q serve dentro de um OT? Só pra saber mesmo, não tou querendo criticar nem nada^^ Share this post Link to post Share on other sites
pejuge2 1 #5 Posted December 22, 2009 Gabriel, eles são funções. Muitas vezes, na hora de avaliar tabelas, o que é muito comum, os scripters se deparam com impedimentos e acabam utilizando meios mais longos, com as funções simplificadas é mais facil este trabalho ^^. Share this post Link to post Share on other sites
demoniac otserv 0 #6 Posted January 3, 2010 Aprovado Gostei de mais do Script. Nao muito ultio, mas bem legal Share this post Link to post Share on other sites
ricardosohn 0 #7 Posted January 2, 2011 gostei, em um futuro proximo pode ser util. aprovado Share this post Link to post Share on other sites