obj.get("property")e impostare nuovi valori utilizzandoobj.set("property", newvalue)oobj.set({property: newvalue, property2: newvalue2}).Nota:la proprietàiddi un oggetto è un ID univoco a livello globale: non è possibile che due oggetti abbiano lo stesso ID, anche se appartengono a tipi diversi. Inoltre, poiché l'ID di un oggetto viene consultato frequentemente e non cambia mai, è disponibile una scorciatoia che consente di accedervi utilizzandoobj.idinvece diobj.get("_id"), se lo si desidera (entrambi funzionano).
Pathv2 (disponibile sull'ultima versione del motore VTT)
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id |
Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti dell' |
|
| _tipo | "pathv2" | Può essere utilizzato per identificare il tipo di oggetto o per cercare l'oggetto . Solo lettura. |
| _pageid | ID della pagina in cui si trova l'oggetto. Solo lettura. | |
| forma | "" | "pol", "free", "eli" o "rec" Determina se il percorso viene visualizzato come polilinea, a mano libera, ellisse o rettangolo. |
| punti | Una stringa JSON contenente un array di punti x,y utilizzati per creare il percorso. | |
| riempire | "trasparente" | Colore di riempimento. Si prega di utilizzare la stringa "trasparente" o un codice esadecimale come stringa, ad esempio "#000000". |
| ictus | #000000 | Colore del contorno. |
| rotazione | 0 | Rotazione (in gradi). |
| livello | "" | Livello corrente, uno tra "gmlayer", "oggetti", "mappa", "pareti" o "primo piano". Il livello delle pareti viene utilizzato per l'illuminazione dinamica e i percorsi su tale livello bloccheranno la luce. |
| larghezza_tratto | 5 | |
| y | 0 | Coordinata Y per il centro del percorso |
| x | 0 | Coordinata X per il centro del percorso |
| controllato da | "" |
Elenco delimitato da virgole degli ID dei giocatori che possono controllare il percorso. I giocatori controllanti possono eliminare il percorso. Se il percorso è stato creato da un giocatore, tale giocatore viene automaticamente incluso nell'elenco. Tutti i giocatorisono rappresentati dall'indicazione "tutti" nell'elenco. |
| tipo di barriera | "muro" |
Le opzioni dinamiche del tipo di barriera luminosa includono "parete", "unidirezionale" e "trasparente". |
| oneWayReversed | non corretto |
booleano |
| sfumatura su sovrapposizione | vero | Se vero, la sovrapposizione del contorno interno di un oggetto grafico con l'oggetto del livello in primo piano determinerà che la sua opacità assuma il valore specificato in fadeOpacity. Se impostato su falso, rimarrà completamente opaco indipendentemente dalla sovrapposizione. |
| opacità dissolvenza | 0.3 | Questo valore determina l'opacità dell'oggetto quando è sovrapposto da un elemento grafico sul livello dell'oggetto e fadeOnOverlap è impostato su true. |
| renderizzaComeScenario | non corretto | Se vero, questo oggetto sarà oscurato dall'illuminazione dinamica e dalla maschera Nascondi/Mostra. |
La proprietà shape presenta i seguenti valori:
- "pol"- Polilinea. Si traccia una linea retta tra ogni punto consecutivo. Se il punto iniziale e il punto finale coincidono, si crea una forma chiusa.
- "free"- A mano libera. Una curva viene tracciata utilizzando i punti come guide. Se il punto iniziale e il punto finale coincidono, si crea una forma chiusa.
- "eli" - Ellisse. Un'ellisse viene disegnata utilizzando i punti per impostare un riquadro di delimitazione. Si utilizzano solo i primi due punti.
- "rec" - Rettangolo. Si disegna un rettangolo utilizzando i punti per impostare un riquadro di delimitazione. Si utilizzano solo i primi due punti.
La proprietà points è una stringa JSON contenente un array di punti. I punti sono rappresentati come un array a due posizioni di una posizione x e y. Un triangolo che va da (0,0) a (0,70) a (70,0) e torna a (0,0) sarebbe rappresentato come "[[0,0],[0,70],[70,0],[0,0]]".
Le proprietà x eyposizionano l'oggetto PathV2 sulla pagina. Essi indicano dove dovrebbe trovarsi il centro del disegno. Per alcune forme (ellissi e rettangoli), è piuttosto semplice da determinare. Per forme più complesse (polilinee e disegni a mano libera), sarà necessario individuare i valori minimo e massimo dalla proprietà dei puntie utilizzare il punto equidistante tra essi.
Percorso (Tavolo di gioco classico)
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id |
Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti dell' |
|
| _tipo | "percorso" | Può essere utilizzato per identificare il tipo di oggetto o per cercare l'oggetto . Solo lettura. |
| _pageid | ID della pagina in cui si trova l'oggetto. Solo lettura. | |
| _percorso | Una stringa JSON che descrive le linee nel percorso. Solo lettura, tranne quando si crea un nuovo percorso. Per ulteriori informazioni, consultare la sezione dedicata ai percorsi. | |
| riempire | "trasparente" | Colore di riempimento. Utilizzare la stringa "trasparente" o un codice esadecimale come stringa, ad esempio "#000000". |
| ictus | #000000 | Colore del contorno. |
| rotazione | 0 | Rotazione (in gradi). |
| livello | "" | Livello corrente, uno tra "gmlayer", "oggetti", "mappa", "pareti" o "primo piano". Il livello delle pareti viene utilizzato per l'illuminazione dinamica e i percorsi su tale livello bloccheranno la luce. |
| larghezza_tratto | 5 | |
| larghezza | 0 | |
| altezza | 0 | |
| in alto | 0 | Coordinata Y per il centro del percorso |
| a sinistra | 0 | Coordinata X per il centro del percorso |
| scalaX | 1 | |
| scalaY | 1 | |
| controllato da | "" |
Elenco separato da virgole degli ID dei giocatori che possono controllare il percorso. I giocatori controllanti possono eliminare il percorso. Se il percorso è stato creato da un giocatore, tale giocatore viene automaticamente incluso nell'elenco. Tutti i giocatorisono rappresentati dall'indicazione "tutti" nell'elenco. |
| tipo di barriera | "muro" |
Le opzioni dinamiche del tipo di barriera luminosa includono "parete", "unidirezionale" e "trasparente". |
| oneWayReversed | non corretto |
booleano |
| sfumatura su sovrapposizione | vero | Se vero, la sovrapposizione del contorno interno di un oggetto grafico con l'oggetto del livello in primo piano determinerà che la sua opacità assuma il valore specificato in fadeOpacity. Se impostato su falso, rimarrà completamente opaco indipendentemente dalla sovrapposizione. |
| opacità dissolvenza | 0.3 | Questo valore determina l'opacità dell'oggetto quando è sovrapposto da un elemento grafico sul livello dell'oggetto e fadeOnOverlap è impostato su true. |
| renderizzaComeScenario | non corretto | Se vero, questo oggetto sarà oscurato dall'illuminazione dinamica e dalla maschera Nascondi/Mostra. |
Per ulteriori informazioni sul formato dei dati_path, consultare la sezione relativa ai percorsi.
Finestra
Nota: Finestre e porte utilizzano un asse invertito rispetto ad altri tipi di oggetti. Ad esempio, una variabile superiore che sarebbe 100 per un altro oggetto è y -100 per una finestra o una porta.
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "finestra" | Solo lettura. |
| colore | Colore esadecimale del percorso. | |
| x | 0 | Coordinare il centro della porta sull'asse x. |
| y | 0 | Coordinare il centro della porta sull'asse y. |
| è aperto | non corretto | Determina se un giocatore può attraversare questa finestra. |
| è bloccato | non corretto | Impedisce ai giocatori di interagire con la finestra. |
| path: | Rappresentato come due maniglie (handle0 e handle1), ciascuna con coordinate x e y. |
Esempio
on('chat:message', function(msg) {
if (msg.type === 'api' && msg.content === '!cw') {
const currentPageID = Campaign().get('playerpageid');
const win = createObj('window', {
x: 70,
y: -70,
pageid: currentPageID,
path: {
handle0: {
x: -70,
y: 0,
},
handle1: {
x: 35,
y: 0,
},
},
color: '#000000'
});
}
if (msg.type === 'api' && msg.content === '!mw') {
const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
win.set({
x: 240,
y: -139
});
}
if (msg.type === 'api' && msg.content === '!dw') {
const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
win.remove();
}
});
Porta
Nota: le finestre e le porte di utilizzano un asse invertito rispetto ad altri tipi di oggetti. Ad esempio, una variabile superiore che sarebbe 100 per un altro oggetto è y -100 per una finestra o una porta.
|
Immobile |
Valore predefinito |
Note |
|
_id |
Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. |
|
|
_tipo |
"porta" |
Solo lettura. |
|
colore |
Colore esadecimale del percorso. |
|
|
x |
0 |
Coordinare il centro della porta sull'asse x. |
|
y |
0 |
Coordinare il centro della porta sull'asse y. |
|
è aperto |
non corretto |
Determina se un giocatore può attraversare questa porta. |
|
è bloccato |
non corretto |
Impedisce ai giocatori di interagire con la porta. |
|
è segreto |
non corretto |
Rimuove l'icona di una porta dalla visuale del giocatore e funge da barriera. |
|
path: |
Rappresentato come due maniglie (handle0 e handle1), ciascuna con coordinate x e y. |
Testo
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "testo" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| _pageid | ID della pagina in cui si trova l'oggetto. Solo lettura. | |
| in alto | 0 | |
| a sinistra | 0 | |
| larghezza | 0 | |
| altezza | 0 | |
| testo | "" | |
| dimensione carattere | 16 | Per ottenere risultati ottimali, si consiglia di utilizzare le dimensioni predefinite nel menu di modifica: 8, 10, 12, 14, 16, 18, 20, 22, 26, 32, 40, 56, 72, 100, 200, 300. |
| rotazione | 0 | |
| colore | rgb(0, 0, 0) | |
| ictus | "trasparente" | |
| famiglia di caratteri | "Arial" | Se questa opzione non è impostata, quando in seguito si modifica il valore della proprietà "text", la dimensione del carattere si ridurrà a 8. Valori possibili (le maiuscole non sono rilevanti): "Arial", "Patrick Hand", "Contrail One", "Shadows Into Light" e "Candal". Specificando un nome non valido, verrà utilizzato un font serif monospaziato senza nome. |
| livello | "" | Livello corrente, uno tra "gmlayer", "oggetti", "mappa", "pareti" o "primo piano". Il livello delle pareti viene utilizzato per l'illuminazione dinamica e i percorsi su tale livello bloccheranno la luce. |
| controllato da | "" | Elenco separato da virgole degli ID dei giocatori che possono controllare il testo. Gli amministratori possono eliminare il testo. Se il testo è stato creato da un giocatore, tale giocatore viene automaticamente incluso nell'elenco.
Tutti i giocatorisono rappresentati dall'indicazione "tutti" nell'elenco. |
| sfumatura su sovrapposizione | vero | Se vero, la sovrapposizione del contorno interno di un oggetto grafico con l'oggetto del livello in primo piano determinerà che la sua opacità assuma il valore specificato in fadeOpacity. Se impostato su falso, rimarrà completamente opaco indipendentemente dalla sovrapposizione. |
| opacità dissolvenza | 0.3 | Questo valore determina l'opacità dell'oggetto quando è sovrapposto da un elemento grafico sul livello dell'oggetto e fadeOnOverlap è impostato su true. |
| renderizzaComeScenario | non corretto | Se vero, questo oggetto sarà oscurato dall'illuminazione dinamica e dalla maschera Nascondi/Mostra. |
Grafica (segnalino/mappa/carta/ecc.)
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "grafico" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| _sottotipo | "segnalino" | Può essere "gettone" (per gettoni e mappe) o "carta" (per carte). Solo lettura. |
| _cardid | Impostare un ID se l'immagine è una scheda. Solo lettura. | |
| _pageid | ID della pagina in cui si trova l'oggetto. Solo lettura. | |
| imgsrc | L'URL dell'immagine grafica. Si prega di consultare la nota relativa alle restrizioni su imgsrc e avatar riportata di seguito. | |
| bar1_link | Impostare un ID se la barra 1 è collegata a un personaggio. | |
| bar2_link | ||
| bar3_link | ||
| rappresenta | ID del personaggio rappresentato da questo segnalino. | |
| a sinistra | 0 | Numero di pixel dal bordo sinistro della mappa al centro dell'immagine. |
| in alto | 0 | Numero di pixel dal bordo superiore della mappa al centro dell'immagine. |
| larghezza | 0 | Larghezza dell'immagine, espressa in pixel. |
| altezza | 0 | Altezza dell'immagine, espressa in pixel. |
| rotazione | 0 | L'orientamento del segnalino in gradi. |
| livello | "" |
Livello corrente, uno tra "gmlayer", "oggetti", "mappa", "pareti" o "primo piano". Il livello delle pareti viene utilizzato per l'illuminazione dinamica e i percorsi su tale livello bloccheranno la luce. |
| disegno | non corretto | Questa proprietà può essere modificata dal menu contestuale Avanzate. |
| disabilita aggancio | non corretto | Disattivare l'allineamento grafico alla griglia. |
| disattivareMenuToken | non corretto | Disattivare le impostazioni del menu dei token grafici (bolle dei token e menu radiale). |
| flipv | non corretto | Ruotare verticalmente. |
| fliph | non corretto | Ruotare orizzontalmente. |
| nome | "" | Il nome del segnalino. |
| Note GM | "" | Note sul segnalino visibili solo al GM. |
| controllato da | "" | Elenco separato da virgole degli ID dei giocatori che possono controllare la grafica. Gli amministratori possono eliminare l'immagine. Se l'immagine è stata creata da un giocatore, tale giocatore viene automaticamente incluso nell'elenco.
Tutti i giocatorisono rappresentati dall'indicazione "tutti" nell'elenco. |
| valore della barra 1 | "" | Valore attuale della barra 1. Può trattarsi di un numero o di un testo. |
| valore_bar2 | "" | |
| valore bar3 | "" | |
| bar1_max | "" | Valore massimo della barra 1. Se _value e _max sono entrambi impostati, è possibile che venga visualizzata una barra sopra il token che mostra la percentuale della Barra 1. |
| bar2_max | "" | |
| bar3_max | "" | |
| raggio dell'aura | "" | Raggio dell'aura, utilizzando le unità impostate nelle impostazioni della pagina. Può essere un numero intero o un numero decimale. Impostare la stringa vuota per cancellare l'aura. |
| aura2_raggio | "" | |
| aura1_colore | #FFFF99 | Un colore esadecimale o l'aura. |
| aura2_colore | #59E594 | |
| aura1_quadrato | non corretto | L'aura è un cerchio o un quadrato? |
| aura2_quadrato | non corretto | |
| colore_tinta | "trasparente" | Colore esadecimale o "trasparente". Modificherà il colore dell'immagine. |
| indicatori di stato | "" | Elenco delimitato da virgole degli indicatori di stato attualmente attivi. Per ulteriori informazioni, consultare le note riportate di seguito. |
| token_markers | "" | Un array JSON convertito in stringa contenente un oggetto per ogni indicatore per segnalino attualmente presente nel gioco. Di seguito è riportato un esempio. |
| nome mostrato | non corretto | Se viene visualizzata la targhetta del token. |
| mostra_nome_attori | non corretto | Mostrare la targhetta identificativa a tutti i giocatori. |
| barra_riproduzione_1 | non corretto | Mostrare la barra 1 a tutti i giocatori. |
| barra_riproduzione_2 | non corretto | |
| barra_riproduttori3 | non corretto | |
| showplayers_aura1 | non corretto | Mostrare Aura 1 a tutti i giocatori. |
| showplayers_aura2 | non corretto | |
| modifica nome giocatore | vero | Consentire ai giocatori controllanti di modificare il nome del segnalino. Mostra la targhetta anche ai giocatori che controllano, anche se showplayers_name è impostato su false. |
| playersedit_bar1 | vero | Consentire ai giocatori controllanti di modificare la barra 1 del segnalino. Mostra anche la barra 1 ai giocatori che controllano, anche se showplayers_bar1 è impostato su falso. |
| modifica_barra2 | vero | |
| playersedit_bar3 | vero | |
| giocatoriedit_aura1 | vero | Consentire ai giocatori controllanti di modificare l'aura 1 del segnalino. Mostra anche Aura 1 ai giocatori che controllano, anche se showplayers_aura1 è impostato su false. |
| giocatoriedit_aura2 | vero | |
| raggio_di_luce | "" | Raggio di illuminazione dinamica. |
| raggio_luce_dim | "" | Inizio del raggio di luce fioca. Se light_dimradius è una stringa vuota, il token emetterà una luce intensa fino alla distanza light_radius. Se light_dimradius ha un valore, il token emetterà una luce intensa fino al valore light_dimradius e una luce fioca da lì fino al valore light_radius. |
| luce_altri_giocatori | non corretto | Mostrare la luce del segnalino a tutti i giocatori. |
| luce_hassight | non corretto | La luce ha la "visibilità" necessaria per controllare i giocatori ai fini dell'impostazione "Applica linea di vista". |
| angolo_luce | "360" | Angolo (in gradi) dell'angolo della luce. Ad esempio, "180" indica che la luce sarebbe visibile solo nella "metà" anteriore del "campo visivo". |
| luce_losangle | "360" | Angolo (in gradi) del campo visivo dell'immagine (supponendo che light_hassight sia impostato su true) |
| ultima mossa | "" | L'ultima mossa del segnalino. Si tratta di un elenco di coordinate delimitato da virgole. Ad esempio, "300,400" indicherebbe che il segnalino ha iniziato la sua ultima mossa in posizione sinistra=300, alto=400. Si presume sempre che i valori attuali in alto + a sinistra del segnalino rappresentino il "punto finale" dell'ultima mossa. I waypoint sono indicati da più serie di coordinate. Ad esempio, "300,400,350,450,400,500" indicherebbe che il segnalino ha iniziato la sua corsa in posizione sinistra=300, alto=400, quindi ha impostato un waypoint in posizione sinistra=350, alto=450, un altro waypoint in posizione sinistra=400, alto=500, e infine ha terminato il movimento nelle coordinate attuali alto + sinistra. |
| moltiplicatore_di_luce | "1" | Moltiplicatore dell'efficacia delle sorgenti luminose. Un moltiplicatore pari a due consentirebbe al segnalino di vedere due volte più lontano rispetto a un segnalino con un moltiplicatore pari a uno, con la stessa fonte di luce. |
| distanza_di_visualizzazione_adv_fow | "" | Il raggio attorno a un segnalino in cui viene rivelata la Nebbia di Guerra Avanzata. |
| moltiplicatore_sensibilità_alla_luce | 100 | Moltiplicatore dell'efficacia delle sorgenti luminose. Un moltiplicatore di 200 consentirebbe al segnalino di vedere il doppio rispetto a un segnalino con un moltiplicatore di 100, con la stessa fonte di luce. |
|
effetto_visione_notturna |
Modifica l'effetto della visione notturna. Altre opzioni includono "Dimmer" e "Notte". | |
| posizione del bar | Regola la posizione delle barre del segnalino. Le opzioni disponibili sono "overlap_top", "overlap_bottom" e "bottom". | |
|
barra compatta |
Consente di regolare se la barra deve essere compatta o meno. Un'altra opzione è quella compatta. | |
| bloccareMovimento | non corretto | Un'opzione per bloccare un elemento grafico in posizione. Valore booleano vero o falso |
| sfumatura su sovrapposizione | vero | Se vero, la sovrapposizione del limite interno di un oggetto grafico del livello con l'oggetto del livello in primo piano determinerà che la sua opacità assuma il valore specificato in fadeOpacity. Se impostato su falso, rimarrà alla sua opacità di base impostata, indipendentemente dalla sovrapposizione. |
| opacità dissolvenza | .3 | Questo valore determina l'opacità dell'oggetto quando è sovrapposto da un elemento grafico sul livello dell'oggetto e fadeOnOverlap è impostato su true. |
| renderizzaComeScenario | non corretto | Se vero, questo oggetto sarà oscurato dall'illuminazione dinamica e dalla maschera Nascondi/Mostra. |
| opacità di base | 1.0 | Questo valore determina l'opacità iniziale della grafica. È attivo su qualsiasi livello, non solo sul livello di primo piano. |
Esempio di indicatori per segnalino
{
"id":59, // l'ID del database per l'
"name":"Bane", // il nome (non univoco) del marcatore
"tag":"Bane::59", // come viene effettivamente referenziato il token
// questo includerà l'ID per i marcatori personalizzati, ma non
// per i marcatori predefiniti.
"url":"https://s3.amazonaws.com/files.d20.io/images/59/yFnKXmhLTtbMtaq-Did1Yg/icon.png?1575153187"
// ^l'URL dell'immagine del marcatore del token
}
Note importanti sui personaggi collegati e sui segnalini
Si prega di notare che per i segnalini collegati ai personaggi, il campocontrolledbysul segnalino viene sovrascritto dal campocontrolledbysul personaggio.
Per le barre del segnalino (ad esempiobar1_valueebar1_max) in cui il segnalino è collegato a un attributo (ad esempiobar1_linkè impostato), l'impostazione di un valore per la barra aggiornerà automaticamente anche i valoricorrentie/omassimidell'attributo sottostante, evitando la necessità di impostarli manualmente.
Inoltre, quando l'attributo (o la barra del segnalino) viene modificato nel gioco, si sentirà unevento change:attribute(e specifico della proprietà, ad esempiochange:attribute:current), seguito da un eventochange:graphic(echange:graphic:bar1_value). È possibile scegliere di rispondere a uno dei due eventi, ma i valori della barra sottostante non saranno ancora aggiornati quando si verifica l'evento attributo, poiché questo si verifica per primo.
Note importanti sui marcatori di stato
A partire dal 6 agosto 2013, è cambiato il modo in cui vengono gestiti gli indicatori di stato sui segnalini. La proprietà "statusmarkers" dell'oggetto grafico è ora un elenco separato da virgole di tutti i colori/icone degli indicatori di stato che dovrebbero essere attivi sul segnalino. Il formato è il seguente:
//Delimitato da virgola (utilizzare join per creare o split per trasformare in un array).
Se un'icona/colore di stato è seguita dal simbolo "@", il numero dopo "@" verrà visualizzato come badge sull'icona. //Se un'icona/colore di stato è seguita dal simbolo "@", il numero dopo "@" verrà visualizzato come badge sull'icona. //Se un'icona/colore di stato è seguita dal simbolo "@", il numero dopo "@" verrà visualizzato come badge sull'icona. //Se un'icona/colore di stato è seguita dal simbolo "@", il numero dopo "@" verrà visualizzato come badge sull'icona. //Se un'icona/colore di stato è seguita dal simbolo "@", il numero dopo "@" verrà visualizzato come badge sull'icona. //Se un'icona/colore di stato è seguita dal simbolo "@", il
Sebbene sia possibile accedere direttamente alla proprietàstatusmarkers, per mantenere la retrocompatibilità con gli script esistenti e per fornire un modo semplice di lavorare con gli indicatori di stato senza dover scrivere codice per gestire la suddivisione e l'analisi della stringa, forniamo una serie di proprietà "virtuali" sull'oggetto che è possibile impostare/ottenere per lavorare con gli indicatori di stato. Ogni indicatore di stato possiede una proprietà "status_<markername>". Per esempio:
obj.get("status_red"); //Restituirà false se il marcatore non è attivo, true se lo è e una stringa (ad esempio "2" o "5") se attualmente è presente un badge impostato sul marcatore
obj.get('status_bluemarker'); //È ancora supportato per la compatibilità con le versioni precedenti ed è equivalente a obj.get("status_blue");
obj.set("status_red", false); //rimuoverebbe il marcatore
obj.set("status_skull", "2"); //impostarebbe un badge "2" sull'icona del teschio e lo aggiungerebbe al token se non è già attivo.
Si prega di notare che queste proprietà virtuali non dispongono di eventi, pertanto è necessario utilizzarechange:graphic:statusmarkersper rilevare le modifiche agli indicatori di stato di un token; ad esempio,change:graphic:status_rednon è un evento valido e non verrà mai attivato.
Di seguito è riportato l'elenco completo degli indicatori di stato disponibili (nello stesso ordine in cui appaiono nel vassoio degli indicatori):
"rosso", "blu", "verde", "marrone", "viola", "rosa", "giallo", "morto", "teschio", "assonnato", "mezzo cuore", "mezza foschia", "interdizione", "lumaca", "elica di fulmine", "chiave inglese", "cuore incatenato", "bullone chimico", "zona mortale", "bevi me", "crepa sul bordo", "maschera da ninja", "cronometro", "rete da pesca", "overdrive", "forte", "pugno", "lucchetto", "tre foglie", "ala soffice", "malconcio", "tread", "frecciato", "aura", "mal di schiena", "bandiera nera", "occhio sanguinante", "scudo a bullone", "cuore spezzato", "ragnatela", "scudo rotto", "bandiera sventolante", "radioattivo", "trofeo", "teschio rotto", "sfera congelata", "bomba rotolante", "torre bianca", "afferrare", "urlare", "granata", "mitragliatrice sentinella", "tutti per uno", "abito da angelo", "bersaglio per tiro con l'arco"
Pagina
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "pagina" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| _zorder | "" | Elenco di ID delimitato da virgole che specifica l'ordine degli oggetti nella pagina. toFrontetoBack(insieme alle voci del menu contestuale associate) consentono di riordinare questo elenco. Solo lettura. |
| nome | "" | Titolo della pagina. |
| mostra griglia | vero | Visualizza la griglia sulla mappa. |
| mostrare l'oscurità | non corretto | Mostra la nebbia di guerra sulla mappa. |
| illuminazione scenica | non corretto | Si prega di utilizzare un'illuminazione dinamica. |
| larghezza | 25 | Larghezza in unità. |
| altezza | 25 | Altezza in unità. |
| incremento_di_scatto | 1 | Dimensione di uno spazio della griglia in unità. |
| opacità della griglia | 0.5 | Opacità delle linee della griglia. |
| opacità_nebbia | 0.35 | Opacità della nebbia di guerra per il GM. |
| colore_sfondo | #FFFFFF | Colore esadecimale dello sfondo della mappa. |
| colore della griglia | #C0C0C0 | Colore esadecimale delle linee della griglia. |
| tipo_griglia | "quadrato" | Uno tra "quadrato", "esagonale" o "esagonale". (hex corrisponde a Hex(V), mentre hexr corrisponde a Hex(H)) |
| numero_scala | 5 | La distanza di un'unità. |
| unità di misura | "ft" | Il tipo di unità da utilizzare per la scala. |
| etichette della griglia | non corretto | Mostra le etichette della griglia esagonale. |
| tipo diagonale | "quattro" | Uno tra "foure", "pythagorean" (euclideo), "threefive" o "manhattan". |
| archiviato | non corretto | Se la pagina è stata archiviata. |
| aggiornamento leggero | non corretto | Si prega di aggiornare l'illuminazione dinamica solo quando un oggetto viene rilasciato. |
| Forza leggera | non corretto | Applicare la linea di vista per gli oggetti. |
| restrizione di luce | non corretto | Si prega di non consentire agli oggetti dotati di visione di attraversare le pareti con illuminazione dinamica. |
| illuminazione globale | non corretto | Se è vero che ovunque un segnalino possa "vedere", si presume che sia presente una luce intensa. |
| jukeboxtrigger | Controlla la riproduzione della pagina al caricamento. Le opzioni includono "nonestopall" o l'id della traccia. | |
| illuminazione_dinamica_abilitata | non corretto | |
| modalità_luce_diurna_abilitata | non corretto | |
| modalità luce diurna opacità | 1 | |
| modalità esploratore | "spento" | Opzioni: "disattivato", "base" |
| effetto oscurità | "nessuno" | Opzioni: "nessuna", "nebbia scura", "nebbia leggera" |
Campagna
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | "radice" | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. |
| _tipo | "campagna" | Può essere utilizzato per identificare il tipo di oggetto o per cercare l'oggetto; tuttavia, si prega di notare che esiste un solo oggetto Campagna, accessibile tramiteCampaign(). Solo lettura. |
| ordine di turno | "" | Una stringa JSON dell'ordine di turno. Si prega di consultare di seguito. |
| pagina dell'iniziativa | non corretto | ID della pagina utilizzata per il tracker quando è aperta la finestra dell'ordine di turno. Se impostato sufalso, la finestra dell'ordine di turno si chiude. |
| ID pagina giocatore | non corretto | ID della pagina su cui è impostato il segnalibro del lettore. I giocatori visualizzano questa pagina per impostazione predefinita, a meno che non venga sovrascritta dalle pagine specifiche per i giocatori riportate di seguito. |
| pagine specifiche per i giocatori | non corretto | Un oggetto (NON STRINGA JSON) nel formato: {"player1_id": "page_id", "player2_id": "page_id" ... } Qualsiasi lettore impostato su una pagina in questo oggetto sovrascriverà il playerpageid. |
| cartella_giornale | "" | Una stringa JSON che contiene dati relativi alla struttura delle cartelle del gioco. Solo lettura. |
| _cartella jukebox | "" | Una stringa JSON contenente dati relativi alla struttura della playlist del Jukebox del gioco. Solo lettura. |
| strato in primo piano visibile | vero | Quando è vero, i giocatori vedranno gli oggetti sul livello in primo piano. Se false, non lo faranno. Nota: questa è un'impostazione globale che influisce su tutte le pagine. |
ordine di turno
L'ordine di turno è una stringa JSON che rappresenta l'elenco dell'ordine di turno corrente. Si tratta di un insieme di oggetti. Attualmente, l'ordine di turno può contenere solo oggetti provenienti da una pagina alla volta: l'ID della pagina corrente per l'ordine di turno è l'attributo "initiativepage". Assicurarsi di mantenerli entrambi sincronizzati, altrimenti si potrebbero ottenere risultati inaspettati.
Per gestire l'ordine di turno, si consiglia di utilizzareJSON.parse()per ottenere un oggetto che rappresenti lo stato attuale dell'ordine di turno (NOTA: verificare innanzitutto che non si tratti di una stringa vuota""... se lo è, inizializzarla manualmente con un array vuoto). Ecco un esempio di oggetto ordine di turno:
{
"id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", //L'ID dell'oggetto grafico. Se questa opzione è selezionata, l'elenco dell'ordine di turno estrarrà automaticamente il nome e l'icona per l'elenco in base alla grafica sul tavolo da gioco.
"pr":"0", //Il valore attuale dell'articolo nell'elenco. Può essere un numero o un testo.
"custom":"" //Titolo personalizzato per l'articolo. Verrà ignorato se l'ID è impostato su un valore diverso da "-1".
},
{
"id":"-1", //Per gli articoli personalizzati, l'ID DEVE essere impostato su "-1" (si noti che si tratta di una STRINGA e non di un NUMERO).
"pr":"12",
"custom":"Test personalizzato" //Il nome da visualizzare per gli articoli personalizzati.
]
Per modificare l'ordine di turno, si prega di modificare l'oggetto dell'ordine di turno corrente e quindi utilizzareJSON.stringify()per modificare l'attributo nella campagna. Si noti che l'ordine di turno nell'elenco è lo stesso dell'ordine dell'array, quindi, ad esempio,push()aggiunge un elemento alla fine dell'elenco,unshift()lo aggiunge all'inizio, ecc.
var turnorder;
if(Campaign().get("turnorder") == "") turnorder = []; //NOTA: Verifichiamo innanzitutto che turnorder non sia solo una stringa vuota. Se è così, considerarlo come un array vuoto.
altrimenti turnorder = JSON.parse(Campaign().get("turnorder"));
//Aggiungere una nuova voce personalizzata alla fine dell'ordine di turno.
turnorder.push({
id: "-1",
pr: "15",
custom: "Turn Counter"
});
Campaign().set("turnorder", JSON.stringify(turnorder));
Giocatore/trice
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "giocatore/trice" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| _d20userid | ID utente — valido per tutto il sito. Ad esempio, la pagina utente del giocatore sul wiki è /User:ID, dove ID è lo stesso valore memorizzato in _d20userid. Solo lettura. | |
| nome visualizzato | "" | Il nome mostrato attualmente dal giocatore. È possibile modificarlo dalla pagina delle impostazioni dell'utente. Solo lettura. |
| online | non corretto | Solo lettura. |
| _lastpage | "" | L'ID della pagina dell'ultima pagina visualizzata dal giocatore in qualità di GM. Questa proprietà non viene aggiornata per i giocatori o i GM che si sono registrati come giocatori. Solo lettura. |
| macrobar | "" | Stringa delimitata da virgole delle macro presenti nella barra delle macro del giocatore. Solo lettura. |
| parlando come | "" | L'ID del giocatore o del personaggio che il giocatore ha selezionato dal menu a tendina "Come". Quando è impostato su una stringa vuota, il giocatore parla come se stesso. Quando è impostato su un personaggio, il valore è "personaggio|ID", dove ID è l'ID del personaggio. Quando il GM parla come un altro giocatore, il valore è "giocatore|ID", dove ID è l'ID del giocatore. |
| colore | #13B9F0 | Il colore del quadrato accanto al nome del giocatore, così come il colore delle sue misurazioni sulla mappa, i suoi cerchi ping, ecc. |
| mostra barra delle macro | non corretto | Se la barra macro del giocatore è visibile. |
Macro
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "macro" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| ID giocatore | L'ID del giocatore che ha creato questa macro. Solo lettura. | |
| nome | "" | Il nome della macro. |
| azione | "" | Il testo della macro. |
| visibile a | "" | Elenco separato da virgole degli ID dei giocatori che possono visualizzare la macro oltre al giocatore che l'ha creata.
Tutti i giocatorisono rappresentati dall'indicazione "tutti" nell'elenco. |
| istokenazione | non corretto | Questa macro è un'azione token che dovrebbe apparire quando vengono selezionati i token? |
Tabelle di tiro
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "tavolo pieghevole" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| nome | "nuovo tavolo" | |
| mostra giocatori | vero |
Articolo della tabella
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "elemento della tabella" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| _rollabletableid | "" | ID della tabella a cui appartiene questo articolo. Solo lettura. |
| avatar | "" | URL dell'immagine utilizzata per l'articolo della tabella. Si prega di consultare la nota relativa alle restrizioni su avatar e imgsrc riportata di seguito. |
| nome | "" | |
| peso | 1 | Peso dell'articolo della tabella rispetto agli altri articoli nella stessa tabella. In parole povere, un articolo con peso 3 ha tre volte più probabilità di essere selezionato quando si tira il dado rispetto a un articolo con peso 1. |
Personaggio
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "personaggio" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| avatar | "" | URL dell'immagine utilizzata per il personaggio. Si prega di consultare la nota relativa alle restrizioni su avatar e imgsrc riportata di seguito. |
| nome | "" | |
| biografia | "" | La biografia del personaggio. Si prega di consultare la nota sottostante relativa all'accesso ai campi Note, GMNotes e biografia. |
| Note GM | "" | Note sul personaggio visibili solo al GM. Si prega di consultare la nota sottostante relativa all'accesso ai campi Note, GMNotes e biografia. |
| archiviato | non corretto | |
| diari dei giocatori | "" | Elenco separato da virgole degli ID dei giocatori che possono visualizzare questo personaggio. Utilizzare "tutti" per dare a tutti i giocatori l'abilità di visualizzare.
Tutti i giocatorisono rappresentati dall'indicazione "tutti" nell'elenco. |
| controllato da | "" | Elenco separato da virgole degli ID dei giocatori che possono controllare e modificare questo personaggio. Utilizzare "tutti" per dare a tutti i giocatori l'abilità di apportare modifiche.
Tutti i giocatorisono rappresentati dall'indicazione "tutti" nell'elenco. |
| _defaulttoken | "" | Una stringa JSON contenente i dati relativi al segnalino di default del personaggio, se presente. Si prega di notare che si tratta di un "blob" simile a "bio" e "notes", pertanto è necessario passare una funzione di callback a get(). Solo lettura. |
Attributo
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "attributo" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| _characterid | "" | ID del personaggio a cui appartiene questo attributo. Solo lettura. Obbligatorio quando si utilizzacreateObj. |
| nome | "Senza titolo" | |
| attuale | "" | È possibile accedere al valore attuale dell'attributo nella chat e nelle macro utilizzando la sintassi@{Character Name|Attribute Name}o nelle abilità utilizzando la sintassi@{Attribute Name}. |
| massima | "" | È possibile accedere al valore massimo dell'attributo nella chat e nelle macro utilizzando la sintassi@{Character Name|Attribute Name|max}, oppure nelle abilità utilizzando la sintassi@{Attribute Name|max}. |
Importante: consultare la nota sottostante relativa all'utilizzo della scheda dei personaggi per informazioni su come i valori predefiniti della scheda dei personaggi influenzano l'uso degli attributi.
Abilità
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "abilità" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| _characterid | "" | Il personaggio a cui appartiene questa abilità. Solo lettura. Obbligatorio quando si utilizzacreateObj. |
| nome | "Abilità senza titolo" | |
| descrizione | "" | La descrizione non è visualizzata nell'interfaccia della scheda dei personaggi. |
| azione | "" | Il testo dell'abilità. |
| istokenazione | non corretto | Questa abilità è un'azione simbolica che dovrebbe attivarsi quando vengono selezionati i segnalini collegati al personaggio genitore? |
Materiale di gioco
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "materiale di gioco" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| avatar | "" | URL dell'immagine utilizzata per il materiale di gioco. Si prega di consultare la nota relativa alle restrizioni su avatar e imgsrc riportata di seguito. |
| nome | "Misterioso biglietto" | |
| note | "" | Contiene il testo del materiale di gioco. Si prega di consultare la nota sottostante relativa all'utilizzo di Notes e GMNotes. |
| Note GM | "" | Contiene il testo del materiale di gioco visibile solo al GM. Si prega di consultare la nota sottostante relativa all'utilizzo di Notes e GMNotes. |
| diari dei giocatori | "" | Elenco separato da virgole degli ID dei giocatori che possono visualizzare questo materiale di gioco. Utilizzare "all" per visualizzare a tutti i giocatori.
Tutti i giocatorisono rappresentati dall'indicazione "tutti" nell'elenco. |
| archiviato | falso | |
| controllato da | "" | Elenco separato da virgole degli ID dei giocatori che possono controllare e modificare questo materiale di gioco.
Tutti i giocatorisono rappresentati dall'indicazione "tutti" nell'elenco. |
Nota: L'API non ha accesso alla gerarchia delle cartelle. I materiali di gioco creati dall'API saranno collocati nella directory principale.
Ponte
Si prega di notare che sono disponibili metodi API di supporto per "pescare", "distribuire" o "mescolare" le carte dal mazzo. Si prega di consultareil post sul forum relativo all'aggiornamento dell'API del marzo 2018.
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | "" | identificativo del mazzo |
| _tipo | "ponte" | |
| nome | "" | nome del mazzo |
| _currentDeck | "" | un elenco delimitato da virgole delle carte attualmente presenti nel mazzo (comprese quelle che sono state giocate sul tavolo di gioco/nelle mani). Cambia quando il mazzo viene mescolato. |
| _currentIndex | -1 | l'indice attuale della nostra posizione nel mazzo, "quale carta verrà pescata successivamente?" |
| _currentCardShown | vero | mostrare la carta attualmente in cima al mazzo |
| mostra giocatori | vero | Mostrare il mazzo ai giocatori |
| playerscandraw | vero | I giocatori possono pescare le carte? |
| avatar | "" | il "retro" delle carte di questo mazzo |
| mostrato | non corretto | Mostra il mazzo sul tabellone (il mazzo è attualmente visibile?) |
| giocatori_che_hanno_visto_le_carte | vero | I giocatori possono vedere il numero di carte nelle mani degli altri giocatori? |
| giocatori_vedono_le_carte_del_avversario | non corretto | I giocatori possono vedere il fronte delle carte quando osservano le mani degli altri giocatori? |
| gm_seenumcards | vero | Il GM può vedere il numero di carte nella mano di ciascun giocatore? |
| gm_seefrontofcards | non corretto | Il GM può vedere il fronte delle carte quando controlla la mano di ciascun giocatore? |
| infinitecards | non corretto | Esiste un numero infinito di carte in questo mazzo? |
| _cardSequencer | -1 | Utilizzato internamente per far avanzare il mazzo quando si pescano le carte. |
| carte giocate | "faccia in su" | Come si utilizzano le carte di questo mazzo sul tavolo di gioco? "a faccia in su" o "a faccia in giù". |
| altezza predefinita | "" | Qual è l'altezza predefinita delle carte giocate sul tavolo di gioco? |
| larghezza predefinita | "" | |
| modalità scarto | "nessuno" | Che tipo di mazzo degli scarti presenta questo mazzo di carte? "none" = nessun mazzo degli scarti, "choosebacks" = consente ai giocatori di vedere il retro delle carte e sceglierne una, "choosefronts" = vedere il fronte e scegliere, "drawtop" = pescare la carta scartata più di recente, "drawbottom" = pescare la carta scartata più vecchia. |
| _discardPile | "" | Qual è l'attuale mazzo degli scarti per questo mazzo? Elenco di carte delimitato da virgole. Si tratta di carte che sono state rimosse dal gioco e che non verranno reinserite nel mazzo durante la mescolata fino a quando non verrà eseguito un richiamo. |
Carta
| Immobile | Valore predefinito | Note |
|---|---|---|
| nome | "" | Nome della carta |
| avatar | "" | Parte anteriore del biglietto |
| card_back | "" | Sovrascrivere l'immagine sul retro della carta |
| _deckid | "" | ID del mazzo |
| _tipo | "carta" | |
| _id | "" |
Mano
Si prega di notare che ogni giocatore dovrebbe avere solo UNA mano.
| Immobile | Valore predefinito | Note |
|---|---|---|
| mano corrente | "" | Elenco delle carte attualmente in mano, separate da virgola. Si prega di notare che questo non è più di sola lettura. Idealmente, dovrebbe essere regolato solo con le funzioni del mazzo di carte. |
| _tipo | mano | |
| _parentid | "" | ID del giocatore a cui appartiene la mano |
| _id | "" | |
| vista corrente | "bydeck" | Quando il giocatore apre la mano, la visualizzazione è "per mazzo" o "per carta"? |
Brano del Jukebox
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "jukeboxtrack" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| sta giocando | non corretto | Booleano utilizzato per determinare se il brano è in riproduzione o meno. Impostando questo valore su "true" e softstop su "false" si riproduce una traccia. |
| arresto graduale | non corretto | Booleano utilizzato per determinare se una traccia non in loop è stata riprodotta almeno una volta. È necessario impostare questo valore su "false" per garantire la riproduzione di un brano. |
| titolo | "" | L'etichetta visibile per il brano nella scheda jukebox. |
| volume | 30 | Il livello del volume della traccia. Si prega di notare che questo valore deve essere impostato su un numero intero (non una stringa), altrimenti si potrebbero verificare problemi di funzionalità. Valori compresi tra 0 e 100 (percentuale). |
| ripeti | non corretto | È opportuno che la traccia sia in loop? Impostare su vero se è così. |
Effetti speciali personalizzati
| Immobile | Valore predefinito | Note |
|---|---|---|
| _id | Un ID univoco per questo oggetto. Unico al mondo tra tutti gli oggetti presenti in questo gioco. Solo lettura. | |
| _tipo | "custfx" | Può essere utilizzato per identificare il tipo di oggetto o per effettuare una ricerca dell'oggetto. Solo lettura. |
| nome | "" | Il nome visibile per l'FX nell'elenco FX. |
| definizione | {} | Oggetto Javascript che descrive l'effetto speciale. |
Restrizioni relative alle proprietà imgsrc e avatar
Sebbene ora sia possibile modificare le proprietàimgsrceavatar, al fine di garantire la sicurezza di tutti gli utenti di Roll20, abbiamo applicato le seguenti restrizioni a tali proprietà:
- È necessario utilizzare un file immagine che sia stato caricato nella propria Libreria Roll20, non da un sito esterno (come Imgur) e non dal Marketplace Roll20. Inizierà con"https://s3.amazonaws.com/files.d20.io/images/"per le immagini caricate sul server principale o"https://s3.amazonaws.com/files.staging.d20.io/images/"per le immagini caricate sul server di sviluppo. È possibile visualizzare l'URL di origine di un'immagine utilizzando gli strumenti di sviluppo del browser.
- È necessario includere la stringa di query nell'URL, ad esempio"https://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png?12345678", non solo "https://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png".
- Per gli oggetti grafici (segnalini), è necessario utilizzare la dimensione "thumb" dell'immagine. Dovrebbe apparire come"https://s3.amazonaws.com/files.staging.d20.io/images/123456/thumb.png?12345678".
In futuro potremmo aggiungere uno strumento che consenta di caricare immagini specificamente destinate all'uso con script Mod (API), ma per ora si prega di utilizzare solo immagini caricate nella propria libreria. Si prega di notare che se si elimina un'immagine dalla propria libreria, essa verrà rimossa da tutti i giochi che utilizzano tale immagine, compresi i giochi che utilizzano gli script Mod (API).
Utilizzo dei campi Note, GMNote e Bio Asincrono
Per accedere ai campi "notes", "gmnotes" o "bio" su personaggi e materiali di gioco, è necessario passare una funzione di callback come secondo argomento alla funzione get(). Ecco un esempio:
var character = getObj("personaggio", "-JMGkBaMgMWiQdNDwjjS");
character.get("bio", function(bio) {
log(bio); //effettuare un'operazione con la biografia del personaggio qui.
});
È possibile impostare il valore di questi campi come di consueto. Si prega di notare che attualmente (al 09/05/2016) è presente un bug in questi campi asincroni, per cui impostarli passando valori a createObj non funziona correttamente, lasciando l'oggetto in uno stato anomalo. Si consiglia di impostare questi valori utilizzando .set solo fino a quando il problema non sarà risolto. Dettagli sul Forum. È stato inoltre riscontrato un bug (al 05/11/2016) per cui, nel tentativo di impostare entrambe le proprietà notes e gmnotes nella stessa chiamata set(), la seconda proprietà nella chiamata viene impostata in modo errato. Dettagli sul Forum.
Lavorare con le schede dei personaggi
La funzione Scheda dei personaggi influisce sull'utilizzo del tipo di oggetto Attributo, poiché le schede consentono di specificare un valore predefinito per ciascun attributo presente nella scheda. Tuttavia, se l'attributo è impostato sul valore predefinito, non esiste ancora un oggetto Attributo effettivo creato nel gioco per quel personaggio. Offriamo una funzione di comodità che nasconde questa complessità all'utente. Si consiglia di utilizzare questa funzione per ottenere il valore di un attributo in futuro, specialmente se si è a conoscenza che un gioco utilizza una scheda dei personaggi.
getAttrByName(id_carattere, nome_attributo, tipo_valore)
È sufficiente specificare l'ID del personaggio, ilnome(non l'ID) dell'attributo (ad esempio "PF" o "Str") e quindi se si desidera il valore "attuale" o "massimo" per value_type. Ecco un esempio:
var personaggio = getObj("personaggio", "-JMGkBaMgMWiQdNDwjjS");
getAttrByName(personaggio.id, "str"); // il valore attuale di str, ad esempio "12"
getAttrByName(personaggio.id, "str", "max"); //il valore massimo di str, ad esempio "[[floor(@{STR}/2-5)]]"
Si prega di notare che i campi con valori calcolati automaticamente restituiranno la formula anziché il risultato del valore. È quindi possibile trasmettere tale formula a sendChat() per utilizzare il motore dei dadi e ottenere automaticamente il risultato.
Assicurati di consultare anche la Scheda Personaggio per ulteriori informazioni su come la scheda dei personaggi interagisce con l'API.
getAttrByNamerecupereràsoloil valore dell'attributo, non l'oggetto attributo stesso. Se si desidera fare riferimento a proprietà dell'attributo diverse da "current" o "max", o se si desidera modificare le proprietà dell'attributo, è necessario utilizzare una delle altre funzioni sopra indicate, comefindObjs.
Nel caso in cui l'attributo richiesto non esista,getAttrByName()restituiràundefined.
Creazione di oggetti
creaOggetto(tipo, attributo)
Nota: attualmente è possibile creare oggetti "grafici", "testo", "percorso", "personaggio", "abilità", "attributo", "materiale di gioco", "tabella a scorrimento", "voce di tabella" e "macro".
È possibile creare un nuovo oggetto nel gioco utilizzando la funzionecreateObj. È necessario specificare il tipo dell'oggetto (una delle proprietà_typevalide dall'elenco degli oggetti sopra riportato), nonché un oggettoattributocontenente un elenco di proprietà per l'oggetto. Si prega di notare che se l'oggetto ha un oggetto padre (ad esempio, gli attributi e le abilità appartengono ai personaggi, la grafica, i testi e i percorsi appartengono alle pagine, ecc.), è necessario inserire l'ID del padre nell'elenco delle proprietà (ad esempio, è necessario includere la proprietàcharacteridquando si crea un attributo). Si prega inoltre di notare che, anche durante la creazione di nuovi oggetti, non è possibile impostare proprietà di sola lettura, poiché queste verranno automaticamente impostate sul loro valore predefinito. L'unica eccezione a questa regola si verifica quando si crea un percorso: in tal caso, è necessario includere la proprietà "path", che tuttavia non può essere modificata una volta creato il percorso.
createObjrestituirà il nuovo oggetto, consentendo di continuare a lavorarci.
//Creare un nuovo attributo Forza su tutti i personaggi aggiunti al gioco.
on("add:personaggio", function(obj) {
createObj("attributo", {
name: "Strength",
current: 0,
max: 30,
characterid: obj.id
});
});
Eliminazione di oggetti
rimuovi oggetto()
Nota: attualmente è possibile eliminare oggetti "grafici", "testo", "percorso", "personaggio", "abilità", "attributo", "materiale di gioco", "tabella scorrevole", "voce di tabella" e "macro".
È possibile eliminare gli oggetti di gioco esistenti utilizzando la funzione.remove(). La funzione .remove() è applicabile a tutti gli oggetti che è possibile creare con la funzione createObj. È necessario richiamare la funzione direttamente sull'oggetto. Ad esempio,mycharacter.remove();.
Oggetti globali
Esistono diversi oggetti disponibili a livello globale in qualsiasi punto dello script.
Campagna() (funzione)
Una funzione che restituisce l'oggettoCampagna. Poiché esiste una sola campagna, questo globale fa sempre riferimento all'unica campagna presente nel gioco. Utile per verificare se un oggetto si trova nella pagina attiva utilizzandoCampaign().get("playerpageid").
stato/Provincia
La variabiledi statoè un oggetto nell'ambito globale accessibile a tutti gli script in esecuzione in un gioco. È possibile accedere all'oggettostatoda qualsiasi funzione o callback in qualsiasi momento semplicemente utilizzando la variabile globale denominatastato. Inoltre, l'oggettodi statoviene mantenuto tra le esecuzioni della sandbox, pertanto è possibile utilizzarlo per memorizzare le informazioni che si desidera avere nelle future esecuzioni dello script.
Nota:si consiglia di utilizzare l'oggetto stato per memorizzare le informazioni necessarie solo all'API, poiché non vengono inviate ai computer dei giocatori e non aumentano le dimensioni del file di gioco. Si prega di memorizzare i valori necessari nel gioco nelle proprietà degli oggetti Roll20.
Tipi memorizzabili
L'oggettostatoè in grado di conservare solo tipi di dati semplici, come supportato dal standard JSON .
| Tipo | Esempi | Descriptionq |
|---|---|---|
| Booleano |
verofalso
|
Il valoreveroofalso. |
| Numero |
123,5101,23e20
|
Qualsiasi formato numerico supportato da Javascript. Virgola mobile o intero. |
| Stringa |
"Ciao Fantasia" "Oh, e Mondo"
|
Una stringa di testo standard. |
| Matrice |
[1, 2, 3, 4][ 'A','B','C'][1, 2, ['bob', 3], 10, 2.5]
|
Una raccolta ordinata di qualsiasi tipo, inclusi altri array. |
| Oggetto | { key: 1, value: 'roll20' } |
Un semplice oggetto chiave/valore con chiavi stringa e qualsiasi tipo come valore, inclusi altri oggetti. |
Attenzione:sebbene le funzioni sembrino funzionare quando vengono memorizzate nello stato iniziale, esse scompariranno la prima volta chelo statoviene ripristinato dalla persistenza, ad esempio al riavvio della sandbox.
-
Nota:questo include gli oggetti Roll20 ottenuti dagli eventi o dalle funzioni
findObjs(),getObj(),filterObjs(),createObj(), ecc.
Promemoria importanti
L'oggettodi statoè condiviso tra tutti gli script in una sandbox. Per evitare di danneggiare altri script, è importante seguire alcune semplici linee guida:
-
Non assegnare direttamente all'oggetto
dello statoroot.
stato = { break: 'all the things' }; // Si prega di non procedere in questo modo.
-
Si prega di evitare l'uso di variabili locali denominate "state" nei propri script. l'uso di variabili locali denominate
"state" nei propri script. Sebbene questa soluzione sia efficace, potrebbe creare confusione agli utenti futuri dei vostri script e causare problemi se il codice viene modificato in modo inappropriato.
funzione turn(){
var state = Campaign().get('turnorder'); // Pratica scorretta, da evitare!
// ...
}
-
Si prega di posizionare sempre le proprietà collocate le vostre proprietà sotto almeno una proprietà namespace. Assicurarsi di utilizzare una proprietà dello spazio dei nomi sufficientemente descrittiva. Si prega di evitare nomi come
scriptoimpostazioni. Si consiglia di utilizzare il nome del proprio modulo o il proprio nome o nickname.
if( ! state.MyModuleNamespace ) {
state.MyModuleNamespace = { module: 'my module', ok: 'this is fine!', count: 0 };
}
state.MyModuleNamespace.count++;
Esempio di utilizzo
Questo è un esempio funzionante che utilizza correttamente l'oggettostato.
on('ready',function() {
"use strict";
// Verifica se la proprietà namespaced esiste, creandola se non è presente
if( ! state.MyModuleNS ) {
state.MyModuleNS = {
version: 1.0,
config: {
color1: '#ff0000',
color2: '#0000ff'
},
count: 0
};
}
// Utilizzo delle proprietà dello stato per configurare un messaggio nella chat.
sendChat(
'Modulo di prova',
'<span style="color: '+state.MyModuleNS.config.color1+';">'+
'Prova di stato'+
'</span> '+
'<span style="color: '+state.MyModuleNS.config.color2+';">'+
'Script v'+state.MyModuleNS.version+' avviato '+(++state.MyModuleNS.count)+' volte!'+
'</span>'
);
});
Ricerca/Filtraggio di oggetti
L'API offre diverse funzioni di supporto che possono essere impiegate per individuare gli oggetti.
getObj(tipo, id)
Questa funzione recupera un singolo oggetto se vengono passati il tipo dell'oggetto e l'id. Si consiglia di utilizzare questa funzione piuttosto che le altre funzioni di ricerca, quando possibile, poiché è l'unica che non richiede l'iterazione dell'intera collezione di oggetti.
on("change:graphic:represents", function(obj) {
if(obj.get("represents") != "") {
var personaggio = getObj("personaggio", obj.get("represents"));
}
});
trovaOggetti(attributi)
Passare a questa funzione un elenco di attributi e restituirà tutti gli oggetti corrispondenti sotto forma di array. Si prega di notare che questa funzione opera su tutti gli oggetti di tutti i tipi in tutte le pagine, pertanto si consiglia di includere almeno un filtro per _type e _pageid se si lavora con oggetti da tavolo.
var currentPageGraphics = findObjs({
_paginaid: Campaign().get("playerpageid"),
_type: "graphic",
});
_.each(currentPageGraphics, function(obj) {
//Eseguire un'operazione con obj, che si trova nella pagina corrente ed è un elemento grafico.
});
È inoltre possibile passare un secondo argomento facoltativo che contiene un oggetto con un elenco di opzioni, tra cui:
- caseInsensitive(vero/falso): se vero, le proprietà delle stringhe saranno confrontate senza considerare le maiuscole e le minuscole della stringa.
var targetTokens = findObjs({
name: "target"
}, {caseInsensitive: true});
//Restituisce tutti i segnalini con nome "target", "Target", "TARGET", ecc.
filtraObj (richiamo)
Eseguirà la funzione di callback fornita su ciascun oggetto e, se la callback restituisce true, l'oggetto sarà incluso nell'array dei risultati. Attualmente, si sconsiglia di utilizzare filterObjs() per la maggior parte degli scopi: poiché findObjs() dispone di un'indicizzazione integrata che garantisce una maggiore velocità di esecuzione, è quasi sempre preferibile utilizzare findObjs() per ottenere prima gli oggetti del tipo desiderato, quindi filtrarli utilizzando il metodo nativo .filter() per gli array.
var results = filterObjs(function(obj) {
if(obj.get("left") < 200 && obj.get("top") < 200) return true;
else return false;
});
//Results è un array di tutti gli oggetti che si trovano nell'angolo in alto a sinistra del tavolo di gioco.
getAllObjs()
Restituisce un array di tutti gli oggetti presenti nel gioco (di tutti i tipi). Equivalente a chiamare filterObjs e restituire semplicementetrueper ogni oggetto.
getAttrByName(id_carattere, nome_attributo, tipo_valore)
Ottiene il valore di un attributo, utilizzando il valore predefinito dalla scheda dei personaggi se l'attributo non è presente. value_typeè un parametro facoltativo che può essere utilizzato per specificare "current" o "max".
getAttrByNamerecupereràsoloil valore dell'attributo, non l'oggetto attributo stesso. Se si desidera fare riferimento a proprietà dell'attributo diverse da "current" o "max", o se si desidera modificare le proprietà dell'attributo, è necessario utilizzare una delle altre funzioni sopra indicate, comefindObjs.
Per le sezioni ripetute, è possibile utilizzare il formatorepeating_section_$n_attribute, dovenè il numero della riga ripetuta (a partire da zero). Ad esempio,repeating_spells_$2_namerestituirà il valore dinamedalla terza riga direpeating_spells.
È possibile ottenere un comportamento equivalente agetAttrByName conquanto segue:
// current e max dipendono completamente dall'attributo e dal sistema di gioco
// in questione; non esiste una funzione disponibile per determinarli automaticamente
function myGetAttrByName(character_id,
attribute_name,
attribute_default_current,
attribute_default_max,
value_type) {
attribute_default_current = attribute_default_current || '';
attribute_default_max = attribute_default_max || '';
value_type = value_type || 'current';
var attributo = findObjs({
type: 'attribute',
characterid: character_id,
name: attribute_name
}, {caseInsensitive: true}) [0];
if (!attributo) {
attributo = createObj('attributo', {
characterid: character_id,
name: attributo_name,
current: attributo_default_current,
max: attributo_default_max
});
}
if (value_type == 'max') {
return attributo.get('max');
} else {
return attribute.get('current');
}
}