Implementações para Dragon Age RPG no roll20.net: Macros

Esse é meu primeiro tutorial de programação no blog! To expandindo!

Deve ser influência da Thais Weiller que esses dias acidentalmente deu uma aula de introdução ao Twine no Algures da UTFPR hauheuaheuhauhe.

O Roll20.net é uma excelente ferramenta para você narrar seus jogos de RPG. E ele é tão útil para jogos presenciais quanto para aqueles jogados pela internet.

Este aplicativo de browser suporta vários sistemas de jogo diferentes, inclusive o Dragon Age RPG. E quando você começa uma mesa nele, fichas pro sistema que você escolheu já são geradas para os seus jogadores preencherem. Ou você mesmo preencher. Nele você pode colocar mapas que podem ser montados no próprio aplicativo ou através de programas externos.

O roll20 oferece várias facilidades, como a possibilidade de criar botões que fazem rolagens complexas automaticamente. E é disso que vamos falar aqui.

Infelizmente não existe (ou pelo menos não existia até agora) tais botões disponíveis para DA. Mas eu tomei a liberdade de desenvolver eles e dividir os códigos com vocês.

Macros

Á nossa esquerda você está vendo a tela de Macros. Estes são todos os macros que nós iremos criar. Note que “atknor” e “atktot” não devem aparecer na barra.

Note que você pode adicionar macros. Adicione todos esses macros no seu jogo. São no total de 10.

Cada um desses macros não passa de um botão que vai aparecer na parte de baixo da tela, e cada um desses botões vai realizar uma ou mais linhas de código.

Simplesmente clique no Macro criado para editar ele.

Os códigos seguem da seguinte forma:

d3

[[d3]]

d6

[[d6]]

2D6

[[2d6]]

3D6

[[3d6]]

O dX representa o dado que será rolado, sendo que X é o número de faces desse dado. O fato disso estar entre dois colchetes, “[[” e “]]”, representa um “inline roll”. Uma rolagem simples que vai aparecer no roll20 como uma caixinha pequena no chat.

Se você passar o mouse encima do quadro, pode ver os detalhes da rolagem ou da equação.

Calculadora

/roll ?{Sempre coloque os valores a serem divididos ou multiplicados entre parenteses|0}

O comando /roll significa que um “dado” está sendo jogado, mas na realidade é só a forma do roll20 ler alguma fórmula matemática e mostrar ela no chat. Já o comando ?{nome-da-variável|0} vai pedir que o usuário do botão coloque algum tipo de variável dentro de uma caixa de texto. Da seguinte maneira:

Você pode substituir “nome-da-variável” por qualquer coisa. Esse vai ser o texto que vai aparecer na caixinha quando iniciarem a macro. O 0 deixa o valor padrão vazio pra edição.

O usuário vai poder colocar qualquer tipo de equação ou texto dentro desta caixa.

O resultado é o seguinte:

Caso você tenha certeza que seus jogadores não vão colocar texto na sua calculadora, você pode escrever o código da seguinte maneira:

[[?{Sempre coloque os valores a serem divididos ou multiplicados entre parenteses|0}]]

Substituir o /roll pelos colchetes vai fazer com que o resultado apareça no formato do inline roll, e para ver os termos dela, basta passar ou mouse encima do quadradinho.

Dano-NPC

