Cómo hacer plantillas de tirada

Las plantillas de tiradas son una faceta especial del sistemaHojas de personajeque proporcionan opciones adicionales de diseño y estilo para la visualización de los resultados de las tiradas.


Plantillas de tirada incorporadas

Las siguientes plantillas de tirada están incorporadas en Roll20 y se pueden utilizar en cualquier juego.

Ejemplo predeterminado de plantilla de tirada2.JPG

Default

Para utilizar la plantilla predeterminada, usa "&{template:default}".

Propiedad Valor esperado
nombre El nombre de la tirada, que se muestra en el encabezado de la lista de tiradas

La plantilla predeterminada es especial, y mostrará cualquier argumento que se le dé en una tabla. Por ejemplo, podrías hacer lo siguiente:

&{template:default} {{name=Ataque de prueba}} {{ataque=[[1d20]]}}
{{nota= Este es algún contenido de nota}} {{Tirada de salvación= vs Voluntad}}

Aquí es un ejemplo bastante exacto de la plantilla predeterminada con sus clases CSS dependientes.


Creando una Plantilla de Tirada

Si es autor de la hoja, puede incluir tantas plantillas de rollos como desee en su hoja de personaje HTML y CSS. Te diremos cómo a continuación.

Si es suscriptor dePro, puede crear sus propias plantillas de tiradas si utiliza la opción de hoja de personaje "personalizada" con su juego. Sigue las instrucciones a continuación.


Definiendo el Diseño de la Plantilla de Tirada

El primer paso para crear una Plantilla de Tirada es definir el diseño, incluyendo qué propiedades vas a hacer disponibles para que los jugadores las llenen. Las Plantillas de Tirada son simplemente HTML, y tienes acceso a todo el mismo HTML que cualquier otra parte de una Hoja de Personaje (incluyendo divtable). Aquí tienes un ejemplo del diseño de una Tabla de Tirada:

<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>Daño: </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">Efecto: </span>{{atteffect}}
         </div>
       {{/atteffect}}
</rolltemplate>

Su plantilla debe tener una etiquetarolltemplatecon una clase de "hoja-rolltemplate-<template_name>" template_name" es el mismo nombre que se utilizará en la &{template:<template_name>} del comando, y no debe contener espacios. Puedes colocar el roll template donde quieras en el HTML de tu Hoja de Personaje, pero recomendamos ponerlo al final. Se eliminará automáticamente de tu plantilla para que no se muestre como parte de la hoja en la vista de personaje. Ten en cuenta que no puedes anidar rolltemplates dentro de otros.

Después de eso, depende de ti decidir cómo estructurar tu roll. Recomendamos un diseño de tabla, pero depende de ti.

Dentro de la plantilla, tienes acceso a lo siguiente:

Propiedades

Puedes incluir cualquier propiedad que desees utilizando las doble llaves. Así{{myproperty}}mostraría lo que sea (tirada en línea, texto). etc.) se da a la plantilla a través de{{myproperty=<value>}}en la tirada. Para crear una nueva propiedad, simplemente agréguela a su plantilla y dale un nombre único. Nuevamente, evita el uso de espacios para garantizar la máxima compatibilidad con todas las funciones auxiliares.

Lógico

