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.
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 comprisdiv
ettable
). 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
Macro : |
|
HTML : |
|
CSS : |
|
Donjons et Dragons 3.5 / Pathfinder
Macro : |
|
HTML : |
|
CSS : |
|
Le monde des ténèbres
Macro : |
|
HTML : |
|
CSS : |
|