API: Oggetti

Ci sono diversi tipi di oggetti che vengono utilizzati nell'API di Roll20. Ecco un elenco rapido di ognuno, cos'è e quali proprietà contiene (insieme ai valori di default). Come regola generale, le proprietà che iniziano con un trattino basso (_) sono solo lettura e non possono essere modificate. È necessario accedere alle proprietà degli oggetti utilizzando obj.get("proprietà") e impostare nuovi valori utilizzando obj.set("proprietà", nuovovalore) o obj.set({property: newvalue, property2: newvalue2}).

Nota: La proprietà id di un oggetto è un ID univoco a livello globale: nessun oggetto dovrebbe averne uno uguale, nemmeno tra diversi tipi di oggetti. Inoltre, dato che l'id di un oggetto viene spesso richiamato e non cambia mai, è disponibile una scorciatoia in cui puoi accedervi utilizzando obj.id invece di obj.get("_id") se lo desideri (entrambi funzionano).


Sentiero

Proprietà Valore predefinito Note
_id  

Un ID unico per questo oggetto. Globalmente unico per tutti gli oggetti
in questo gioco. Sola lettura.

_type "path" Può essere usato per identificare il tipo di oggetto o cercare l'oggetto
. Sola lettura.
_pageid    ID della pagina in cui si trova l'oggetto. Sola lettura.
_percorso    Una stringa JSON che descrive le linee nel percorso. Solo in lettura, tranne quando si crea un nuovo percorso. Vedere la sezione sui Percorsi per ulteriori informazioni.
riempimento "trasparente" Colore di riempimento. Utilizzare la stringa "trasparente" o un colore esadecimale come una stringa, ad esempio "#000000"
contorno "#000000" Colore del contorno (bordo).
rotazione 0 Rotazione (in gradi).
strato "" Strato corrente, uno tra "gmlayer", "oggetti", "mappa", o "muri". Lo strato dei muri viene utilizzato per l'illuminazione dinamica e i percorsi nello strato dei muri bloccano la luce.
spessore_tratto 5  
larghezza 0  
altezza 0  
in alto 0 Coordinate Y per il centro del percorso
sinistra 0 Coordinata X per il centro del percorso
scalaX 1  
scalaY 1  
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, questo viene automaticamente incluso nell'elenco.

Tutti i giocatoriè rappresentato dall'avere 'tutti' nell'elenco.

barrieraTipo "wall"

Dynamic Lighting Barrier type options include "wall", "oneWay", and "transparent"

oneWayReversed false

boolean

Per ulteriori informazioni sul formato dei dati _path, vedere la sezione sui percorsi.

 


Finestra

Nota: Finestra e Porta utilizzano un asse invertito rispetto agli altri tipi di oggetti. Ad esempio, una variabile top che sarebbe 100 per un altro oggetto è y -100 per finestra o porta.

Proprietà Valore predefinito Note
_id   Un ID univoco per questo oggetto. Univoco globalmente tra tutti gli oggetti di questo gioco. Solo lettura.
_type "finestra" Solo lettura.
colore   Un colore esadecimale del percorso.
x 0 Coordina centrale della porta sull'asse x.
y 0 Coordina centrale della porta sull'asse y.
Aperto falso Determina se un giocatore può attraversare questa finestra.
Chiuso a chiave falso Impedisce ai giocatori di poter interagire con la finestra.
Percorso   Rappresentato da due manici (manico0 e manico1) ciascuno 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: La finestra e la porta utilizzano un asse invertito rispetto ad altri tipi di oggetti. Ad esempio, una variabile top che sarebbe 100 per un altro oggetto è y -100 per finestra o porta.

Proprietà

Valore predefinito

Note

_id

 

Un ID univoco per questo oggetto. Globalmente unico tra tutti gli oggetti in questo gioco. Sola lettura.

_type

“door”

Sola lettura.

colore

 

Un colore esadecimale del percorso.

x

0

Coordinate al centro della porta sull'asse x.

y

0

Coordinate al centro della porta sull'asse y.

isOpen

false

Determina se un giocatore può attraversare questa porta.

isLocked

false

Impedisce ai giocatori di interagire con la porta.

isSecret

false

Rimuove un'icona della porta dalla vista del giocatore e funziona come una barriera.

path

 

Rappresentata come due maniglie (handle0 e handle1), ognuna con coordinate x e y.


Testo

Proprietà Valore predefinito Note
_id   Un ID univoco per questo oggetto. Unico in tutto il gioco tra tutti gli oggetti. Solo lettura.
_type "text" Può essere utilizzato per identificare il tipo di oggetto o cercare l'oggetto. Solo lettura.
_pageid   ID della pagina in cui si trova l'oggetto. Solo lettura.
top 0  
left 0  
larghezza 0  
altezza 0  
testo ""  
dimensione del carattere 16 Per ottenere risultati migliori, si attenga alle dimensioni preimpostate nel menu di editing: 8, 10, 12, 14, 16, 18, 20, 22, 26, 32, 40, 56, 72, 100, 200, 300.
rotazione 0  
colore "rgb(0, 0, 0)"  
font_family "Arial" Se questo non è impostato, quando in seguito modificherà il valore della proprietà "text", il font_size si ridurrà a 8. Valori possibili (non importa la maiuscola): "Arial", "Patrick Hand", "Contrail One", "Shadows Into Light" e "Candal". Specificando un nome non valido viene utilizzato un font senza nome, con spaziature fisse.
livello "" "gmlayer", "oggetti", "mappa" o "muri".
controllato da "" Elenco separato da virgole di ID dei giocatori che possono controllare il testo. I giocatori che controllano possono eliminare il testo. Se il testo è stato creato da un giocatore, quel giocatore è automaticamente incluso nell'elenco.

Tutti i giocatori è rappresentato avendo 'all' nell'elenco.


Grafica (gettone/mappa/scheda/ecc.)

