Comment fabriquer des gabarits de rouleaux

Les modèles de jet sont une facette spéciale du systèmeCharacter Sheetsqui offre des options supplémentaires de mise en page et de style pour l'affichage des résultats des jets.


Modèles de rouleaux intégrés

Les modèles de jets suivants sont intégrés à Roll20 et peuvent être utilisés dans n'importe quel jeu.

Modèle de rouleau par défaut exemple2.JPG

Par défaut

Pour utiliser le modèle par défaut, utilisez "&{template:default}".

Propriété Valeur attendue
name Le nom du rouleau, indiqué dans l'en-tête de la liste des rouleaux.

Le modèle par défaut est special, et énumère les arguments que vous lui donnez dans un tableau. Ainsi, par exemple, vous pourriez faire ce qui suit :

&{template:default} {{nom=Test d'attaque}}} {{attaque=[[1d20]]}}}
{{note= Il s'agit d'un contenu de note}} {{Jeu de sauvegarde= vs Volonté}}

Le siteest un exemple assez précis du modèle par défaut avec les classes CSS qui en dépendent.


Création d'un modèle de jet de dés

Si vous êtes un(e)Auteur de feuille de personnage, vous pouvez inclure autant de modèles de jet de dés que vous le souhaitez dans votre feuille de personnage HTML et CSS. Nous vous expliquerons comment ci-dessous.

Si vous êtes un(e)Pro, vous pouvez créer vos propres modèles de jet de dés si vous utilisez l'option de feuille de personnage "Personnalisée" avec votre jeu. Suivez les instructions ci-dessous.


Définition de la mise en page du modèle de jet de dés

La première étape dans la création d'un modèle de jet de dés est la définition de la mise en page, y compris les propriétés que vous allez rendre disponibles pour que le joueur puisse les remplir. Les modèles de jet de dés sont simplement du HTML, et vous avez accès à tout le HTML disponible dans n'importe quelle autre partie d'une feuille de personnage (y comprisdivettable). Voici un exemple de la mise en page d'une table de jet de dés:

<rolltemplate class="sheet-rolltemplate-test">
    <div class="sheet-template-container">
	<div class="sheet-template-header">{{rollname}}</div>
	{{#attack}}<div class="sheet-template-row">Attaque: {{attack}} {{attackadvantage}} vs CA</div>{{/attack}}
        {{#damage}}
	<div class="sheet-template-row"><span>Dégâts: </span>{{damage}} 
        <span>Crit.: </span>{{dmgcrit}}</div>
	<div class="sheet-template-row"><span>Type: </span>{{dmgtype}}</div>
       {{/damage}}
       {{#atteffect}}
	 <div class="sheet-template-row">
	 <span class="sheet-template-desc">Effet: </span>{{atteffect}}
         </div>
       {{/atteffect}}
</rolltemplate>

Your template should have a rolltemplate tag with a class of "sheet-rolltemplate-<template_name>" template_name" is the same name that will be used in the &{template:<template_name>} portion of the command, and should not contain spaces. You can put the roll template anywhere you want in your Character Sheet's HTML, but we recommend putting it at the very end. It will automatically be "removed' from your template so it isn't shown as part of the sheet in the Character view. Note that you cannot nest rolltemplates inside of each other.

After that, it's up to you to decide how to structure your roll. We recommend a table layout, but it's up to you.

Inside of the template, you have access to following:

Properties

You can include any property you'd like by using the double-curly-braces. So {{myproperty}}would output whatever (inline roll, text. etc.) est donné au modèle via{{myproperty=<value>}}dans le lancer. Pour créer une nouvelle propriété, il suffit de l'ajouter à votre modèle et de lui donner un nom unique. Encore une fois, évitez d'utilisation des espaces pour assurer une compatibilité maximale avec toutes les fonctions d'assistance.

Logique

Si vous faites{{#<property>}}suivi de{{/<property>}}, toutes les parties situées entre ces deux balises ne seront affichées que si la propriété contient une valeur. Cela peut être utile pour fournir plusieurs parties différentes à un modèle qui ne sont utilisées que certaines fois. Par exemple, la partie "Effet" d'un lancer peut ne s'appliquer qu'aux sorts, donc si le lancer ne fournit pas d'effet, cette section ne sera pas affichée.

Vous pouvez également utiliser{{^<property>}}suivi de{{/<property>}}pour signifier le contraire - c'est-à-dire, n'afficher la section que si la propriété donnée n'existe pas.

Fonctions d'assistance

Il existe plusieurs fonctions d'aide traitant des jets de dés fournis. Vous les utilisez exactement comme le modèle Logic normal ci-dessus, mais vous appelez une fonction et fournissez une propriété. La section comprise entre les balises ne sera affichée que si la fonction est évaluée à true.

Fonction d'aide Affiche la section si
{{#rollWasCrit() <rollname>}} Si le jet fourni contient des critiques, la section sera affichée. Par exemple,{{#rollWasCrit() attack}}vérifierait la propriété "attaque" pour un jet en ligne qui a au moins un jet critique.
{{#rollWasFumble() <rollname>}} Identique à #rollWasCrit(), mais vérifie s'il y a des échecs critiques (jets de 1).
{{#rollTotal() <rollname>}} Vérifie le total d'un rouleau en ligne pour la valeur. S'ils correspondent, la section est affichée. Par exemple,{{#rollTotal() attack 10}}vérifiera la propriété "attaque" pour un jet en ligne dont le total est de 10.
{{#rollGreater() <rollname>}} Vérifie le total d'un rouleau en ligne pour la valeur. Si le résultat est supérieur, la section est affichée. Par exemple,{{#rollGreater() AC 16}}vérifiera la propriété "AC" pour un jet en ligne dont le résultat est égal ou supérieur à 17.
{{#rollLess() <rollname>}} Checks the total of an inline roll for the value. If the roll result is less, the section is shown. For example, {{#rollLess() deathsave 10}} would check the "deathsave" property for an inline roll that resulted in 9 or less.
{{#rollBetween() <rollname>}} Checks the total of an inline roll for the value. The rollBetween() function accepts two numbers. If the roll result is equal to or between, the section is shown. Par exemple, {{#rollBetween() strength 7 9}} vérifierait la propriété "strength" pour un jet en ligne qui a donné un sept, huit ou neuf.

Note : Toutes les fonctions d'aide ne vérifieront que le premier jet en ligne trouvé dans une propriété.

Important : Lorsque vous "fermez" la section d'une fonction d'aide, vous devez mettre l'appel de fonction entier incluant tous les arguments. Par exemple, {{#rollWasCrit() attack}} serait fermé par {{/rollWasCrit() attack}}.

Voici un exemple de modèle de lancer qui ne montrerait sa section Dommages Critiques que si le lancer d'Attaque est un critique :

<div class="sheet-template-container">
		<div class="sheet-template-header">{{rollname}}</div>
		{{#attack}}<div class="sheet-template-row"><span>Attaque : </span>{{attack}}</div>{{/attack}}
		<div class="sheet-template-row">
			<span>Dommage : </span>{{damage}} 
			{{#rollWasCrit() attack}}
				<span>Critique : </span>{{dmgcrit}}
			{{/rollWasCrit() attack}}
		</div>
		<div class="sheet-template-row"><span>Type : </span>{{dmgtype}}</div>
   </div>

Inverser la logique 

Il est également utile de pouvoir tester quand quelque chose ne correspond pas à la logique. Si vous voulez savoir quand un jet est égal ou supérieur à un total, vous ne pouvez pas le faire directement. Mais vous pouvez tester si un jet n'est pas inférieur à un total, ce qui revient au même.

Vous pouvez le faire en commençant par#^et se terminant par/^. Voici à quoi pourrait ressembler ce test :

{{#rollLess() attackroll }}
     <span>Jet inférieur à jetdattaque ! </span>
{{/rollLess() jetdattaque }} -
{{#^rollLess() jetdattaque }} -
     <span>Jet non inférieur à jetdattaque !</span>
     <span>En d'autres termes, le jet est supérieur ou égal à jetdattaque.</span>
{{/^rollLess() jetdattaque }}

Variables de fonction auxiliaire

Toutes les fonctions auxiliaires qui acceptent un nombre, telles que rollTotal() ou rollBetween(), peuvent utiliser le résultat d'un autre jet en ligne dans le même modèle de jet à la place du nombre. Par exemple {{#rollGreater() save poison}} comparerait le résultat du jet en ligne de sauvegarde et le jet en ligne du poison et afficherait la section si le résultat de la sauvegarde était supérieur.

Fonction d'Aide Spéciale : allProps()

Il existe une fonction d'aide spéciale appelée allProps() qui peut être utilisée pour répertorier dynamiquement toutes les propriétés qui ont été transmises à un jet, même si vous ne les incluez pas explicitement. Vous pouvez également spécifier les propriétés à ignorer. Par exemple, ce qui suit afficherait un tableau avec une ligne de tableau pour chaque propriété incluse dans le jet, à l'exception de la propriété "attack" :

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

Personnalisation des Modèles de Jet

Pour styliser un modèle de lancer, incluez simplement dans la feuille de personnage le CSS correspondant. Voici un exemple rapide qui devrait vous donner une bonne idée de la manière de le faire (dans cet exemple, le nom du modèle de lancer est "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;
}

Remarquez que tous les styles commencent par ".sheet-rolltemplate-<templatename>". Vous pouvez ensuite styliser votre propre HTML personnalisé (comme les tables, les divs et les classes que vous avez utilisées). Notez que toutes les classes que vous incluez dans votre modèle de rouleau (comme "tcat" dans l'exemple ci-dessus) seront précédées de ".userscript-" pour des raisons de sécurité. La chose la plus simple à faire est de créer votre mise en page, puis d'effectuer un roulement dans le jeu et d'inspecter le code HTML résultant afin de vous assurer que vous tenez compte de tout filtrage de sécurité en cours.


Exemples de modèles de rouleaux

Vous trouverez ci-dessous quelques exemples de la fonctionnalité "Roll Template" propres à chaque système.


Donjons et Dragons 5ème édition


Modèle de rouleau 5e.png

Macro :

&{template:5eAttack} {{nom=@{meleeweaponname1}}} {{sous-étiquettes=Main principale, Finesse, @{meleedmgtype1}}}
{{attaque=[[1d20+@{meleetohit1}]]}} {{attaqueadv=[[1d20+@{meleetohit1}]]}}
{{dommage=[[@{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">Attaque : </span>{{attack}} | {{attackadv}} vs AC</div>
        {{#damage}}
            <div>
                 <span class="tcat">Dégâts : </span>{{damage}} 
                 <span class="tcat">Crit : </span>{{dmgcrit}}
            </div>
        {{/damage}}
        {{#snkattk}}
            <div>
                 <span class="tcat">Attaque furtive : </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 ;
    width : 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-rolltemplate-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 ;
    border : none ;
}
 
.sheet-rolltemplate-5eAttack .inlinerollresult.fullfail {
    color : #B31515 ;
    border : none ;
}
 
.sheet-rolltemplate-5eAttack .inlinerollresult.importandivoll {
    color : #4A57ED ;
    border : none ;
}

 


Donjons et Dragons 3.5 / Pathfinder


Modèle de rouleau pf.png

Macro :

&{template:pf_spell} {{nom=@{repeating_lvl-0-spells_0_name}}}{{école=@{repeating_lvl-0-spells_0_school}}} 
{{niveau=sorcier/mage 0}} {{temps_de_casting=@{repeating_lvl-0-spells_0_cast-time}}} 
{{composants=@{repeating_lvl-0-spells_0_components}}} {{portée=@{repeating_lvl-0-spells_0_range}}} 
{{cible=@{repeating_lvl-0-spells_0_targets}}} {{durée=@{repeating_lvl-0-spells_0_duration}}} 
{{saving_throw=@{repeating_lvl-0-spells_0_save}}} {{sr=@{repeating_lvl-0-spells_0_sr}}} 
{{rng_attaque=[[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">École </span>{{school}}; 
				<span class="tcat">Niveau </span>{{level}}
			</td>        
        </tr>
        <tr>
            <td><span class="tcat">Temps d'incantation </span>{{casting_time}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Composantes </span>{{components}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Portée </span>{{range}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Effet/cible </span>{{target}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Durée </span>{{duration}}</td>        
        </tr>
        <tr>
            <td>
				<span class="tcat">Jets de sauvegarde </span>{{saving_throw}}; 
				<span class="tcat">Résistance aux sorts </span>{{sr}}
			</td>         
        </tr>
        {{#rng_attack}}
            <tr><td><span class="tcat">Attaque à distance </span>{{rng_attack}}</td></tr>
        {{/rng_attack}}
        {{#mel_attack}}
            <tr><td><span class="tcat">Attaque en mêlée </span>{{mel_attack}}</td></tr>
        {{/mel_attack}}
		{{#damage}}
			<tr><td><span class="tcat">Dégâts : </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-rolltemplate-pf_spell .inlinerollresult {
    background-color : transparent ;
    border : none ;
}
 
.sheet-rolltemplate-pf_spell .inlinerollresult.fullcrit {
	color : #3FB315 ;
    border : none ;
}
 
.sheet-rolltemplate-pf_spell .inlinerollresult.fullfail {
	color : #B31515 ;
    border : none ;
}
 
.sheet-rolltemplate-pf_spell .inlinerollresult.importantroll {
	color : #4A57ED ;
    border : none ;
}

Le monde des ténèbres


Modèle de rouleau wod.png

Macro :

&{template:wod} {{nom=@{character_name}}} {{roll_name=Command}} 
{{attr=Intelligence}} {{attr_num=@{intelligence}}} {{compétence=Intimidation}} 
{{compétence_num=@{intimidation}}} {{pwr=Dominer}} {{pwr_num=@{dominate}}} {{mod_num= ?{Modifiers|0}}} 
{{résultat=[[{(@{intelligence}+@{intimidation}+@{dominate}+ ?{Modifiers|0})d10!}>8]]}}

HTML :

<rolltemplate class="sheet-rolltemplate-wod">
    <table>
        <tr><th>{{name}} Roulements{{#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}}
                 + Modificateurs({{mod_num}})
            {{/mod_num}}
        </td></tr>
        <tr>
            <td class="result">{{result}} Succès</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 : transparent ;
    color : #000000 ;
    border : none ;
}
 
.sheet-rolltemplate-wod .inlinerollresult.fullcrit {
   color : #3FB315 ;
    border : none ;
}
 
.sheet-rolltemplate-wod .inlinerollresult.fullfail {
    color : #000000 ;
    border : none ;
}
 
.sheet-rolltemplate-wod .inlinerollresult.importantroll {
	color : #3FB315 ;
    border : none ;
}
Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 122 sur 187