Si haces{{#<property>}}seguido de{{/<property>}}, todas las partes entre esas dos etiquetas solo se mostrarán si la propiedad contiene un valor. Esto puede ser útil para proporcionar varias partes diferentes a una plantilla que solo se pueden usar algunas veces. Por ejemplo, la parte "Efecto" de una tirada puede aplicarse solo a hechizos, por lo que si la tirada no proporciona un efecto, esa sección no se mostrará.

También puedes hacer{{^<property>}}seguido de{{/<property>}}para significar lo contrario, es decir, mostrar solo la sección si la propiedad dada no existe.

Funciones auxiliares

Hay varias funciones auxiliares que tratan con tiradas proporcionadas. Utilizas estas funciones de la misma manera que el patrón lógico normal anterior, pero estás llamando a una función y proporcionando una propiedad. La sección contenida entre las etiquetas solo se mostrará si la función se evalúa como verdadera.

Función auxiliar Muestra sección si
{{#rollWasCrit() <rollname>}} Si la tirada proporcionada contiene algún crítico, se mostrará la sección. Por ejemplo,{{#rollWasCrit() attack}}comprobaría la propiedad "ataque" para una tirada en línea que tenga al menos una tirada crítica.
{{#rollWasFumble() <rollname>}} Lo mismo que #rollWasCrit(), pero comprueba si hay alguna pifia (tiradas de 1).
{{#rollTotal() <rollname>}} Comprueba el total de un lanzamiento en línea para el valor. Si coinciden, se muestra la sección. Por ejemplo, {{#rollTotal() attack 10}} comprobaría la propiedad "ataque" para un lanzamiento en línea que sume 10.
{{#rollGreater() <rollname>}} Comprueba el total de un lanzamiento en línea para el valor. Si el resultado del lanzamiento es mayor, se muestra la sección. Por ejemplo, {{#rollGreater() AC 16}} comprobaría la propiedad "CA" para un lanzamiento en línea que resulte en 17 o más.
{{#rollLess() <rollname>}} Verifica el total de un lanzamiento en línea para el valor. Si el resultado del lanzamiento es menor, se muestra la sección. Por ejemplo,{{#rollLess() deathsave 10}}verificaría la propiedad "deathsave" para un lanzamiento en línea que resultó en 9 o menos.
{{#rollBetween() <rollname>}} Verifica el total de un lanzamiento en línea para el valor. La función rollBetween() acepta dos números. Si el resultado del lanzamiento es igual o está entre, se muestra la sección. Por ejemplo,{{#rollBetween() strength 7 9}}verificaría la propiedad "strength" para una tirada en línea que resultara en un siete, ocho o nueve.

Nota: Todas las funciones auxiliares solo verificarán la primera tirada en línea encontrada en una propiedad.

Importante:Cuando "cierras" la sección de una función auxiliar, debes incluir toda la llamada a la función, incluyendo todos los argumentos. Por ejemplo,{{#rollWasCrit() attack}}se cerraría con{{/rollWasCrit() attack}}.

Aquí tienes un ejemplo de plantilla de tirada que solo mostraría su sección de Daño Crítico si la tirada de Ataque es un 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>Daño: </span>{{damage}} 
			{{#rollWasCrit() attack}}
				<span>Crítico: </span>{{dmgcrit}}
			{{/rollWasCrit() ataque}}
		</div>
		<div class="sheet-template-row"><span>Tipo: </span>{{dmgtype}}</div>
   </div>

Invertir la Lógica 

También es útil poder probar cuando algo no coincide con la lógica. Si quieres saber cuándo una tirada es Igual o Mayor que un total, no puedes hacerlo directamente. Pero puedes comprobar si una tirada NO es Menor que un total, que es lo mismo.

Puedes hacer esto comenzando con#^y terminando con/^. Así es como podría verse esa prueba:

{{#rollLess() attackroll }}
     <span>Tirada Menor Que ataque! </span>
{{/rollLess() ataque }}
{{#^rollLess() ataque }}
     <span>Tirada NO Menor que ataque!</span>
     <span>En otras palabras, la tirada es mayor o igual que el ataque.</span>
{{/^rollLess() ataque }}

Variables de la Función Auxiliar

Todas las funciones auxiliares que aceptan un número, como rollTotal() o rollBetween(), pueden usar el resultado de otra tirada en línea en la misma Plantilla de Tirada en lugar del número. Por ejemplo,{{#rollGreater() save poison}}compararía el resultado de la tirada de salvación en línea y la tirada de veneno en línea y mostraría la sección si el resultado de la salvación fue mayor.

Función Especial de Ayuda: allProps()

Hay una función especial de ayuda llamada allProps() que se puede usar para enumerar dinámicamente todas las propiedades que se pasaron a una tirada, incluso si no las incluyes explícitamente. También puedes especificar las propiedades que quieres ignorar. Por ejemplo, lo siguiente mostraría una tabla con una fila para cada propiedad incluida en la tirada, excepto por la propiedad "ataque":

<div>
    <caption>{{name}}</caption>
    {{#allprops() attack}}
       <div>{{key}}</div><div>{{value}}</div>
    {{/allprops() attack}}
</div>

Estilizando Plantillas de Tirada

Para dar estilo a una Plantilla de Tirada, simplemente incluye CSS para ella en el CSS de tu Hoja de Personaje. Aquí tienes un ejemplo rápido que debería darte una buena idea de cómo hacerlo (en este ejemplo, el nombre de la plantilla de tirada es "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;
}

Ten en cuenta que todos los estilos comienzan con ".sheet-rolltemplate-<templatename>". Luego puedes estilizar tu propio HTML personalizado (como las tablas, divs y clases que usaste). Ten en cuenta que cualquier clase que incluyas en el diseño de tu plantilla de rol (como "tcat" en el ejemplo anterior) tendrá ".userscript-" agregado al comienzo de ellas por razones de seguridad. Lo más fácil es crear tu diseño, luego realizar un rol en el juego e inspeccionar el HTML resultante para asegurarte de que estás teniendo en cuenta cualquier filtrado de seguridad que esté ocurriendo.


Ejemplos de Plantillas de Rol

A continuación se muestran algunos ejemplos específicos del sistema de la funcionalidad de la Plantilla de Rol.


Dungeons and Dragons 5th Edition


Rolltemplate 5e.png

Macro:

&{template:5eAttack} {{name=@{meleeweaponname1}}} {{subtags=Mano Principal, Finura, @{meleedmgtype1}}}
{{attack=[[1d20+@{meleetohit1}]]}} {{attackadv=[[1d20+@{meleetohit1}]]}}
{{damage=[[@{meleedmg1}+@{meleedmgbonus1}]]}} {{dmgcrit=[[@{meleedmg1}]]}}

HTML:

<rolltemplate class="sheet-rolltemplate-5eAttack">
    <div class="container">
        <div><h1>{{name}}</h1></div>
        <div><span class="subheader">{{subtags}}</span></div>
        <div class="arrow-container"><div class="arrow-right"></div></div>
        <div class="rowcolor"><span class="tcat">Ataque: </span>{{attack}} | {{attackadv}} vs AC</div>
        {{#damage}}
            <div>
                 <span class="tcat">Daño: </span>{{damage}} 
                 <span class="tcat">Crit: </span>{{dmgcrit}}
            </div>
        {{/damage}}
        {{#snkattk}}
            <div>
                 <span class="tcat">Ataque Furtivo: </span>{{snkattk}} 
                 <span class="tcat">Crit: </span>{{snkcrit}}
            </div>
        {{/snkattk}}
    </div>
</rolltemplate>
CSS:
.sheet-rolltemplate-5eAttack .sheet-container {
    background-color: #ffffff;
    border: 1px solid;
    padding: 2px;
    anchura: 189px;
}

.sheet-rolltemplate-5eAttack .sheet-container h1 {
    color: rgb(126, 45, 64);
    font-size: 1.2em;
    font-variant: small-caps;
    line-height: 20px;
}

.sheet-rolltemplate-5eAttack div {
    padding: 2px;
};
 
.sheet-roll-template-5eAttack span {
    color: rgb(126, 45, 64);
    font-family: "Times New Roman", Times, serif;
    font-size: 1.2em;
    font-variant: small-caps;
    line-height: 1.6em;
    padding-left: 5px;
    text-align: left;
}
 
.sheet-rolltemplate-5eAttack .sheet-subheader {
    color: #000;
    font-size: 1em;
    font-style: italic;
}
 
.sheet-rolltemplate-5eAttack .sheet-arrow-right {
    border-bottom: 2px solid transparent;
    border-left: 180px solid rgb(126, 45, 64);
    border-top: 2px solid transparent;
}
 
.sheet-rolltemplate-5eAttack .sheet-tcat {
    font-style: italic;
}
 
.sheet-rolltemplate-5eAttack .inlinerollresult {
    background-color: #ffffff;
    border: none;
}
 
.sheet-rolltemplate-5eAttack .inlinerollresult.fullcrit {
    color: #3FB315;
    borde: ninguno;
}
 
.sheet-rolltemplate-5eAttack .inlinerollresult.fullfail {
    color: #B31515;
    borde: ninguno;
}
 
.sheet-rolltemplate-5eAttack .inlinerollresult.importandivoll {
    color: #4A57ED;
    borde: ninguno;
}

 


Dragones y Mazmorras 3.5 / Pathfinder


Rolltemplate pf.png

Macro:

&{template:pf_spell} {{nombre=@{repeating_lvl-0-spells_0_name}}}{escuela=@{repeating_lvl-0-spells_0_school}}} 
{{level=hechicero/mago 0}} {{casting_time=@{repeating_lvl-0-spells_0_cast-time}}} 
{{componentes=@{repeating_lvl-0-spells_0_components}}} {{rango=@{repeating_lvl-0-spells_0_range}}} 
{{target=@{repeating_lvl-0-spells_0_targets}}} {{duration=@{repeating_lvl-0-spells_0_duration}}} 
{{saving_throw=@{repeating_lvl-0-spells_0_save}}} {{sr=@{repeating_lvl-0-spells_0_sr}}} 
{{rng_attack=[[1d20 + @{attk-ranged}]]}} {{damage=1d3([[1d3]])}} 
{{spell_description=@{repeating_lvl-0-spells_0_description}}}

HTML:

<rolltemplate class="sheet-rolltemplate-pf_spell">
    <table>
        <tr><th>{{name}}</th></tr>
        <tr>
            <td>
				<span class="tcat">Escuela </span>{{school}}; 
				<span class="tcat">Nivel </span>{{level}}
			</td>        
        </tr>
        <tr>
            <td><span class="tcat">Tiempo de invocación </span>{{casting_time}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Componentes </span>{{components}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Alcance </span>{{range}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Efecto/Destinatario </span>{{target}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Duración </span>{{duration}}</td>        
        </tr>
        <tr>
            <td>
				<span class="tcat">Tirada de salvación </span>{{saving_throw}}; 
				<span class="tcat">Resistencia al hechizo </span>{{sr}}
			</td>         
        </tr>
        {{#rng_attack}}
            <tr><td><span class="tcat">Ataque a distancia </span>{{rng_attack}}</td></tr>
        {{/rng_attack}}
        {{#mel_attack}}
            <tr><td><span class="tcat">Ataque cuerpo a cuerpo </span>{{mel_attack}}</td></tr>
        {{/mel_attack}}
		{{#damage}}
			<tr><td><span class="tcat">Daño: </span>{{damage}}</td></tr>
		{{/damage}}
        <tr>
            <td>{{spell_description}}</td>        
        </tr>
    </table>
</rolltemplate>
CSS:
.sheet-rolltemplate-pf_spell table {
    width: 100%;
    padding: 2px;
    background:url(http://i.imgur.com/BLb0XMU.jpg) top left repeat;
}
 
.sheet-rolltemplate-pf_spell th {
	color: rgb(233, 223, 151);
    background-color: rgb(63, 32, 33);
    padding-left: 5px;
	line-height: 1.1em;
	font-size: 1em;
    text-align: left;
	font-family: "Arial", Helvetica, sans-serif;
    text-transform: uppercase;
}
 
.sheet-rolltemplate-pf_spell .sheet-arrow-right {
    border-top: 3px solid transparent;
    border-bottom: 3px solid transparent;
	border-left: 180px solid rgb(126, 45, 64);
}
 
.sheet-rolltemplate-pf_spell .sheet-tcat {
    font-weight: bold;
}
 
.sheet-rolltemplate-pf_spell td {
    padding-left: 5px;
    font-size: 0.9em;
}
 
.sheet-roll-template-pf_spell .inlinerollresult {
    background-color: transparent;
    border: none;
}
 
.sheet-roll-template-pf_spell .inlinerollresult.fullcrit {
	color: #3FB315;
    borde: ninguno;
}
 
.sheet-roll-template-pf_spell .inlinerollresult.fullfail {
	color: #B31515;
    borde: ninguno;
}
 
.sheet-rolltemplate-pf_spell .inlinerollresult.importantroll {
	color: #4A57ED;
    borde: ninguno;
}

Mundo de Tinieblas


Rolltemplate wod.png

Macro:

&{template:wod} {{name=@{character_name}}} {{roll_name=Comando}} 
{{attr=Inteligencia}} {{attr_num=@{intelligence}}} {{skill=Intimidación}} 
{{skill_num=@{intimidation}}} {{pwr=Dominar}} {{pwr_num=@{dominate}}} {{mod_num=?{Modifiers|0}}} 
{{result=[[{(@{intelligence}+@{intimidation}+@{dominate}+?{Modifiers|0})d10!}>8]]}}

HTML:

<rolltemplate class="sheet-rolltemplate-wod">
    <table>
        <tr><th>{{name}} rollos{{#roll_name}} {{roll_name}}{{/roll_name}}</th></tr>
        <tr><td class="attr">
            {{#attr}}
                {{attr}}({{attr_num}})
            {{/attr}}
            {{#skill}}
                 + {{skill}}({{skill_num}})
            {{/skill}}
		    {{#pwr}}
		    	 + {{pwr}}({{pwr_num}})
		    {{/pwr}}
            {{#mod_num}}
                 + Modificadores({{mod_num}})
            {{/mod_num}}
        </td></tr>
        <tr>
            <td class="result">{{result}} Éxitos</td>        
        </tr>
    </table>
</rolltemplate>
CSS:
.sheet-rolltemplate-wod table {
    width: 189px;
    height: 189px;
    padding: 2px;
    background: url(http://i.imgur.com/xBk4U1p.jpg) top left;
    background-size: 189px 189px;
    background-repeat: no-repeat;
    font-family: "Courier New", Courier, monospace;
    font-weight: bold;
    border-spacing: 0;
}
 
.sheet-rolltemplate-wod th {
	color: rgb(112, 0, 0);
    padding: 15px 2px 2px 20px;
	line-height: 1.2em;
	font-size: 1.2em;
    text-align: left;
}
 
 
.sheet-rolltemplate-wod td {
    padding-left: 20px;
    font-size: 1.0em;
    vertical-align: top;
}
 
.sheet-rolltemplate-wod .sheet-result {
    font-size: 1.2em;
    text-align: center;
    color: rgb(112, 0, 0);
    padding-bottom: 20px;
}
 
.sheet-rolltemplate-wod .inlinerollresult {
    background-color: transparente;
    color: #000000;
    border: none;
}
 
.sheet-rolltemplate-wod .inlinerollresult.fullcrit {
   color: #3FB315;
    border: none;
}
 
.sheet-rolltemplate-wod .inlinerollresult.fullfail {
    color: #000000;
    borde: ninguno;
}
 
.sheet-rolltemplate-wod .inlinerollresult.importantroll {
	color: #3FB315;
    borde: ninguno;
}
¿Fue útil este artículo?
Usuarios a los que les pareció útil: 110 de 168