Proprietà Valore predefinito Note
_id   Un ID univoco per questo oggetto. Unico a livello globale per tutti gli oggetti di questo gioco. In sola lettura.
Tipo "grafico" Può essere utilizzato per identificare il tipo di oggetto o per cercare l'oggetto. In sola lettura.
_sottotipo "token" Può essere "token" (per i token e le mappe) o "card" (per le carte). In sola lettura.
_cardid   Imposta un ID se il grafico è una carta. In sola lettura.
_paginaid   ID della pagina in cui si trova l'oggetto. In sola lettura.
imgsrc   L'URL dell'immagine del grafico. Veda la nota sulle restrizioni di imgsrc e avatar qui sotto.
bar1_link   Set to an ID if Bar 1 is linked to a character.
bar2_link    
bar3_link    
represents   ID of the character this token represents.
left 0 Number of pixels from the left edge of the map to the center of the graphic.
top 0 Number of pixels from the top edge of the map to the center of the graphic.
larghezza 0 Larghezza del grafico, in pixel.
altezza 0 Altezza del grafico, in pixel.
rotazione 0 L'orientamento del token in gradi.
strato "" "gmlayer", "oggetti", "mappa" o "muri".
isdrawing falso Questa proprietà è cambiata dal menu contestuale Avanzate.
flipv false Ribaltamento verticale.
fliph false Ribaltamento orizzontale.
nome "" Il nome del token.
gmnotes "" Note sul token visibili solo al GM.
controllato da "" Elenco delimitato da virgole degli ID dei giocatori che possono controllare il grafico. I giocatori che controllano possono eliminare la grafica. Se il grafico è stato creato da un giocatore, questo viene automaticamente incluso nell'elenco.

Tutti i giocatoriè rappresentato dall'avere 'tutti' nell'elenco.

bar1_valore "" Valore corrente di Bar 1. Potrebbe essere un numero o del testo.
bar2_value ""  
bar3_value ""  
bar1_max "" Valore massimo di Bar 1. Se value e max sono entrambi impostati, una barra può essere visualizzata sopra il token mostrando la percentuale di Bar 1.
bar2_max ""  
bar3_max ""  
raggio_aura1 "" Raggio dell'aura, utilizzando le unità impostate nelle impostazioni della pagina. Può essere un numero intero o un numero decimale. Impostato come stringa vuota per cancellare l'aura.
raggio_aura2 ""  
colore_aura1 "#FFFF99" Un colore esadecimale o l'aura.
colore_aura2 "#59E594"  
quadrato_aura1 falso È l'aura un cerchio o un quadrato?
aura2_square false  
tint_color "trasparente" Colore esadecimale o "trasparente". Colorerà il colore della grafica.
statusmarkers "" Elenco separato da virgola dei segnalini di stato attivi al momento. Consulta le note sottostanti per ulteriori informazioni.
token_markers "" Un array JSON rappresentante una stringa con un oggetto per ogni indicatore di token attualmente nel gioco:. Puoi trovare un esempio qui sotto.
mostranome falso Se viene mostrata la targhetta del nome del token.
mostraplayers_nome falso Mostra la targhetta a tutti i giocatori.
mostraplayers_barra1 falso Mostra la Barra 1 a tutti i giocatori.
showplayers_bar2 falso  
barra_dei_giocatori3 falso  
showplayers_aura1 falso Mostri l'Aura 1 a tutti i giocatori.
showplayers_aura2 falso  
nome_del_giocatore vero Consenti ai giocatori controllanti di modificare il nome del token. Mostra anche il nome del giocatore controllante, anche se showplayers_name è falso.
playersedit_bar1 true Consenti ai giocatori controllanti di modificare la Barra 1 del token. Mostra anche la Barra 1 ai giocatori controllanti, anche se showplayers_bar1 è falso.
playersedit_bar2 true  
playersedit_bar3 true  
playersedit_aura1 true Consenti ai giocatori che controllano di modificare l'Aura 1 del token. Mostra anche l'Aura 1 ai giocatori che controllano, anche se showplayers_aura1 è falso.
playersedit_aura2 true  
light_radius "" Raggio di illuminazione dinamica.
light_dimradius "" Inizio raggio di luce fioca. Se light_dimradius è una stringa vuota, il token emetterà luce brillante fino alla distanza light_radius. Se light_dimradius ha un valore, il token emetterà luce brillante fino al valore light_dimradius, e luce attenuata da lì fino al valore light_radius.
light_otherplayers falso Mostra la luce del token a tutti i giocatori.
light_hassight falso La luce ha "vista" per i giocatori che la controllano ai fini dell'impostazione "Enforce Line of Sight".
light_angle "360" Angolo (in gradi) dell'angolo della luce. Ad esempio, "180" significa che la luce si mostrerà solo per la "metà" anteriore del "campo visivo".
luce_losangolo "360" Angolo (in gradi) del campo visivo del grafico (supponendo che light_hassight sia impostato su true)
lastmove "" L'ultima mossa del gettone. Si tratta di un elenco di coordinate delimitato da virgole. Per esempio, "300,400" significa che il token ha iniziato la sua ultima mossa a sinistra=300, in alto=400. Si presume sempre che i valori attuali superiore + sinistro del token siano il "punto finale" dell'ultima mossa. I punti di passaggio sono indicati da più set di coordinate. Ad esempio, "300,400,350,450,400,500" indicherebbe che il token è partito con left=300, top=400, quindi ha impostato un punto di passaggio con left=350, top=450, un altro punto di passaggio con left=400, top=500 e poi ha concluso il movimento alle sue coordinate attuali (top + left).
light_multiplier "1" Moltiplicatore sull'efficacia delle fonti di luce. Un moltiplicatore di due permetterebbe al token di vedere il doppio rispetto a un token con un moltiplicatore di uno, con la stessa fonte di luce.
adv_fow_view_distance "" Il raggio attorno a una pedina in cui viene rivelata la Nebbia di Guerra Avanzata.
moltiplicatore_di_sensibilità_alla_luce 100 Moltiplicatore dell'efficacia delle sorgenti luminose. Un moltiplicatore di 200 permetterebbe al token di vedere due volte più lontano di un token con un moltiplicatore di 100, con la stessa fonte di luce.
effetto_visione_notturna
  Modifica l'effetto di visione notturna. Altre opzioni includono "Oscurante" e "Notturno".
