Come creare modelli di lancio

I modelli di rotolo sono un aspetto speciale del sistemaFogli di Carattereche fornisce ulteriori opzioni di layout e di stile per la visualizzazione dei risultati dei rotoli.


Modelli di lancio incorporati

I seguenti modelli di lancio sono incorporati in Roll20 e possono essere utilizzati in qualsiasi gioco.

Esempio predefinito del modello di lancio2.JPG

Predefinito

Per utilizzare il modello predefinito, utilizzare "&{template:default}".

Proprietà Valore atteso
nome Il nome del lancio, mostrato nell'intestazione dell'elenco dei lanci

Il modello predefinito è speciale, e elencherà qualsiasi argomento gli venga fornito in una tabella. Quindi, ad esempio, potresti fare quanto segue:

&{template:default} {{name=Test Attack}} {{attack=[[1d20]]}}
{{note= Questo è un contenuto di nota}} {{Tiro Salvezza= vs Volontà}}

Qui è un esempio abbastanza preciso del modello predefinito con le relative classi CSS dipendenti.


Creazione di un modello di tiro

Se è un autore di fogli, può includere tutti i modelli di rotolo che desidera nel suo foglio caratteri HTML e CSS. Ti faremo sapere come fare di seguito.

Se è abbonato aPro, può creare i suoi modelli di rotolo se utilizza l'opzione foglio del personaggio "Personalizzato" con il suo gioco. Segui le istruzioni di seguito.


Definizione del layout del modello di tiro

Il primo passo nella creazione di un modello di tiro è definire il layout, inclusi le proprietà che saranno disponibili per essere compilati dal giocatore. I modelli di tiro sono semplicemente HTML e hai accesso a tutto l'HTML disponibile in qualsiasi altra parte di una scheda personaggio (inclusi i tagdivetable). Ecco un esempio del layout di una tabella di tiro:

