Os Modelos de Rolo são uma faceta especial do sistemaCharacter Sheetsque fornece opções adicionais de layout e estilo para mostrar os resultados dos rolos.
Modelos de Rolagem Incorporados
Os seguintes modelos de rolagem estão incorporados ao Roll20 e podem ser usados em qualquer jogo.
Padrão
Para usar o modelo padrão, use "&{template:default}".
Propriedade | Valor Esperado |
---|---|
Nome | O nome da rolagem, mostrado no cabeçalho da lista de rolagem |
O modelo padrão é especial, e irá listar qualquer argumento que você fornecer em uma tabela. Então, por exemplo, você poderia fazer o seguinte:
&{template:default} {{nome=Ataque de Teste}} {{ataque=[[1d20]]}}
{{nota=Este é algum conteúdo de nota}} {{Teste de Resistência= vs Vontade}}
Aqui é um exemplo bastante exato do modelo padrão com suas classes CSS dependentes.
Criando um Modelo de Rolagem
Se você é um Autor de Ficha, você pode incluir quantos modelos de rolagem quiser em seu HTML e CSS de Ficha de Personagem. Vamos te mostrar como abaixo.
Se você é um Assinante Pro, você pode criar seus próprios Modelos de Rolagem se estiver usando a opção de ficha de personagem "Personalizada" com seu jogo. Siga as instruções abaixo.
Definindo o Layout do Modelo de Rolagem
O primeiro passo para criar um Modelo de Rolagem é definir o layout, incluindo quais propriedades você vai disponibilizar para serem preenchidas pelo jogador. Os Modelos de Rolagem são apenas HTML, e você tem acesso a todo o HTML disponível em qualquer outra parte da Ficha de Personagem (incluindodiv
etable
). Aqui está um exemplo do layout de uma Tabela de Rolagem:
<rolltemplate class="sheet-rolltemplate-test"> <div class="sheet-template-container"> <div class="sheet-template-header">{{rollname}}</div> {{#attack}}<div class="sheet-template-row">Ataque: {{attack}} {{attackadvantage}} vs CA</div>{{/attack}} {{#damage}} <div class="sheet-template-row"><span>Dano: </span>{{damage}} <span>Crítico: </span>{{dmgcrit}}</div> <div class="sheet-template-row"><span>Tipo: </span>{{dmgtype}}</div> {{/damage}} {{#atteffect}} <div class="sheet-template-row"> <span class="sheet-template-desc">Efeito: </span>{{atteffect}} </div> {{/atteffect}} </rolltemplate>
O seu modelo deve ter uma etiquetarolltemplate
com uma classe de "sheet-rolltemplate-<template_name>" template_name" é o mesmo nome que será utilizado na parte do comando &{template:<template_name>} do comando, e não deve conter espaços. Você pode colocar o modelo de rolagem onde quiser no HTML de sua Ficha de Personagem, mas recomendamos colocá-lo no final. Ele será automaticamente "removido" do seu modelo para que não seja mostrado como parte da ficha na visualização do personagem. Note que você não pode aninhar modelos de rolamento uns dentro dos outros.
Depois disso, cabe a você decidir como estruturar sua rolagem. Recomendamos um layout de tabela, mas depende de você.
Dentro do modelo, você tem acesso ao seguinte:
Propriedades
Você pode incluir qualquer propriedade que desejar usando as chaves duplas. Então{{myproperty}}
iria resultar em qualquer coisa (rolagem inline, texto. etc.) is given to the template via {{myproperty=<value>}}
in the roll. To create a new property, just add it to your template and give it a unique name. Again, avoid the use of spaces to ensure maximum compatibility with all helper functions.
Lógica
If you do {{#<property>}}
followed by {{/<property>}}
, all of the parts between those two tags will only be shown if the property contains a value. This can be useful for providing several different parts to a template which may only be used some of the time. For example, the "Effect" part of a roll may only apply to spells, so if the roll doesn't provide an effect, that section will not be shown.
You can also do {{^<property>}}
followed by {{/<property>}}
to mean the opposite -- that is, only show the section if the given property does not exist.
Helper Functions
Existem várias funções auxiliares lidando com rolagens fornecidas. Você usa essas funções da mesma forma que o padrão Lógico normal acima, mas você está chamando uma função e fornecendo uma propriedade. A seção contida entre as tags só será mostrada se a função for avaliada como verdadeira.
Função Auxiliar | Mostra a Seção Se |
---|---|
{{#rollWasCrit() <rollname>}} |
Se a rolagem fornecida contiver algum crítico, a seção será mostrada. Por exemplo,{{#rollWasCrit() attack}} verificaria a propriedade "ataque" para uma rolagem embutida que tenha pelo menos uma rolagem crítica. |
{{#rollWasFumble() <rollname>}} |
Mesmo que #rollWasCrit(), mas verifica se há algum erro crítico (rolagens de 1). |
{{#rollTotal() <rollname>}} |
Verifica o total de um rolo embutido para o valor. Se eles coincidirem, a seção é mostrada. Por exemplo,{{#rollTotal() attack 10}} verificaria a propriedade "ataque" para um lançamento em linha que totalizasse 10. |
{{#rollGreater() <rollname>}} |
Verifica o total de um rolo embutido para o valor. Se o resultado do rolo for maior, a seção é mostrada. Por exemplo,{{#rollGreater() AC 16}} verificaria a propriedade "AC" para um lançamento em linha que resultasse em 17 ou mais. |
{{#rollLess() <rollname>}} |
Verifica o total de um rolo em linha para o valor. Se o resultado do rolo for menor, a seção é mostrada. Por exemplo, {{#rollLess() deathsave 10}} verificaria a propriedade "deathsave" para um rolo em linha que resultou em 9 ou menos. |
{{#rollBetween() <rollname>}} |
Verifica o total de um rolo em linha para o valor. A função rollBetween() aceita dois números. Se o resultado do rolo for igual ou estiver entre, a seção é mostrada. Por exemplo,{{#rollBetween() strength 7 9}} verificaria a propriedade "strength" para um rolo embutido que resultasse em sete, oito ou nove. |
Observação: Todas as funções auxiliares verificarão apenas o primeiro rolo embutido encontrado em uma propriedade.
Importante:Ao "fechar" a seção de uma função auxiliar, você deve colocar a chamada de função inteira, incluindo todos os argumentos. Por exemplo,{{#rollWasCrit() attack}}
seria fechado por{{/rollWasCrit() attack}}
.
Aqui está um exemplo de modelo de rolagem que mostraria apenas a seção de Dano Crítico se a rolagem de Ataque fosse um crítico:
<div class="sheet-template-container"> <div class="sheet-template-header">{{rollname}}</div> {{#attack}}<div class="sheet-template-row"><span>Ataque: </span>{{attack}}</div>{{/attack}} <div class="sheet-template-row"> <span>Dano: </span>{{damage}} {{#rollWasCrit() attack}} <span>Crítico: </span>{{dmgcrit}} {{/rollWasCrit() ataque}} </div> <div class="sheet-template-row"><span>Tipo: </span>{{dmgtype}}</div> </div>
Invertendo a Lógica
Também é útil poder testar quando algo não corresponde à lógica. Se você quiser saber quando um lançamento é Igual ou Maior que um total, você não pode fazer isso diretamente. Mas você pode testar se um lançamento NÃO é Menor que um total, que é a mesma coisa.
Você faz isso começando com#^
e terminando com/^
. Veja como esse teste poderia ficar:
{{#rollLess() attackroll }} <span>Rolagem Menor Que ataque! </span> {{/rollLess() ataque }} {{#^rollLess() ataque }} <span>Rolagem NÃO é Menor que ataque!</span> <span>Em outras palavras, Rolagem é maior ou igual a ataque.</span> {{/^rollLess() ataque }}
Variáveis da Função Auxiliar
Todas as funções auxiliares que aceitam um número, como rollTotal() ou rollBetween(), podem usar o resultado de outra rolagem embutida no mesmo Modelo de Rolagem no lugar do número. Por exemplo{{#rollGreater() save poison}}
compararia o resultado do lançamento de salvamento inline e o lançamento de veneno inline e mostraria a seção se o resultado do salvamento fosse maior.
Função Auxiliar Especial: allProps()
Existe uma função auxiliar especial chamada allProps() que pode ser usada para listar dinamicamente todas as propriedades que foram passadas para um lançamento, mesmo que você não as inclua explicitamente. Você também pode especificar propriedades a serem ignoradas. Por exemplo, o seguinte mostraria uma tabela com uma linha de tabela para cada propriedade incluída no lançamento, exceto pela propriedade "ataque":
<div> <caption>{{name}}</caption> {{#allprops() attack}} <div>{{key}}</div><div>{{value}}</div> {{/allprops() attack}} </div>
Estilizando Modelos de Lançamento
Para estilizar um Modelo de Rolagem, basta incluir CSS para ele no CSS da sua Ficha de Personagem. Aqui está um exemplo rápido que deve lhe dar uma boa ideia de como fazer isso (neste exemplo, o nome do modelo de rolagem é "test"):
.sheet-rolltemplate-test div.sheet-template-container { border: 2px solid #000 !important; border-radius: 3px 3px 3px 3px; } .sheet-rolltemplate-test .sheet-template-header { background-color: rgba(112, 32, 130,1); color: #000; padding: 2px; border-bottom: 1px solid black; line-height: 1.6em; font-size: 1.2em; } .sheet-rolltemplate-test div { padding: 5px; border-bottom: 1px solid black; } .sheet-rolltemplate-test div:nth-child(odd) { background-color: rgba(217, 217, 214,1); } .sheet-rolltemplate-test div:nth-child(even) { background-color: rgba(233, 233, 233,1); } .sheet-rolltemplate-test .inlinerollresult { display: inline-block; min-width: 1.5em; text-align: center; border: 2px solid rgba(167, 168, 170,1); } .sheet-rolltemplate-test .inlinerollresult.fullcrit { border: 2px solid #3FB315; } .sheet-rolltemplate-test .inlinerollresult.fullfail { border: 2px solid #B31515; } .sheet-rolltemplate-test .inlinerollresult.importantroll { border: 2px solid #4A57ED; }
Observe que todos os estilos começam com ".sheet-rolltemplate-<templatename>". Você pode então estilizar seu próprio HTML personalizado (como as tabelas, divs e classes que você usou). Observe que quaisquer classes que você incluir em seu layout de modelo de rolagem (como "tcat" no exemplo acima) terão ".userscript-" adicionado ao início delas por motivos de segurança. A coisa mais fácil a fazer é criar seu layout, então realizar uma rolagem no jogo e inspecionar o HTML resultante para garantir que você está considerando qualquer filtragem de segurança que esteja ocorrendo.
Exemplos de Modelo de Rolagem
Abaixo estão alguns exemplos específicos do sistema da funcionalidade do Modelo de Rolagem.
Dungeons and Dragons 5ª Edição
Macro: |
|
HTML: |
|
CSS: |
|
Dungeons and Dragons 3.5 / Pathfinder
Macro: |
|
HTML: |
|
CSS: |
|
Mundo das Trevas
Macro: |
|
HTML: |
|
CSS: |
|