posizione_bar   Regola la posizione delle barre dei token. Le opzioni includono ’sovrapposizione_superiore’, ‘sovrapposizione_inferiore’, ‘inferiore’
barra_compatta
  Regola se la barra è compatta o no. Un'altra opzione è compatta.
blocco_spostamento falso Un'opzione per bloccare una grafica in posizione. Valore booleano vero o falso

Indicatori per segnalini Esempio

{
          "id":59, // l'id del database per il
          "name":"Bane", // il nome (non univoco) del marcatore
          "tag":"Bane::59", // come il token è effettivamente indicato
          // questo includerà l'id per i marcatore personalizzati, ma non
          // per i marcatore predefiniti.
          "url":"https://s3.amazonaws.com/files.d20.io/images/59/yFnKXmhLTtbMtaq-Did1Yg/icon.png?1575153187"
// ^l'URL dell'immagine del segnalino del token }

Note Importanti su Personaggi e Token Collegati

Nota che per i token collegati ai Personaggi, il campocontrolledby del token viene sovrascritto dal campocontrolledby del Personaggio.

Per le barre di token (ad esempiobar1_valueebar1_max) in cui il token è collegato ad un Attributo (ad esempio è impostatobar1_link), l'impostazione di un valore alla barra aggiornerà automaticamente anche i valoriattualie/omaxdell'Attributo sottostante, in modo da non doverli impostare entrambi manualmente.

Inoltre, quando l'Attributo (o la barra dei token) viene modificato nel gioco, sentirà un eventochange:attribute(e specifico per le proprietà, ad esempiochange:attribute:current), seguito da un eventochange:graphic(echange:graphic:bar1_value). Puoi scegliere di rispondere a uno qualsiasi degli eventi, ma i valori della barra sottostante non saranno ancora aggiornati quando l'evento dell'attributo viene attivato, poiché viene innescato per primo.

Note importanti sugli indicatori di stato

A partire dal 6 agosto 2013, il modo in cui vengono gestiti gli indicatori di stato sui token è cambiato. La proprietà "statusmarkers" dell'oggetto Grafico è ora un elenco separato da virgole di tutti i colori/icone degli indicatori di stato che devono essere attivi sul token. Il formato è il seguente:

//Separato da virgole (usa join per creare o split per convertire in array). 
//Se un'icona o un colore di stato è seguito da un simbolo "@", il numero dopo
//"@" verrà visualizzato come badge sull'icona statusmarkers = "rosso,blu,cranio,morto,marrone@2,verde@6"

Sebbene sia possibile accedere direttamente alla proprietàstatusmarkers, per mantenere la retrocompatibilità con gli script esistenti e per fornire un modo semplice per lavorare con i marcatori di stato senza dover scrivere codice per gestire la suddivisione e l'analisi della stringa, forniamo una serie di proprietà "virtuali" sull'oggetto che può impostare/ottenere per lavorare con i marcatori di stato. Ogni indicatore di stato ha una proprietà "status_<markername>". Ad esempio:

obj.get("status_red"); //restituirà false se il marcatore non è attivo, true se lo è, e una stringa (ad esempio "2" o "5") se c'è attualmente un badge impostato sul marcatore
obj.get('status_bluemarker'); //è ancora supportato per la compatibilità all'indietro ed è equivalente a fare obj.get("status_blue");
obj.set("status_red", false); //rimuoverebbe il marcatore
obj.set("status_skull", "2"); //imposterebbe un badge di "2" sull'icona del teschio, e lo aggiungerebbe al token se non è già attivo.

Si noti che queste proprietà virtuali non hanno eventi, quindi deve utilizzarechange:graphic:statusmarkersper ascoltare le modifiche ai marcatori di stato di un token, e per esempiochange:graphic:status_redNON è un evento valido e non si attiverà mai.

L'elenco completo dei segnalini di stato disponibili (nello stesso ordine in cui appaiono nel pannello dei segnalini):

"rosso", "blu", "verde", "marrone", "viola", "rosa", "giallo", "morto", "teschio", "asleep", "semicompleto", "nebbia", "interdizione", "lumaca", "fulmine-elica", "chiave-inglese", "cuore-incatenato", "fulmine-chimico", "zona-morte", "bevimi", "conto-fisso", "ninjamask", "orologio", "rete-da-pesca", "overdrive", "forte", "pugno", "candado", "tre-foglie", "ala-soffice", "picchiato", "pneumatico", "frecce", "aura", "mal-di-schiena", "bandiera-nera", "occhio-sanguinante", "scudo-mitragliatore", "cuore-rotto", "ragnatela", "scudo-rotto", "bandiera-volante", "radioattivo", "trofeo", "teschio-rotto", "sfera-gelata", "bomba-rotolante", "torre-bianca", "prende", "urla", "granata", "mitragliatore", "tutto-per-uno", "vestitto-angelo", "bersaglio-di-tiro-con-larco"

Pagina

Proprietà Valore predefinito Note
_id   Un ID univoco per questo oggetto. Univoco a livello globale per tutti gli oggetti in questo gioco. Sola lettura.
_type "pagina" Può essere utilizzato per identificare il tipo di oggetto o cercare l'oggetto. Solo lettura.
_zorder "" Elenco delimitato da virgola di ID che specifica l'ordinamento degli oggetti sulla pagina. toFront e toBack (e i relativi elementi di menu contestuale) possono riordinare questa lista. Solo lettura.
name "" Titolo della pagina.
showgrid true Mostra la griglia sulla mappa.
mostra l'oscurità falso Mostra la nebbia di guerra sulla mappa.
showlighting falso Utilizzi un'illuminazione dinamica.
larghezza 25 Larghezza in unità.
altezza 25 Altezza in unità.
incremento di scatto 1 Dimensione di uno spazio griglia in unità.
opacità_griglia 0.5 Opacità delle linee di griglia.
opacità_nebbia 0.35 Opacità della nebbia per il GM.
colore_sfondo "#FFFFFF" Colore esadecimale dello sfondo della mappa.
colore_griglia "#C0C0C0" Colore esadecimale delle linee della griglia.
grid_type "square" Uno tra "square", "hex" o "hexr". (hex corrisponde a Hex(V) e hexr corrisponde a Hex(H))
scale_number 5 La distanza di un'unità.
scale_units "piedi" Il tipo di unità da utilizzare per la scala.
gridlabels false Mostra le etichette della griglia per la griglia esagonale.
diagonaltype "foure" Uno tra "foure", "pitagorico" (euclideo), "threefive" o "manhattan".
archiviato false Se la pagina è stata archiviata.
goccia illuminata falso Aggiorna l'Illuminazione dinamica solo quando un oggetto viene lasciato cadere.
lightenforcelos false Rispetta il campo visivo per gli oggetti.
lightrestrictmove false Non consentire agli oggetti che hanno visibilità di attraversare pareti dinamiche dell'Illuminazione Dinamica.
lightglobalillum false Se vero, ovunque un token può "vederlo", si assume che ci sia luce intensa presente.
jukeboxtrigger   Controlla la riproduzione della pagina durante il caricamento. Opzioni includono ‘nonestopall’ o l'id-della-traccia

Campagna

Proprietà Valore predefinito Note
_id "radice" Un ID univoco per questo oggetto. Globalmente unico tra tutti gli oggetti in questo gioco. Sola lettura.
_type "campagna" Può essere utilizzato per identificare il tipo di oggetto o cercare l'oggetto — tuttavia, nota che c'è solo un oggetto Campagna, e può essere accessato tramite Campaign(). In sola lettura.
ordine di rotazione "" Una stringa JSON dell'ordine di turno. Vedi sotto.
pagina dell'iniziativa falso ID della pagina utilizzata per il tracker quando la finestra dell'ordine dei turni è aperta. Quando è impostato sufalse, la finestra dell'ordine di turno si chiude.
playerpageid falso ID della pagina a cui è impostato il segnalibro del giocatore. I giocatori vedono questa pagina per impostazione predefinita, a meno che non sia sovrascritta da pagine specifiche dei giocatori.
paginespecifichegiocatori falso Un oggetto (NON UNA STRINGA JSON) nel formato: {"player1_id": "id_pagina", "player2_id": "id_pagina" ... } Qualsiasi giocatore impostato su una pagina in questo oggetto sovrascriverà playerpageid.
_cartellodelgiornale "" Una stringa JSON che contiene i dati sulla struttura della cartella del gioco. Sola lettura.
_cartellone "" Una stringa JSON che contiene i dati sulla struttura della playlist del jukebox del gioco. Sola lettura.

 Ordine di Turno

L'ordine di turno è una stringa JSON che rappresenta l'elenco dell'ordine di turno corrente. È un array di oggetti. Attualmente, l'ordine di turno può contenere solo oggetti da una pagina alla volta -- l'ID della pagina corrente per l'ordine di turno è l'attributo "initiativepage". Assicurati di tenerli sincronizzati entrambi o potresti ottenere risultati strani.

Per lavorare con l'ordine di turno, vorrai usareJSON.parse()per ottenere un oggetto che rappresenta lo stato corrente dell'ordine di turno (NOTA: Controlla che non sia una stringa vuota""prima...se lo è, inizializzalo tu stesso con un array vuoto). Ecco un esempio di oggetto ordine di turno:

[
    {
     "id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", //L'ID dell'oggetto Grafico. Se impostato, l'elenco dell'ordine di turno estrarrà automaticamente il nome e l'icona dell'elenco in base alla grafica sul tavolo da gioco.
     "pr":"0", //Il valore corrente dell'oggetto nell'elenco. Può essere un numero o un testo.
     "custom":"" //Titolo personalizzato per l'oggetto. Verrà ignorato se l'ID è impostato su un valore diverso da "-1".
    },
    {
     "id":"-1", //Per gli oggetti personalizzati, l'ID DEVE essere impostato su "-1" (nota che è una STRINGA non un NUMERO.
     "pr":"12",
     "custom":"Test Custom" //Il nome da visualizzare per gli oggetti personalizzati.
    }
]

Per modificare l'ordine di turno, modifica l'oggetto di ordine di turno corrente e poi utilizzaJSON.stringify()per cambiare l'attributo sulla Campagna. Nota che l'ordinamento dell'ordine di turno nell'elenco è lo stesso dell'ordine dell'array, quindi ad esempiopush()aggiunge un elemento alla fine dell'elenco,unshift()aggiunge all'inizio, ecc.

var turnorder;
if(Campaign().get("turnorder") == "") turnorder = []; //NOTE: We check to make sure that the turnorder isn't just an empty string first. If it is treat it like an empty array.
else turnorder = JSON.parse(Campaign().get("turnorder"));

//Add a new custom entry to the end of the turn order.
turnorder.push({
    id: "-1",
    pr: "15",
    custom: "Turn Counter"
});
Campaign().set("turnorder", JSON.stringify(turnorder));
 

Player

Proprietà Valore predefinito Note
_id   A unique ID for this object. Globally unique across all objects in this game. Read-only.
_type Player Può essere utilizzato per identificare il tipo di oggetto o cercare l'oggetto. Sola lettura.
_d20userid   ID utente - su tutto il sito. Ad esempio, la pagina utente del giocatore nel wiki è /Utente:ID, dove ID è lo stesso valore memorizzato in _d20userid. Sola lettura.
_displayname "" Il nome visualizzato corrente del giocatore. Può essere modificato dalla pagina impostazioni dell'utente. Sola lettura.
_online falso Sola lettura.
_lastpage "" L'ID della pagina dell'ultima pagina visualizzata dal giocatore come GM. Questa funzione non viene aggiornata per i giocatori o i GM che si sono uniti come giocatori. Sola lettura.
_macrobar "" Elenco di macro separate da virgola nella barra delle macro del giocatore. Sola lettura.
parlando come "" L'ID del giocatore o del personaggio che il giocatore ha selezionato dal menu a tendina "Come". Quando è impostato sulla stringa vuota, il giocatore parla come se stesso. Quando è impostato su un carattere, il valore è "carattere|ID", dove ID è l'ID del carattere. Quando il GM parla come un altro giocatore, il valore è "player|ID", dove ID è l'ID del giocatore.
colore "#13B9F0" Il colore del quadrato accanto al nome del giocatore, così come il colore delle sue misure sulla mappa, i suoi cerchi di ping, ecc.
mostramacrobar falso Se viene visualizzata la barra delle macro del giocatore.

Macro

Proprietà Valore predefinito Note
_id   Un ID unico per questo oggetto. Univoco globalmente per tutti gli oggetti in questo gioco. Sola lettura.
_type "macro" Può essere utilizzato per identificare il tipo di oggetto o cercare l'oggetto. Sola lettura.
_playerid   L'ID del giocatore che ha creato questa macro. Sola lettura.
nome "" Il nome della macro.
azione "" Il testo della macro.
visibleto "" Elenco di ID giocatori separati da virgola che possono visualizzare la macro oltre al giocatore che l'ha creata.

Tutti i giocatorisono rappresentati avendo 'all' nell'elenco.

istokenaction false Questa macro è un'azione token che dovrebbe apparire quando i token sono selezionati?

 


Tavolo arrotolabile

Proprietà Valore predefinito Note
_id   Un ID univoco per questo oggetto. Unico a livello globale per tutti gli oggetti di questo gioco. In sola lettura.
Tipo "rollabile" Può essere utilizzato per identificare il tipo di oggetto o per cercare l'oggetto. In sola lettura.
nome "new-table"  
showplayers true  

Table Item 

Proprietà Valore predefinito Note
_id   A unique ID for this object. Globally unique across all objects in this game. Read-only.
_type "tableitem" Can be used to identify the object type or search for the object. In sola lettura.
_rollabletableid "" ID della tabella a cui appartiene questo articolo. In sola lettura.
avatar "" URL di un'immagine utilizzata per l'elemento della tabella. Veda la nota sulle limitazioni di avatar e imgsrc qui sotto.
nome ""  
peso 1 Peso dell'articolo della tabella rispetto agli altri articoli della stessa tabella. Semplicemente, un oggetto con peso 3 è tre volte più probabile che venga selezionato quando si lancia il dado sul tavolo rispetto a un oggetto con peso 1.

Personaggio

Proprietà Valore predefinito Note
_id   Un ID unico per questo oggetto. Unico a livello globale tra tutti gli oggetti in questo gioco. Sola lettura.
_type "character" Può essere utilizzato per identificare il tipo di oggetto o cercare l'oggetto. Sola lettura.
avatar "" URL di un'immagine utilizzata per il personaggio. Vedi la nota sulle restrizioni relative all'avatar e all'imgsrc qui sotto.
nome ""  
biografia "" Biografia del personaggio. Vedi la nota qui sotto su come accedere ai campi Note, GMNotes e alla biografia.
noteGM "" Note sul personaggio visibili solo dal GM. Vedi la nota qui sotto su come accedere ai campi Note, GMNotes e alla biografia.
archivio falso  
nellepaginegiocatore "" Elenco separato da virgola degli ID dei giocatori che possono visualizzare questo personaggio. Usa "tutti" per dare a tutti i giocatori la possibilità di visualizzare.

Tutti i giocatori sono rappresentati avendo 'tutti' nell'elenco.

controlledby "" Elenco separato da virgola degli ID dei giocatori che possono controllare e modificare questo personaggio. Usa "tutti" per dare a tutti i giocatori la possibilità di modificare.

Tutti i giocatori sono rappresentati avendo 'tutti' nell'elenco.

_defaulttoken "" Una stringa JSON che contiene i dati del token predefinito del personaggio, se impostato. Nota che questo è un "blob" simile a "bio" e "note", quindi devi passare una funzione di callback per ottenere(). Sola lettura.

Attributi

Proprietà Valore predefinito Note
_id   Un ID unico per questo oggetto. Univoco a livello globale tra tutti gli oggetti in questo gioco. Sola lettura.
_type "attributo" Può essere usato per identificare il tipo di oggetto o cercare l'oggetto. Sola lettura.
_characterid "" ID del personaggio a cui appartiene questo attributo. Sola lettura. Obbligatorio quando si utilizzacreateObj.
nome "Senza titolo"  
corrente "" Il valore attuale dell'attributo è accessibile nella chat e nelle macro con la sintassi@{Character Name|Attribute Name}o nelle abilità con la sintassi@{Attribute Name}.
massimo "" Il valore massimo dell'attributo è accessibile nella chat e nelle macro con la sintassi@{Character Name|Attribute Name|max}o nelle abilità con la sintassi@{Attribute Name|max}.

 Importante: per informazioni su come i valori predefiniti del foglio caratteri influiscono sull'uso degli Attributi, consulti la nota sottostante relativa al lavoro con i fogli caratteri.


Capacità

Proprietà Valore predefinito Note
_id   Un ID unico per questo oggetto. Unico globalmente tra tutti gli oggetti di questo gioco. Sola lettura.
_type "caratteristica" Può essere usato per identificare il tipo di oggetto o cercare l'oggetto. Sola lettura.
_characterid "" Il personaggio a cui appartiene questa caratteristica. Sola lettura. Obbligatorio quando si utilizzacreateObj.
nome "Untitled_Ability"  
descrizione "" La descrizione non appare nell'interfaccia del foglio personaggio.
azione "" Il testo dell'abilità.
istokenaction falso È questa abilità un'azione da token che dovrebbe apparire quando vengono selezionati i token collegati al personaggio genitore?

Materiale di gioco

Proprietà Valore predefinito Note
_id   Un ID unico per questo oggetto. Unico a livello globale tra tutti gli oggetti in questo gioco. Sola lettura.
_type "handout" Può essere utilizzato per identificare il tipo di oggetto o cercare l'oggetto. Sola lettura.
avatar "" URL di un'immagine utilizzata per il documento. Vedere la nota sulle restrizioni avatar e imgsrc di seguito.
nome "Nota Misteriosa"  
annotazioni "" Contiene il testo nel documento. Vedi la nota qui sotto sull'uso delle Note e delle GMNotes.
gmnotes "" Contiene il testo nel documento che solo il GM vede. Vedi la nota qui sotto sull'uso delle Note e delle GMNotes.
inplayerjournals "" Elenco delimitato da virgole di ID dei giocatori che possono vedere questo documento. Utilizza "all" per mostrare a tutti i giocatori.

Tutti i Giocatori è rappresentato avendo 'tutti' nella lista.

archiviato falso  
controlledby "" Elenco di ID dei giocatori separati da virgole che possono controllare e modificare questo handout.

Tutti i Giocatori è rappresentato avendo 'tutti' nella lista.

Nota: L'API non ha accesso alla gerarchia delle cartelle. Gli handout creati dall'API verranno posizionati al livello di base.


Mazzo

Nota che ci sono metodi di assistenza all'API per "draw", "deal" o "shuffle" carte dal Mazzo. VediAggiornamenti API nel post del forum di marzo 2018.

Proprietà Valore predefinito Note
_id "" id del mazzo
_type "mazzo"  
nome "" nome del mazzo
_currentDeck "" una lista di carte separate da virgola che sono attualmente nel mazzo (inclusi quelli che sono stati giocati sul tavolo/mano). Cambia quando il mazzo viene mescolato.
_currentIndex -1 the current index of our place in the deck, 'what card will be drawn next?'
_currentCardShown true show the current card on top of the deck
showplayers true show the deck to the players
playerscandraw true i giocatori possono pescare carte?
avatar "" il 'retro' delle carte per questo mazzo
mostrato falso mostra il mazzo sulla plancia di gioco (il mazzo è attualmente visibile?)
i_giocatori_vedonocarte vero i giocatori possono vedere il numero di carte nella mano degli altri giocatori?
i_giocatori_vedonofrontedellecarte falso i giocatori possono vedere i fronti delle carte quando guardano nelle mani degli altri giocatori?
gm_seenumcards vero il GM può vedere il numero delle carte nella mano di ogni giocatore?
gm_seefrontofcards falso il GM può vedere i fronti delle carte quando guarda nella mano di ogni giocatore?
infinitecards falso ci sono un numero 'infinito' di carte in questo mazzo?
_cardSequencer -1 usato internamente per avanzare il mazzo quando si prendono carte.
cartegiocate "scoperte" come si giocano le carte da questo mazzo sul tavolo da gioco? 'scoperte' o 'coperte'.
altezzadefault "" qual è l'altezza predefinita per le carte giocate sul tavolo?
larghezza predefinita ""  
modalità scarto "nessuna" che tipo di mazzo scarto possiede questo mazzo? 'nessuna' = nessun mazzo scarto, 'scegliretro' = permetti ai giocatori di vedere il retro delle carte e sceglierne una, 'sceglifronte' = vedi il fronte e scegli, 'pescaalto' = pesca la carta scartata più recentemente, 'pescabasso' = pesca la carta scartata più vecchia.
_mazzoScarti "" quale è il mazzo scarto corrente per questo mazzo? lista di carte separate da virgola. Queste sono carte che sono state rimosse dal gioco e non saranno reinserite nel mazzo durante una mescolata fino a quando non viene eseguita una richiamo.

Carta

Proprietà Valore predefinito Note
nome "" Nome della carta
avatar "" Fronte della carta
_deckid "" ID del mazzo
_type "carta"  
_id ""  

Mano

Si noti che ogni giocatore dovrebbe avere SOLO una mano.

Proprietà Valore predefinito Note
mano corrente "" elenco delimitato da virgole di carte attualmente in mano. Si noti 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 attuale "bydeck" quando il giocatore apre la mano, la visualizzazione è 'bydeck' o 'bycard'?

Traccia jukebox

Proprietà Valore predefinito Note
_id   Un ID univoco per questo oggetto. Univoco a livello globale tra tutti gli oggetti in questo gioco. Sola lettura.
_type "jukeboxtrack" Può essere usato per identificare il tipo di oggetto o cercare l'oggetto. Sola lettura.
sta giocando falso Valore booleano utilizzato per determinare se la traccia è in riproduzione o meno. Impostando questo valore su "true" e softstop su "false" si riproduce una traccia.
softstop falso Valore booleano utilizzato per determinare se una traccia non in loop è stata riprodotta almeno una volta. Questo deve essere impostato su "false" per garantire la riproduzione di una traccia.
titolo "" L'etichetta visibile per la traccia nella scheda jukebox.
volume 30 Il livello del volume della traccia. Nota che questo deve essere impostato come un numero intero (non una stringa), altrimenti potresti interrompere la funzionalità. Valori da 0-100 (percentuale).
ciclo falso La traccia deve essere ripetuta? Imposta su vero se lo desideri.

Set personalizzato

Proprietà Valore predefinito Note
_id   Un ID univoco per questo oggetto. Globalmente unico tra tutti gli oggetti di questo gioco. Sola lettura.
_type "custfx" Può essere utilizzato per identificare il tipo di oggetto o cercare l'oggetto. Sola lettura.
nome "" Il nome visibile per l'FX nell'elenco FX.
definizione {} Oggetto JavaScript che descrive l'FX.

imgsrc e restrizioni proprietà avatar

Mentre ora puoi modificare le proprietà imgsrc e avatar, al fine di garantire la sicurezza di tutti gli utenti di Roll20, abbiamo posto le seguenti restrizioni su tali proprietà:


In futuro potremmo aggiungere un tool per caricare immagini specificamente per l'uso con gli script API, ma per adesso basta usare immagini caricate nella tua libreria personale. Tieni presente che se cancelli un'immagine dalla tua libreria, verrà rimossa da tutti i giochi che utilizzano quell'immagine, inclusi i giochi che utilizzano i tuoi script API.


Utilizzando i campi Note, GMNotes e Bio asincronamente

Per accedere ai campi "notes", "gmnotes" o "bio" sui personaggi e sugli appunti, devi passare una funzione di callback come secondo argomento alla funzione get(). Ecco un esempio:

var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
character.get("bio", function(bio) {
    log(bio); //fai qualcosa con il bio del personaggio qui.
});

Puoi impostare il valore di questi campi come al solito. Tieni presente che attualmente (al 2016/05/09) c'è un bug con questi campi asincroni, in cui impostarli passando valori a createObj non funziona silenziosamente, lasciando l'oggetto in uno stato strano. Dovresti impostare questi valori usando .set fino a quando questo problema non viene risolto. Dettagli sul Forum. C'è anche un bug (dal 2016/11/05) per cui il tentativo di impostare entrambe le proprietà notes e gmnotes nella stessa chiamata set() comporta l'impostazione errata della seconda proprietà nella chiamata. Dettagli sul Forum.


Lavorare con le schede dei personaggi

La funzione Fogli di caratteri influisce sull'utilizzo del tipo di oggetto Attributi, perché i fogli hanno la possibilità di specificare un valore predefinito per ogni attributo del foglio. Tuttavia, se l'attributo è impostato sul valore predefinito, non esiste ancora un oggetto Attributo effettivo creato nel gioco per quel Personaggio. Forniamo una funzione di convenienza che le nasconde questa complessità. Dovrebbe utilizzare questa funzione per ottenere il valore di un attributo in futuro, soprattutto se sa che un gioco utilizza una Scheda Personaggio.

getAttrByName(character_id, attributo_nome, valore_tipo)

È sufficiente specificare l'ID del personaggio, il nome(non l'ID) dell'attributo (ad esempio "HP" o "Str"), e poi se desidera "current" o "max" per value_type. Ecco un esempio:

