Postado Outubro 18, 2011 13 anos DICAS Para encurtar/embelezar seus scripts. INTRODUÇÃO Fala aê, beleza, galera do TibiaKing? Estava aqui eu sem fazer nada, quando pensei em criar uma coletânea de dicas para os scripters iniciantes, avançados e etcétera. Eu já naveguei muito nessas águas e já vi muitos scripts que podiam ser "escritos" de uma maneira melhor, fazendo a mesma função e estando mais bonitos e, então, tenho algumas dicas para vocês nesse assunto. Não vou enrolar muito não, logo ali abaixo, você já começa a ler essas dicas DICA NÚMERO 1 - USO DE MATH.MAX() E MATH.MIN() Essa é uma dica bem simples e básica, sabe quando você quer comparar uma variável local com um número e se essa variável ter valor maior (ou menor) que o número, você declarar que a tal variável terá o valor do número? Vamos para um exemplo: local k = 2 if k < 3 then k = 3 end Em vez de usar três linhas no seu script, porque não usar uma função integrada que faz isso e dá aquele aspecto limpo no script, essa função é a math.max(). O exemplo acima ficaria assim: local k = 2 math.max(k, 3) Há também uma função parecida com a math.max() e que serve para o caso da variável ter um valor maior que o proposto. Ou seja: local k = 2 if k > 1 then k = 1 end Essa função é a math.min() local k = 2 math.min(k, 1) Fácil, não é? Uma explicação básica para as duas funções abaixo: math.max() - retorna o maior valor entre os dois argumentos math.min() - retorna o menor valor entre os dois argumentos DICA NÚMERO 2 - USANDO LOOPS Sabe aquele momento que você está programando seu script de quest mais incrível e nesse script você vai precisar colocar para "summonar" vários tipos de criaturas e repetidas vezes? Olhe esse exemplo: doSummonCreature("Troll", position) doSummonCreature("Troll", position) doSummonCreature("Troll", position) doSummonCreature("Troll", position) doSummonCreature("Orc", position) doSummonCreature("Orc", position) doSummonCreature("Orc", position) doSummonCreature("Wolf", position) doSummonCreature("Wolf", position) Veja, você acabou de usar 9 linhas do seu script, ocupando o espaço com uma mesma função repetidas vezes, alguém que bate os olhos num script com esse bloco, vai ficar até com medo Com a criação de uma simples tabela e o uso de uma grande ferramenta dos vários scripters, o comando For e o Pairs, você pode fazer um milagre, veja abaixo: local summon = {["Troll"] = 4, ["Orc"] = 3, ["Wolf] = 2} for monster, times in pairs(summon) do for i = 1, times do doSummonCreature(monster, position) end end Compare os dois scripts. Dá para acreditar que eles fazem a mesma coisa? DICA 3 - USANDO O BOM SENSO Essa é a mais abstrata das dicas, pois depende muito da experiência do scripter. Ela usa do próprio bom senso e da capacidade de criação do programador. Eu vou pegar um script simples, sem nenhum uso em OTServ, para que você dê uma olhada: local x = 1 local y, z, soma = 0 if x == 1 then y = 3 z = 10 soma = x + y + z + 10 elseif x == 2 then y = 3 z = 10 soma = x + y + z + 20 else y = 4 z = 10 soma = x + y + z + 30 end Isso aí acima, parece um script inofensivo, mas não é. É uma grande repetição de informações desnecessárias. O uso dessa ferramenta que é o bom senso, consiste em verificar os "erros" do script, as repetições de coisas desnecessárias, procurando assim uma maneira de contornar a situação. Estudando o script acima, podemos encontrar alguns desses "erros": 1. O valor da variável 'y' se repete em duas partes do código. 2. O valor da variável 'z' é sempre o mesmo. 3. A variável 'soma' possui um número que varia três vezes em sua composição. 4. A variável 'soma' se repete três vezes no código. Desse jeito, podemos encontrar soluções plausíveis: 1. Vamos colocar o valor-padrão de 'y' será 3. 2. Vamos colocar o valor-padrão de 'z' em 10. 3. Vamos criar uma nova variável para esse número. 4. Vamos isolar 'soma' de todo o script. E assim, teremos um código limpo e um pouco mais curto, como segue abaixo: local x = 1 local y = 3 local z = 10 local k, soma = 0 if x == 1 then k = 10 elseif x == 2 then k = 20 else y = 4 k = 30 end soma = x + y + z + k Pois é, né? Como eu disse no começo dessa dica, ela é muito abstrata, e dependendo do scripter, vários resultados podem ser obtidos: local x = 1 local tabela = { [1] = {3, 10, 10}, [2] = {3, 10, 20}, [3] = {4, 10 , 30}, p = {0, 0, 0} } ret = tabela[x] or tabela.p soma = x + ret[1] + ret[2] + ret[3] CONCLUSÃO Bom, pessoal, a coletânea de dicas doidas fica por aqui. Eu não considero isso um tutorial, mas sim uma base para que vocês possam melhorar seus vários scripts. Para os scripters que ainda estão entrando nesse grande barco, verão termos desconhecidos, estruturas desconhecidas e etcétera, então não deixe de tirar suas dúvidas aqui no tópico ou no suporte do fórum. O objetivo desse tutorial não é explicar o comando For, o pairs() e o ipairs() ou o uso de tabelas, pois isso será feito em tutoriais mais detalhados. Um abraço, galera. \o/ Editado Outubro 18, 2011 13 anos por Lpz (veja o histórico de edições)
Postado Outubro 18, 2011 13 anos Muito bom cara, parabens Eu ja sabia de algumas dicas ai Obrigado por fazer os conteudos pro Forum...
Postado Outubro 18, 2011 13 anos Administrador Belo tutorial cara, há tempos não vejo um assim por aqui. Organizado, objetivo e com um ótimo conteúdo. Perfeito amigo, reputado! TibiaKing Team- KingTópicos www.tibiaking.com
Postado Outubro 20, 2011 13 anos Lpz, belas dicas cara! Dificilmente encontramos esse contéudo, otimo mesmo! Reputado! E-mail para contato: [email protected] Quer ter um fórum mais organizado? Cumpra as regras! Regras do forum. EU VOLTEI GAROTAS! 31/12/2011 Atenciosamente, Guilherme Salviati.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.