Macro para penalidade de erro crítico
Seguindo no processo de documentar minha recente caminhada pelo mundo da programação, vou descrever outro macro que eu fiz para a campanha de D&D que eu estou jogando e da qual falei mais um pouco no texto anterior que fiz aqui.. No texto de hoje eu vou comentar sobre o macro de Erro Crítico. Esse que, na verdade, foi o primeiro Macro em que eu comecei a trabalhar, mas como eu só consegui colocar ele para funcionar bem depois do de rolagem oculta, eu o considero o segundo que fiz. Ele foi muito útil para começar a aprender a sintaxe do Lua, para me localizar na documentação do software e também para eu começar a brincar na área de programação. | |||||||||||||||||||
Contextualizando: na campanha, somos 5 jogadores mais o mestre e, por alguma razão desconhecida do destino, somos bastante azarados nos dados… Com isso, uma alta incidência de erros críticos acontecia durante o gameplay e o mestre precisava sempre criar uma penalidade diferente ali na hora, o que gerava aquela sensação de que o castigo não estava apropriado à situação. Depois de um tempo, encontramos uma planilha de penalidades baseadas num D8 e pareceu uma solução mais prática e "justa" para o nosso caso. Mas rolar o dado, abrir a planilha e colocar no jogo ainda atrapalhava a nossa dinâmica de gameplay, causando alguns atrasos grandes entre a rolagem e a aplicação da penalidade. | |||||||||||||||||||
Com isso em mente, eu comecei a desenvolver um macro que, ao ser acionado, já rolava um D8 e retornava o resultado baseado nessa planilha. Eis o resultado: | |||||||||||||||||||
| |||||||||||||||||||
Bom, vamos separar o código em partes para explicar o funcionamento dele. | |||||||||||||||||||
| |||||||||||||||||||
Na primeira linha, eu começo definindo que a variável "resultado" é o resultado de rolar 1 dado de 8 faces, usando a sintaxe do Firecast para isso. Cabe a observação de que esse é o meu primeiro código, então eu realmente não precisava ter delimitado o escopo da variável dessa maneira. Eu só segui o que estava no exemplo da documentação e funcionou... Essa questão de escopo eu só fui aprender na marra num macro que fiz mais pra frente. | |||||||||||||||||||
| |||||||||||||||||||
Aqui, começamos a aplicar as condicionais, e também foi onde eu aprendi algo importante, uma vez que foi a primeira vez que eu me deparei com o elseif… Eu até conhecia o conceito de if e else, mas com uma terceira condicional foi a primeira vez que eu me deparei. Além disso, também aprendi o operador relacional "==", dessa vez, graças ao meu amigo e mentor Guilherme Bonatti, que corrigiu a primeira versão que eu fiz desse macro usando = no lugar de ==, o que gerou várias mensagens de erro. | |||||||||||||||||||
(Eu gostaria de fazer um parênteses para agradecer algumas pessoas: ao Bonatti pela paciência e disposição em me ajudar nesse início de caminhada. Suas dicas, suas revisões de código e principalmente sua paciência tem me incentivado bastante! Muito obrigado por isso, irmão! =D . E também à minha esposa, que tem aturado eu falando, testando, revisando, estudando e pensando em código quase 24h/dia nas últimas semanas. Obrigado por me apoiar nesses projetos e também nessas loucuras kkkk te amo <3) | |||||||||||||||||||
Enfim, voltando ao código... Depois de passar pelas condições, o macro imprime na tela o resultado da penalidade. Acho legal pontuar que há 7 condicionais if, ou elseif que correspondem de 1 ao 7 como resultado do dado, e um else, que corresponde ao oitavo número. Segue um vídeo demonstrativo do funcionamento do macro: | |||||||||||||||||||
E bom, com isso, me despeço desse texto que ficou um pouco maior do que eu esperava. Quem quiser trocar ideia sobre o assunto pode me encontrar no instagram @vini_ladeira ou no github @vini-ladeira, também pode me mandar e-mail pelo melo_vinicius@hotmail.com ou comentar por aqui mesmo. Vai ser um prazer trocar ideias com vocês! Forte abraço! | |||||||||||||||||||
Seguir meu Canal | |||||||||||||||||||
Fazer um comentário |