var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
getAttrByName(character.id, "str"); //il valore attuale di str, ad esempio "12"
getAttrByName(character.id, "str", "max"); //il valore massimo di str, ad esempio "[[floor(@{STR}/2-5)]]".


Si noti che i campi che hanno valori auto-calcolati restituiranno la formula piuttosto che il risultato del valore. Può quindi passare questa formula a sendChat() per utilizzare il motore dei dadi per calcolare automaticamente il risultato.

Assicurati di prendere in considerazione anche il Scheda Personaggio per ulteriori informazioni su come le Schede Personaggio interagiscono con l'API.

getAttrByNameotterrà soloil valore dell'attributo, non l'oggetto attributo stesso. Se desidera fare riferimento a proprietà dell'attributo diverse da "current" o "max", o se desidera modificare le proprietà dell'attributo, deve utilizzare una delle altre funzioni precedenti, comefindObjs.

Nel caso in cui l'attributo richiesto non esista,getAttrByName()restituiràundefined.


Creare oggetti

createObj(tipo, attributi)

Nota: attualmente può creare oggetti 'grafico', 'testo', 'percorso', 'carattere', 'abilità', 'attributo', 'handout', 'rollableable', 'tableitem' e 'macro'.

Può creare un nuovo oggetto nel gioco utilizzando la funzionecreateObj. Deve inserire il tipo dell'oggetto (una delle proprietà_typevalide dell'elenco di oggetti precedente), nonché un oggettoattributescontenente un elenco di proprietà dell'oggetto. Si noti che se l'oggetto ha un oggetto genitore (ad esempio, gli attributi e le abilità appartengono ai caratteri, la grafica, i testi e i percorsi appartengono alle pagine, ecc.), deve inserire l'ID del genitore nell'elenco delle proprietà (ad esempio, deve includere la proprietàcharacteridquando crea un attributo). Tenga presente che anche quando crea nuovi oggetti, non può impostare proprietà di sola lettura, che verranno automaticamente impostate al loro valore predefinito. L'unica eccezione è rappresentata dalla creazione di un percorso: deve includere la proprietà 'percorso', ma non può essere modificata una volta che il percorso è stato inizialmente creato.