/gmroll (?{arma|0}+?{Ataque Total |Não,0|Sim,1}+?{Atributo|0)/?{Treinado|Sim,1|Não,2}

Esse código é um pouco mais complexo. Os elementos dele são os seguintes:

/gmroll

Isso indica uma rolagem secreta, somente visível para quem está narrando o jogo.

(função1)/função2

Isso indica que o que quer que esteja escrito no primeiro parenteses (função 1) vai ser dividido pelo valor que estiver escrito depois da barra (função2).

?{nome-da-variável |título,valor|título2,valor2|Título3,valor3}

Isso funciona da mesma maneira que o código que ensinei na calculadora. Mas em vez do usuário digitar um valor, ele vai escolher valores ré-determinados de uma lista de possibilidades.

Ok. E o que esse código em específico faz?

Ele faz uma rolagem de dano secreta.

Primeiro, ele vai perguntar qual o dano da arma que está sendo usada.

Aqui você pode digitar qualquer equação. Por exemplo, se for uma espada de duas mãos escreva 3d6, porque esse é o dano da espada de duas mãos em Dragon Age RPG.

Então, ele vai perguntar se este dano é oriundo de uma ação “Ataque Total”, que no sistema, adiciona +1 ao dano.

Vamos dizer que não, nesse caso.

Todo dano em DARPG é somado com algum atributo da personagem desferindo o ataque. O próximo diálogo vai perguntar qual o valor desse atributo.

Por exemplo, se o ataque em questão veio de uma espada de duas mãos, você deve adicionar força ao dano. E se a força da personagem em questão é 3, você simplesmente coloca esse valor na caixa.

Então ele vai perguntar se o personagem em questão é treinado com essa arma.

Em DARPG, personagens que não tem treinamento com determinada arma, causam metade do dano total com ela. Se você disser que a personagem não é treinada, toda a equação será dividida por 2. Mas caso, ela seja, a equação vai ser dividida por 1 (e será portanto mantida inalterada).

Este é o resultado no chat usando os valores que demos como exemplo para uma personagem treinada em espada de duas mãos com 3 pontos de força sem usar um ataque total.

Teste-NPC

/gmroll 2d6+d6+?{Atributo|0}+?{Foco |Não,0|Sim,2|Foco+1,3|Foco+2,4}+?{Carga |Não,0|Sim,1}+?{Treino |Sim,0|Não,-2}+?{Distância |Curta,0|Longa,-2}+?{Modificadores |0}

Estamos subindo um pouco a complexidade.

A base desse código é a mesma do código acima, e serve para qualquer tipo de teste de habilidade, inclusive ataques contra Defesa.

Este macro irá perguntar qual atributo está sendo rolado, se o personagem em questão tem o foco desse teste, se é um ataque de carga, se a pessoa possui treinamento com a arma (se for um ataque. Caso não seja um ataque simplesmente responda “sim” ou crie uma opção dizendo “não é um ataque” igualada a 0), a distância do ataque caso seja um ataque (funcionando da mesma maneira que a pergunta sobre o treino) e modificadores que podem ser adicionados a essa ação (como o +1 de uma ação menor “mirar” ou o resultado de uma façanha anterior, ou algum número que represente dificuldades para a personagem, como um -2 indicando lugares escuros).

Exemplo de resultado:

Note que um dos dados está separado dos demais. Esse é o dado do dragão.

Ataque-genérico

/em ?{personagem|0} atacou com ?{Nome da Arma|0}. E causará [[?{Dano Básico da Arma|0}+?{Atributo de dano(número)|0}?{Ataque Total|Não,#atknor |Sim,#atktot }
/roll 2d6+d6+?{Atributo de ataque(número)|0}+?{Foco|Não,0|Sim,2|Foco+1,3|Foco+2,4}+?{Distância |Corpo a Corpo ou Curta (0~16m arco curto) (0~26m arco longo) (0~8m Azagaia) (0~30m besta) (0~6m faquinha) (0~4m machadinha e arma improvisada),0|Longa (16~32m arco curto) (26~52m arco longo) (8~16m Azagaia) (30~60m besta) (6~12m faquinha) (4~8m machadinha e arma improvisada),-2}+?{carga|Não,0|Sim,1}+?{Modificadores |0}+?{Treinado |Sim,0|Não,-2 com dano dividido pela metade por não ter treinamento}

Esse Macro existe para a conveniência dos seus jogadores, para realizar rolagens de ataque com armas novas que eles acabaram de conseguir e não tem tempo de colocar na ficha nem modificar as Abilities (mais sobre isso depois).

A segunda linha funciona da mesma maneira que o #teste-npc, só com /roll no lugar de /gmroll para que o teste seja público, e com alguns textos amais nas caixas de diálogo de implementação de variáveis pra guiar melhor seus jogadores em relação a o que eles estão fazendo.

A diferença real nesse macro está na primeira linha.

/em é um comando pra linhas de texto narrativo, que vão aparecer com um fundo laranja muito bonito na janela do chat.

Note, entretanto, que logo depois de pedir o nome da arma, esse código abre dois colchetes sem nunca fechas eles! E o valor de algumas variáveis é uma hashtag!

O “#” na realidade é um comando para ativar macros. Se você digitar #d3 no chat do roll20, você estará ativando o macro d3 que nós criamos lá encima.

Isso indica que para que esse macro do ataque genérico funcione no seu jogo, você deve também criar os macros “atknor” e “atktot”

atknor

]] pontos de dano se acertar.

atktot

/em ?{personagem|0} atacou com ?{Nome da Arma|0}. E causará [[?{Dano Básico da Arma|0}+?{Atributo de dano(número)|0}?{Ataque Total|Não,#atknor |Sim,#atktot }
/roll 2d6+d6+?{Atributo de ataque(número)|0}+?{Foco|Não,0|Sim,2|Foco+1,3|Foco+2,4}+?{Distância |Corpo a Corpo ou Curta (0~16m arco curto) (0~26m arco longo) (0~8m Azagaia) (0~30m besta) (0~6m faquinha) (0~4m machadinha e arma improvisada),0|Longa (16~32m arco curto) (26~52m arco longo) (8~16m Azagaia) (30~60m besta) (6~12m faquinha) (4~8m machadinha e arma improvisada),-2}+?{carga|Não,0|Sim,1}+?{Modificadores |0}+?{Treinado |Sim,0|Não,-2 com dano dividido pela metade por não ter treinamento}

quando o #ataque-genérico chamar pelo #atknor, é o #atknor quem vai fechar os colchetes e terminar o texto narrativo. E quando ele chamar pelo #atktot, este vai adicionar +1 à equação antes de fechar os colchetes, e terminará o texto narrativo considerando que este foi um ataque total.

Esse último código tem alguns problemas:

  1. Se você declarou o ataque total você ainda pode declarar uma Carga, e isso é contra as regras do jogo. Você dependerá da boa vontade dos seus jogadores de não declarar a carga se já declararam o ataque total.
  2. Se você declarar que sua personagem não é treinada com a arma que está usando, ele não consegue diminuir o dano automaticamente.

Estes problemas podem ser resolvidos de duas maneiras:

  1. Criando 2 macros separados, um para cara linha deste.
  2. Usando APIs, mas estes só estão liberados para narradores que pagarem 10 dólares ao mês para o site.

Resultado exemplo:

ataquegenerico


E é isso. Espero que tenha sido útil pra vocês. Quando voltarmos ao assunto de DA RPG no Roll20 eu vou falar de Abilities e Token Actions. Mas até lá, eu amo vocês!

Beijos.

Anúncios

Um comentário sobre “Implementações para Dragon Age RPG no roll20.net: Macros

Comente!

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s