<rolltemplate class="sheet-rolltemplate-test">
    <div class="sheet-template-container">
	<div class="sheet-template-header">{{rollname}}</div>
	{{#attack}}<div class="sheet-template-row">Attacco: {{attack}} {{attackadvantage}} contro CA</div>{{/attack}}
        {{#damage}}
	<div class="sheet-template-row"><span>Danno: </span>{{damage}} 
        <span>Critico: </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">Effetto: </span>{{atteffect}}
         </div>
       {{/atteffect}}
</rolltemplate>

Il suo modello deve avere un tagrolltemplatecon una classe di "sheet-rolltemplate-<template_name>" template_name" è lo stesso nome che verrà utilizzato nella parte &{template:<template_name>} del comando e non deve contenere spazi. Puoi inserire il roll template ovunque tu voglia nell'HTML del tuo Character Sheet, ma ti consigliamo di metterlo alla fine. Verrà automaticamente "rimosso" dal tuo modello in modo che non venga mostrato come parte del foglio nella vista del personaggio. Nota che non puoi nidificare rolltemplates l'uno dentro l'altro.

Dopo di ciò, spetta a te decidere come strutturare il tuo roll. Ti consigliamo un layout a tabella, ma dipende da te.

All'interno del template, hai accesso ai seguenti:

Proprietà

Puoi includere qualsiasi proprietà desideri usando le doppie parentesi graffe. Quindi{{myproperty}}produrrebbe qualsiasi cosa (roll inline, testo). ecc.) viene dato al template tramite{{myproperty=<value>}}in the roll. Per creare una nuova proprietà, basta aggiungerla al tuo template e dargli un nome unico. Ancora, evita l'uso di spazi per garantire la massima compatibilità con tutte le funzioni di aiuto.

Logica

Se fai {{#<property>}}seguito da {{/<property>}}, tutte le parti tra questi due tag verranno mostrate solo se la proprietà contiene un valore. Questo può essere utile per fornire diverse parti a un template che potrebbero essere utilizzate solo alcune volte. Ad esempio, la parte "Effetto" di un tiro potrebbe applicarsi solo a incantesimi, quindi se il tiro non fornisce un effetto, quella sezione non verrà mostrata.

Puoi anche fare {{^<property>}}seguito da {{/<property>}}per significare il contrario, cioè mostrare la sezione solo se la proprietà specificata non esiste.

Funzioni di Aiuto

Ci sono diverse funzioni di supporto che si occupano di tiri forniti. Usatele proprio come il normale schema di logica sopra, ma state chiamando una funzione e fornendo una proprietà. La sezione contenuta tra i tag verrà mostrata solo se la funzione viene valutata come vera.

Funzione di supporto Mostra sezione se
{{#rollWasCrit() <rollname>}} Se il tiro fornito contiene critici, la sezione verrà mostrata. Ad esempio, {{#rollWasCrit() attack}} verificherà la proprietà "attacco" per un tiro inline che ha almeno un tiro critico.
{{#rollWasFumble() <rollname>}} Stessa cosa di #rollWasCrit(), ma controlla se ci sono fumble (tiri di 1).
{{#rollTotal() <rollname>}} Controlla il totale di un lancio inline per il valore. Se corrispondono, la sezione viene mostrata. Ad esempio,{{#rollTotal() attack 10}}verificherebbe la proprietà "attacco" per un lancio inline che totalizza 10.
{{#rollGreater() <rollname>}} Controlla il totale di un lancio inline per il valore. Se il risultato del lancio è maggiore, la sezione viene mostrata. Ad esempio,{{#rollGreater() AC 16}}verificherebbe la proprietà "CA" per un lancio inline che ha come risultato 17 o superiore.
{{#rollLess() <rollname>}} Controlla il totale di un tiro inline per il valore. Se il risultato del tiro è inferiore, la sezione viene mostrata. Ad esempio,{{#rollLess() deathsave 10}}verificherebbe la proprietà "deathsave" per un tiro inline che ha dato come risultato 9 o meno.
{{#rollBetween() <rollname>}} Controlla il totale di un tiro inline per il valore. La funzione rollBetween() accetta due numeri. Se il risultato del tiro è uguale o compreso tra i due numeri, la sezione viene mostrata. Ad esempio,{{#rollBetween() strength 7 9}}verificherà la proprietà "strength" per un tiro inline che ha dato come risultato sette, otto o nove.

Nota: Tutte le funzioni di supporto verificheranno solo il primo tiro inline trovato in una proprietà.

Importante:Quando "chiudi" la sezione di una funzione di supporto, devi includere l'intera chiamata di funzione, compresi tutti gli argomenti. Ad esempio,{{#rollWasCrit() attack}}sarebbe chiuso da{{/rollWasCrit() attack}}.

Ecco un esempio di modello di tiro che mostrerebbe solo la sua sezione di Danno Critico se il tiro di Attacco è un critico:

<div class="sheet-template-container">
		<div class="sheet-template-header">{{rollname}}</div>
		{{#attack}}<div class="sheet-template-row"><span>Attacco: </span>{{attack}}</div>{{/attack}}
		<div class="sheet-template-row">
			<span>Danno: </span>{{damage}} 
			{{#rollWasCrit() attack}}
				<span>Critico: </span>{{dmgcrit}}
			{{/rollWasCrit() attacco}}
		</div>
		<div class="sheet-template-row"><span>Tipo: </span>{{dmgtype}}</div>
   </div>

Invertendo la Logica 

È anche utile essere in grado di testare quando qualcosa non corrisponde alla logica. Se vuoi sapere quando un tiro è Uguale o Maggiore di un totale, non puoi farlo direttamente. Ma puoi testare se un tiro NON è Minore di un totale, che è la stessa cosa.

Puoi farlo partendo da#^e terminando con/^. Ecco come potrebbe apparire quel test:

{{#rollLess() attackroll }}
     <span>Tiro Minore di attackroll! </span>
{{/rollLess() attackroll }}
{{#^rollLess() attackroll }}
     <span>Tiro NON Minore di attackroll!</span>
     <span>In altre parole, il Tiro è maggiore o uguale a attackroll.</span>
{{/^rollLess() attackroll }}

Variabili della Funzione di Supporto

Tutte le funzioni di supporto che accettano un numero, come rollTotal() o rollBetween(), possono utilizzare il risultato di un altro tiro inline nello stesso Modello di Tiro al posto del numero. Ad esempio{{#rollGreater() save poison}}confronta il risultato del tiro salva inline e il risultato del tiro veleno inline e mostra la sezione se il risultato del tiro salva è maggiore.

Funzione Speciale di Supporto: allProps()

Esiste una funzione speciale di supporto chiamata allProps() che può essere utilizzata per elencare dinamicamente tutte le proprietà che sono state passate a un tiro, anche se non le includi esplicitamente. Puoi anche specificare le proprietà da ignorare. Ad esempio, il seguente mostrerà una tabella con una riga per ogni proprietà inclusa nel tiro, ad eccezione della proprietà "attacco":

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

Styling dei Modelli di Tiro

Per stilizzare un modello di tiro, basta includere il CSS per esso nel CSS del tuo Foglio del Personaggio. Ecco un esempio rapido che dovrebbe darti un'idea di come farlo (in questo esempio, il nome del modello di tiro è "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;
}

Nota che tutti gli stili iniziano con ".sheet-rolltemplate-<templatename>". Puoi quindi stilizzare il tuo HTML personalizzato (come le tabelle, i div e le classi che hai usato). Nota che qualsiasi classe che includi nel layout del tuo modello di roll (come "tcat" nell'esempio sopra) avrà ".userscript-" aggiunto all'inizio per motivi di sicurezza. La cosa più semplice da fare è creare il tuo layout, quindi eseguire un roll in-game e ispezionare l'HTML risultante in modo da assicurarti di considerare qualsiasi filtraggio di sicurezza che sta avvenendo.


Esempi di Modello di Roll

Di seguito sono riportati alcuni esempi specifici del sistema di funzionalità del Modello di Roll.


Dungeons and Dragons 5th Edition


Rolltemplate 5e.png

Macro:

&{template:5eAttack} {{nome=@{meleeweaponname1}}} {{subtags=Mano principale, Finess, @{meleedmgtype1}}}
{{attacco=[[1d20+@{meleetohit1}]]}} {{attaccoadv=[[1d20+@{meleetohit1}]]}}
{{danneggiamento=[[@{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">Attacco: </span>{{attack}} | {{attackadv}} vs AC</div>
        {{#damage}}
            <div>
                 <span class="tcat">Danno: </span>{{damage}} 
                 <span class="tcat">Crit: </span>{{dmgcrit}}
            </div>
        {{/damage}}
        {{#snkattk}}
            <div>
                 <span class="tcat">Attacco 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;
    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;
    bordo: nessuno;
}
 
.sheet-rolltemplate-5eAttack .inlinerollresult.fullcrit {
    color: #3FB315;
    bordo: nessuno;
}
 
.sheet-rolltemplate-5eAttack .inlinerollresult.fullfail {
    color: #B31515;
    bordo: nessuno;
}
 
.sheet-rolltemplate-5eAttack .inlinerollresult.importandivoll {
    color: #4A57ED;
    bordo: nessuno;
}

 


Dungeons and Dragons 3.5 / Pathfinder


Modello di rotolo pf.png

Macro:

&{template:pf_spell} {{nome=@{repeating_lvl-0-spells_0_name}}}{{Scuola=@{repeating_lvl-0-spells_0_school}}} 
{{livello=stregone/stregone 0}} {{tempo_di_casting=@{repeating_lvl-0-spells_0_cast-time}}} 
{{componenti=@{repeating_lvl-0-spells_0_components}}} {{range=@{repeating_lvl-0-spells_0_range}}} 
{{target=@{repeating_lvl-0-spells_0_targets}}} {{durata=@{repeating_lvl-0-spells_0_duration}}} 
{{lancio_di_risparmio=@{repeating_lvl-0-spells_0_save}}} {{sr=@{repeating_lvl-0-spells_0_sr}}} 
{{attacco_rng=[[1d20 + @{attk-ranged}]]}} {{damage=1d3([[1d3]])}} 
{{descrizione_degli_incantesimi=@{repeating_lvl-0-spells_0_description}}}

HTML:

<rolltemplate class="sheet-rolltemplate-pf_spell">
    <table>
        <tr><th>{{name}}</th></tr>
        <tr>
            <td>
				<span class="tcat">Scuola </span>{{school}}; 
				<span class="tcat">Livello </span>{{level}}
			</td>        
        </tr>
        <tr>
            <td><span class="tcat">Tempo di lancio </span>{{casting_time}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Componenti </span>{{components}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Portata </span>{{range}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Effetto/Target </span>{{target}}</td>        
        </tr>
        <tr>
            <td><span class="tcat">Durata </span>{{duration}}</td>        
        </tr>
        <tr>
            <td>
				<span class="tcat">Tiro salvezza </span>{{saving_throw}}; 
				<span class="tcat">Resistenza agli incantesimi </span>{{sr}}
			</td>         
        </tr>
        {{#rng_attack}}
            <tr><td><span class="tcat">Attacco a distanza </span>{{rng_attack}}</td></tr>
        {{/rng_attack}}
        {{#mel_attack}}
            <tr><td><span class="tcat">Attacco in mischia </span>{{mel_attack}}</td></tr>
        {{/mel_attack}}
		{{#damage}}
			<tr><td><span class="tcat">Danno: </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 solido trasparente;
	border-left: 180px solido 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;
    bordo: nessuno;
}
 
.sheet-rolltemplate-pf_spell .inlinerollresult.fullfail {
	color: #B31515;
    bordo: nessuno;
}
 
.sheet-rolltemplate-pf_spell .inlinerollresult.importantroll {
	color: #4A57ED;
    bordo: nessuno;
}

Il mondo delle tenebre


Modello di rotolo wod.png

Macro:

&{template:wod} {{nome=@{character_name}}} {{roll_name=Comando}} 
{{attr=Intelligenza}} {{attr_num=@{intelligence}}} {{skill=Intimidazione}} 
{{skill_num=@{intimidation}}} {{pwr=Dominare}} {{pwr_num=@{dominate}}} {{mod_num=?{Modifiers|0}}} 
{{risultato=[[{(@{intelligence}+@{intimidation}+@{dominate}+?{Modifiers|0})d10!}>8]]}}

HTML:

<rolltemplate class="sheet-rolltemplate-wod">
    <table>
        <tr><th>{{name}} rotoli{{#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}}
                 + Modificatori({{mod_num}})
            {{/mod_num}}
        </td></tr>
        <tr>
            <td class="result">{{result}} Successi</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;
    bordo: nessuno;
}
 
.sheet-rolltemplate-wod .inlinerollresult.fullfail {
    color: #000000;
    bordo: nessuno;
}
 
.sheet-rolltemplate-wod .inlinerollresult.importantroll {
	color: #3FB315;
    bordo: nessuno;
}
Questo articolo ti è stato utile?
Utenti che ritengono sia utile: 109 su 167