createObjrestituirà il nuovo oggetto, in modo da poter continuare a lavorare con esso.

//Crea un nuovo attributo Forza su tutti i Personaggi che vengono aggiunti al gioco.
on("add:character", function(obj) {
    createObj("attribute", {
        name: "Strength",
        current: 0,
        max: 30,
        characterid: obj.id
    });
});

Eliminazione di oggetti

oggetto.remove()

Nota: attualmente è possibile eliminare gli oggetti 'grafica', 'testo', 'percorso', 'carattere', 'abilità', 'attributo', 'handout', 'rollableable', 'tableitem' e 'macro'.

Può eliminare gli oggetti di gioco esistenti utilizzando la funzione.remove(). La funzione .remove() funziona su tutti gli oggetti che può creare con la funzione createObj. Si chiama la funzione direttamente sull'oggetto. Ad esempio,mycharacter.remove();.


Oggetti globali

Ci sono diversi oggetti che sono globalmente disponibili in qualsiasi punto del suo script.

Campagna() (funzione)

Una funzione che restituisce l'oggettoCampaign. Poiché esiste una sola campagna, questo globale punta sempre all'unica campagna del gioco. Utile per fare cose come controllare se un oggetto si trova nella pagina attiva usandoCampaign().get("playerpageid").


state

La variabilestateè un oggetto nell'ambito globale, accessibile a tutti gli script in esecuzione nel gioco. Può accedere all'oggettostateda qualsiasi funzione o callback in qualsiasi momento, semplicemente utilizzando la variabile globale denominatastate. Inoltre, lo stato dell'oggetto viene preservato tra le esecuzioni di Sandbox, quindi puoi usarlo per memorizzare le informazioni che desideri avere nelle esecuzioni future del tuo script.

Nota:Dovrebbe utilizzare l'oggetto State per memorizzare le informazioni necessarie solo all'API, in quanto non vengono inviate ai computer dei giocatori e non ingrandiscono il file di gioco. Memorizzi i valori che sono necessari nel gioco nelle proprietà degli oggetti Roll20.

Tipi memorizzabili

L'oggettostateè in grado di persistere solo tipi di dati semplici, come supportato dallo standardJSON.

Tipo Esempi Descrizione
Boolean verofalso Il valoreveroofalso.
Numero 123,5101,23e20 Qualsiasi formato di numero supportato da Javascript. In virgola mobile o intero.
Stringa Hello Fantasy'"oh, and World" Una stringa di testo standard.
Array [ 1, 2, 3, 4 ][ 'A','B','C'][1, 2, ['bob', 3], 10, 2.5] Una collezione ordinata di qualsiasi tipo, compresi altri array.
Oggetto { key: 1, value: 'roll20' } Un semplice oggetto chiave/valore con chiavi stringa e uno qualsiasi dei tipi come valore, compresi altri oggetti.

Attenzione:Mentre le funzioni sembreranno funzionare quando sono memorizzate nello stato inizialmente, scompariranno la prima volta che lo statoviene ripristinato dalla persistenza, come ad esempio al riavvio di una sandbox.

  • Nota:Questo include gli oggetti Roll20 che lei ottiene dagli eventi o dalle funzionifindObjs(),getObj(),filterObjs(),createObj(), ecc.

Promemoria importanti

L'oggettostateè condiviso da tutti gli script in una sandbox. Per evitare di rompere altri script, è importante seguire alcune semplici linee guida:

  • Nonmai assegnare direttamente all'oggettostato principale.
stato = { break: 'all the things' }; // NON FACCIA MAI QUESTO!!!

 

  • Evitidi utilizzare variabili locali denominatestatenei suoi script. Anche se questo funziona, sarà fonte di confusione per gli utenti successivi dei suoi script e potrebbe causare problemi se il codice viene modificato in modo incauto.
function turn(){
    var state = Campaign().get('turnorder'); // Pessima pratica, evitarla!
    // ...
}

 

  • Semprecollochi le sue proprietà al di sotto di almeno una proprietà dello spazio dei nomi. Si assicuri di utilizzare una proprietà dello spazio dei nomi sufficientemente descrittiva. Eviti nomi comescriptoimpostazioni. È meglio utilizzare il nome del suo modulo oppure il suo nome o il suo handle.
if( ! state.MyModuleNamespace ) {
    state.MyModuleNamespace = { module: 'il mio modulo', ok: 'questo va bene!', count: 0 };
}
state.MyModuleNamespace.count++;

Esempio di utilizzo

Questo è un esempio funzionante che utilizza l'oggettostatein modo appropriato.

on('ready',function() {
    "use strict";

    // Controlla se la proprietà namespaced esiste, creandola se non esiste
    if( ! state.MyModuleNS ) {
        state.MyModuleNS = {
            version: 1.0,
            config: {
                color1: '#ff0000',
                color2: '#0000ff'
            },
            count: 0
        };
    }

    // Utilizzo delle proprietà dello stato per configurare un messaggio alla chat. 
    sendChat(
        'Modulo di prova',
        '<span style="color: '+state.MyModuleNS.config.color1+';">'+
            'Stato di prova'+
        '</span> '+
        '<span style="color: '+state.MyModuleNS.config.color2+';">'+
            'Script v'+state.MyModuleNS.version+' iniziato '+(++state.MyModuleNS.count)+' volte!'+
        '</span>'
    );
});

Trovare/Filtrare gli oggetti

L'API fornisce diverse funzioni di aiuto che possono essere utilizzate per trovare gli oggetti.

getObj(tipo, id)
Questa funzione ottiene un singolo oggetto se si passano il _tipo dell'oggetto e l'_id. È meglio utilizzare questa funzione rispetto alle altre funzioni di ricerca, quando possibile, perché è l'unica che non deve iterare l'intera collezione di oggetti.

on("change:graphic:represents", function(obj) {
    if(obj.get("represents") != "") {
       var character = getObj("character", obj.get("represents"));
    } } }).
});

 


findObjs(attrs)

Passa a questa funzione un elenco di attributi e restituirà tutti gli oggetti che corrispondono come un array. Si noti che questo funziona su tutti gli oggetti di tutti i tipi in tutte le pagine -- quindi probabilmente vorrà includere almeno un filtro per _type e _pageid se sta lavorando con oggetti da tavolo.

var currentPageGraphics = findObjs({                              
  _pageid: Campaign().get("playerpageid"),                              
  _type: "graphic",                          
});
_.each(currentPageGraphics, function(obj) {    
  //Fare qualcosa con l'obj, che si trova nella pagina corrente ed è un grafico.
});

Può anche inserire un secondo argomento opzionale che contiene un oggetto con un elenco di opzioni, tra cui:

  • caseInsensitive(vero/falso): Se vero, le proprietà delle stringhe saranno confrontate senza tenere conto del caso della stringa
var targetTokens = findObjs({
    nome: "target"
}, {caseInsensitive: true});
//Ritrova tutti i token con nome 'target', 'Target', 'TARGET', ecc.

filterObjs(callback)

Eseguirà la funzione di callback fornita su ogni oggetto e, se la callback restituisce true, l'oggetto sarà incluso nell'array dei risultati. Attualmente è sconsigliabile utilizzare filterObjs() per la maggior parte degli scopi - a causa del fatto che findObjs() ha un'indicizzazione integrata per una migliore velocità di esecuzione, è quasi sempre meglio 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 superiore sinistro del piano del tavolo.

getAllObjs()

Restituisce un array di tutti gli oggetti nel Gioco (tutti i tipi). Equivalente alla chiamata a filterObjs e restituisce semplicementetrueper ogni oggetto.


getAttrByName(character_id, attribute_name, value_type)

Ottiene il valore di un attributo, utilizzando il valore predefinito del foglio del personaggio se l'attributo non è presente. value_typeè un parametro opzionale, che puoi utilizzare per specificare "corrente" o "massimo".

getAttrByNameotterrà soloil valore dell'attributo, non l'oggetto attributo stesso. Se desideri fare riferimento alle proprietà dell'attributo diversi da "corrente" o "massimo", o se desideri modificare le proprietà dell'attributo, devi utilizzare una delle altre funzioni sopra, comefindObjs.

Per le sezioni ripetute, può utilizzare il formatosezione_ ripetuta$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.

Può ottenere un comportamento equivalente agetAttrByNamecon quanto segue:

// current and max sono completamente dipendenti dall'attributo e dal sistema di gioco
// in questione; non esiste una funzione disponibile per determinarli automaticamente
function mieGetAttrByName(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 attribute = findObjs({
        type: 'attribute',
        characterid: character_id,
        name: attribute_name
    }, {caseInsensitive: true})[0];
    if (!attribute) {
        attribute = createObj('attribute', {
            characterid: character_id,
            name: attribute_name,
            current: attribute_default_current,
            max: attribute_default_max
        });
    }

    if (value_type == 'max') {
        return attribute.get('max');
    } else {
        return attribute.get('current');
    }
}
Questo articolo ti è stato utile?
Utenti che ritengono sia utile: 19 su 21