API : Objets

Il existe plusieurs types d'objets utilisés dans l'API Roll20. Voici une brève liste de chacun d'entre eux, leur description et les propriétés qu'ils contiennent (ainsi que leurs valeurs par défaut). En règle générale, les propriétés qui commencent par un trait de soulignement (_) sonten lecture seuleet ne peuvent pas être modifiées. Il est nécessaire d'accéder aux propriétés des objets en utilisantobj.get("propriété")et de définir de nouvelles valeurs en utilisantobj.set("propriété", nouvellevaleur)ouobj.set({property: newvalue, property2: newvalue2}).

Remarque :la propriétéidd'un objet est un identifiant unique au niveau mondial : deux objets ne peuvent pas avoir le même identifiant, même s'ils sont de types différents. De plus, étant donné que l'identifiant d'un objet est fréquemment utilisé et ne change jamais, il existe un raccourci qui vous permet d'y accéder en utilisantobj.idau lieu deobj.get("_id")si vous le souhaitez (les deux fonctionnent).


Pathv2 (disponible sur la dernière version du moteur VTV)

Propriété Valeur par défaut Remarques
_id  

Identifiant unique pour cet objet. Unique au monde parmi tous les objets d'
s dans ce jeu. À lecture seule.

type « pathv2 » Peut être utilisé pour identifier le type d'objet ou rechercher l'objet d'
. À lecture seule.
pageid    Identifiant de la page dans laquelle se trouve l'objet. À lecture seule.
forme "" « pol », « free », « eli » ou « rec » Détermine si le chemin est affiché sous forme de polyligne, de trait libre, d'ellipse ou de rectangle.
points    Chaîne JSON contenant un tableau de points x, y utilisés pour créer le chemin.
remplir "transparent" Couleur de remplissage. Veuillez utiliser la chaîne « transparent » ou une couleur hexadécimale sous forme de chaîne, par exemple « #000000 ».
accident vasculaire cérébral #000000 Couleur du contour.
rotation 0 Rotation (en degrés).
calque "" Calque actuel, l'une des suivantes : « gmlayer », « objects », « carte », « walls » ou « foreground ». Le calque « murs » est utilisé pour l'éclairage dynamique, et les chemins sur le calque « murs » bloqueront la lumière.
largeur_de_trait 5  
y 0 Coordonnée Y du centre du chemin
x 0 Coordonnée X du centre du chemin
contrôlé par ""

Liste séparée par des virgules des identifiants des joueurs autorisés à contrôler le chemin. Les joueurs contrôlant peuvent supprimer le chemin. Si le chemin a été créé par un joueur, ce dernier est automatiquement inclus dans la liste.

Tous les joueurssont représentés par la mention « tous » dans la liste.

Type de barrière "mur"

Les options de type de barrière d'éclairage dynamique comprennent « wall » (mur), « oneWay » (sens unique) et « transparent » (transparent).

oneWayReversed faux

booléen

fonduEnTransition vrai Lorsque cette option est activée, le chevauchement de la limite intérieure d'un graphique du calque d'objet avec l'objet du calque de premier plan entraînera la modification de son opacité à la valeur spécifiée dans fadeOpacity.
Si la valeur est fausse, l'opacité restera maximale, indépendamment du chevauchement.
opacité de fondu 0.3 Cette valeur détermine l'opacité de l'objet lorsqu'il est recouvert par un graphique sur le calque de l'objet et que fadeOnOverlap est défini sur true.
Rendre en tant que décor faux Si cette option est activée, cet objet sera masqué par l'éclairage dynamique et le masque.

 

La propriété shape peut prendre les valeurs suivantes :

  • « pol »- Polyligne. Une ligne droite est tracée entre chaque point consécutif. Si le point de départ et le point d'arrivée sont identiques, cela crée une forme fermée.
  • « gratuit »- À main levée. Une courbe est tracée en utilisant les points comme guides. Si le point de départ et le point d'arrivée sont identiques, cela crée une forme fermée.
  • « eli » - Ellipse. Une ellipse est dessinée à l'aide des points pour définir un cadre de sélection. Seuls les deux premiers points sont utilisés.
  • « rec » - Rectangle. Un rectangle est dessiné à l'aide des points pour définir un cadre de sélection. Seuls les deux premiers points sont utilisés.

La propriété points est une chaîne JSON contenant un tableau de points. Les points sont représentés sous la forme d'un tableau à deux positions correspondant à un emplacement x et y. Un triangle allant de (0,0) à (0,70) puis à (70,0), et revenant à (0,0) serait représenté comme suit : "[[0,0],[0,70],[70,0],[0,0]]".

Les propriétés x etypermettent de positionner l'objet PathV2 sur la page. Ils indiquent où doit se trouver le centre du dessin. Pour certaines formes (ellipses et rectangles), cela est relativement simple à déterminer. Pour les formes plus complexes (polylignes et formes libres), il est nécessaire de déterminer les valeurs minimales et maximales à partir de la propriété des pointset d'utiliser le point équidistant entre eux.

 


Chemin (Sur table classique)

Propriété Valeur par défaut Remarques
_id  

Identifiant unique pour cet objet. Unique au monde parmi tous les objets d'
s dans ce jeu. À lecture seule.

type "chemin" Peut être utilisé pour identifier le type d'objet ou rechercher l'objet d'
. À lecture seule.
pageid    Identifiant de la page dans laquelle se trouve l'objet. À lecture seule.
_chemin    Chaîne JSON décrivant les lignes du chemin. En lecture seule, sauf lors de la création d'un nouveau chemin. Veuillez consulter la section sur les chemins d'accès pour plus d'informations.
remplir "transparent" Couleur de remplissage. Veuillez utiliser la chaîne « transparent » ou une couleur hexadécimale sous forme de chaîne, par exemple « #000000 ».
accident vasculaire cérébral #000000 Couleur du contour.
rotation 0 Rotation (en degrés).
calque "" Calque actuel, l'une des suivantes : « gmlayer », « objects », « map », « walls » ou « foreground ». Le calque « murs » est utilisé pour l'éclairage dynamique, et les chemins sur le calque « murs » bloqueront la lumière.
largeur_de_trait 5  
largeur 0  
hauteur 0  
en haut 0 Coordonnée Y du centre du chemin
à gauche 0 Coordonnée X du centre du chemin
échelle X 1  
échelleY 1  
contrôlé par ""

Liste séparée par des virgules des identifiants des joueurs autorisés à contrôler le chemin. Les joueurs contrôlant peuvent supprimer le chemin. Si le chemin a été créé par un joueur, ce dernier est automatiquement inclus dans la liste.

Tous les joueurssont représentés par la mention « tous » dans la liste.

Type de barrière "mur"

Les options de type de barrière d'éclairage dynamique comprennent « wall » (mur), « oneWay » (sens unique) et « transparent » (transparent).

oneWayReversed faux

booléen

fonduEnTransition vrai Lorsque cette option est activée, le chevauchement de la limite intérieure d'un graphique de calque d'objet avec l'objet du calque de premier plan entraînera la modification de son opacité à la valeur spécifiée dans fadeOpacity.
Si la valeur est fausse, l'opacité restera maximale, indépendamment du chevauchement.
opacité de fondu 0.3 Cette valeur détermine l'opacité de l'objet lorsqu'il est recouvert par un graphique sur le calque de l'objet et que fadeOnOverlap est défini sur true.
Rendre en tant que décor faux Si cette option est activée, cet objet sera masqué par l'éclairage dynamique et le masque.

Pour plus d'informations sur le format des données_path, veuillez consulter la section consacrée aux chemins d'accès.

 


Fenêtre

Remarque : les fenêtres et les portes utilisent un axe inversé par rapport aux autres types d'objets. Par exemple, une variable supérieure qui serait de 100 pour un autre objet est de y -100 pour une fenêtre ou une porte.

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type "fenêtre" À lecture seule.
couleur   Une couleur hexadécimale du chemin.
x 0 Coordonnées du centre de la porte sur l'axe x.
y 0 Coordonnées du centre de la porte sur l'axe y.
estOuvert faux Détermine si un joueur peut traverser cette fenêtre.
est verrouillé faux Empêche les utilisateurs d'interagir avec la fenêtre.
chemin   Représenté par deux poignées (handle0 et handle1) ayant chacune des coordonnées x et y.

Exemple

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();
    }
});

Porte

Remarque : les fenêtres et les portes d's utilisent un axe inversé par rapport aux autres types d'objets. Par exemple, une variable supérieure qui serait de 100 pour un autre objet est de y -100 pour une fenêtre ou une porte.

Propriété

Valeur par défaut

Remarques

_id

 

Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.

type

« porte »

À lecture seule.

couleur

 

Une couleur hexadécimale du chemin.

x

0

Coordonnées du centre de la porte sur l'axe x.

y

0

Coordonnées du centre de la porte sur l'axe y.

estOuvert

faux

Détermine si un joueur peut franchir cette porte.

est verrouillé

faux

Empêche les joueurs d'interagir avec la porte.

estSecret

faux

Supprime l'icône d'une porte de la vue du joueur et agit comme une barrière.

chemin

 

Représenté par deux poignées (handle0 et handle1) ayant chacune des coordonnées x et y.


Texte

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type "texte" Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
pageid   Identifiant de la page dans laquelle se trouve l'objet. À lecture seule.
en haut 0  
à gauche 0  
largeur 0  
hauteur 0  
texte  ""  
taille de police 16 Pour obtenir les meilleurs résultats, veuillez respecter les tailles prédéfinies dans le menu d'édition : 8, 10, 12, 14, 16, 18, 20, 22, 26, 32, 40, 56, 72, 100, 200, 300.
rotation 0  
couleur rgb(0, 0, 0)  
accident vasculaire cérébral "transparent"  
famille de polices « Arial » Si ce paramètre n'est pas défini, lorsque vous modifiez ultérieurement la valeur de la propriété « text », la taille de la police sera réduite à 8. Valeurs possibles (la casse n'a pas d'importance) : « Arial », « Patrick Hand », « Contrail One », « Shadows Into Light » et « Candal ». Si vous spécifiez un nom non valide, une police à espacement fixe et à empattement sera utilisée.
calque "" Calque actuel, l'une des suivantes : « gmlayer », « objects », « map », « walls » ou « foreground ». Le calque « murs » est utilisé pour l'éclairage dynamique, et les chemins sur le calque « murs » bloqueront la lumière.
contrôlé par "" Liste séparée par des virgules des identifiants des joueurs autorisés à contrôler le texte. Les administrateurs peuvent supprimer le texte. Si le texte a été créé par un joueur, ce dernier est automatiquement inclus dans la liste.

Tous les joueurssont représentés par la mention « tous » dans la liste.

fonduEnTransition vrai Lorsque cette option est activée, le chevauchement de la limite intérieure d'un graphique de calque d'objet avec l'objet du calque de premier plan entraînera la modification de son opacité à la valeur spécifiée dans fadeOpacity.
Si la valeur est fausse, l'opacité restera maximale, indépendamment du chevauchement.
opacité de fondu 0.3 Cette valeur détermine l'opacité de l'objet lorsqu'il est recouvert par un graphique sur le calque de l'objet et que fadeOnOverlap est défini sur true.
Rendre en tant que décor faux Si cette option est activée, cet objet sera masqué par l'éclairage dynamique et le masque.

Graphique (Jeton/Carte/Carte/etc.)

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type « graphique » Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
sous-type "jeton" Peut être « jeton » (pour les jetons et les cartes) ou « carte » (pour les cartes). À lecture seule.
_cardid   Définir un identifiant si le graphique est une carte. À lecture seule.
pageid   Identifiant de la page dans laquelle se trouve l'objet. À lecture seule.
imgsrc   L'URL de l'image graphique. Veuillez consulter la note ci-dessous concernant les restrictions relatives à imgsrc et aux avatars.
bar1_link   Définir un identifiant si la barre 1 est associée à un personnage.
bar2_link    
bar3_link    
représente   Identifiant du personnage que ce jeton représente.
à gauche 0 Nombre de pixels entre le bord gauche de la carte et le centre du graphique.
en haut 0 Nombre de pixels entre le bord supérieur de la carte et le centre du graphique.
largeur 0 Largeur de l'image, en pixels.
hauteur 0 Hauteur de l'image, en pixels.
rotation 0 L'orientation du jeton en degrés.
calque ""

Calque actuel, l'une des suivantes : « gmlayer », « objects », « map », « walls » ou « foreground ». Le calque « murs » est utilisé pour l'éclairage dynamique, et les chemins sur le calque « murs » bloqueront la lumière.

est en train de dessiner faux Cette propriété peut être modifiée à partir du menu contextuel Avancé.
désactiver l'accrochage faux Veuillez désactiver l'alignement automatique des graphiques sur la grille.
désactiverLeMenuToken faux Veuillez désactiver les paramètres du menu graphique des jetons (bulles de jetons et menu radial).
flipv faux Veuillez retourner verticalement.
fliph faux Veuillez retourner horizontalement.
nom "" Le nom du jeton.
gmnotes "" Remarques sur le jeton uniquement visibles par le MJ.
contrôlé par "" Liste séparée par des virgules des identifiants des joueurs autorisés à contrôler le graphique. Les joueurs ayant le contrôle peuvent supprimer le graphique. Si le graphique a été créé par un joueur, ce dernier est automatiquement inclus dans la liste.

Tous les joueurssont représentés par la mention « tous » dans la liste.

valeur de la barre 1 "" Valeur actuelle de la barre 1. Il peut s'agir d'un nombre ou d'un texte.
valeur de la barre 2 ""  
valeur bar3 ""  
bar1_max "" Valeur maximale de la barre 1. Si _value et _max sont tous deux définis, une barre peut s'afficher au-dessus du jeton, indiquant le pourcentage de la barre 1.
bar2_max ""  
bar3_max ""  
rayon de l'aura "" Rayon de l'aura, en utilisant les unités définies dans les paramètres de page. Peut être un nombre entier ou un nombre à virgule flottante. Définissez la chaîne vide pour effacer l'aura.
rayon de l'aura ""  
couleur d'aura 1 #FFFF99 Une couleur hexadécimale ou l'aura.
aura2_couleur #59E594  
aura1_carré faux L'aura est-elle un cercle ou un carré ?
aura2_carré faux  
couleur de teinte "transparent" Couleur hexadécimale ou « transparente ». Permet de modifier la couleur du graphique.
indicateurs de statut "" Liste séparée par des virgules des marqueurs d'état actuellement actifs. Veuillez consulter les remarques ci-dessous pour plus d'informations.
marqueurs_symboliques "" Un tableau JSON sous forme de chaîne contenant un objet pour chaque icône de jeton actuellement dans le jeu :. Vous trouverez un exemple ci-dessous.
nom affiché faux Si le nom du jeton est affiché.
Afficher le nom des acteurs faux Veuillez montrer le nom à tous les joueurs.
barre_des_acteurs_1 faux Veuillez afficher la barre 1 à tous les joueurs.
barre_des_acteurs faux  
barre_des_acteurs_3 faux  
showplayers_aura1 faux Afficher l'aura 1 à tous les joueurs.
afficher les acteurs_aura2 faux  
Modifier le nom du joueur vrai Permettre aux joueurs contrôlant les unités de modifier le nom du jeton. Affiche également le nom aux joueurs qui contrôlent le jeu, même si showplayers_name est faux.
playersedit_bar1 vrai Permettre aux joueurs contrôlants de modifier la barre 1 du jeton. Affiche également la barre 1 aux joueurs contrôlants, même si showplayers_bar1 est faux.
playersedit_bar2 vrai  
playersedit_bar3 vrai  
playersedit_aura1 vrai Permettre aux joueurs contrôlant les créatures de modifier l'aura 1 du jeton. Affiche également Aura 1 aux joueurs qui contrôlent, même si showplayers_aura1 est faux.
playersedit_aura2 vrai  
rayon de lumière "" Rayon d'éclairage dynamique.
rayon_lumineux "" Début du rayon de basse lumière. Si light_dimradius est une chaîne vide, le jeton émettra une lumière vive jusqu'à la distance light_radius. Si light_dimradius a une valeur, le jeton émettra une lumière vive jusqu'à la valeur light_dimradius, et une basse lumière à partir de là jusqu'à la valeur light_radius.
lumière_autresjoueurs faux Veuillez montrer la lumière du jeton à tous les joueurs.
lumière_hassight faux La lumière dispose d'une « vision » permettant de contrôler les joueurs dans le cadre du paramètre « Appliquer la ligne de vue ».
angle de lumière « 360 » Angle (en degrés) de l'angle de la lumière. Par exemple, « 180 » signifie que la lumière n'illuminerait que la « moitié » avant du « champ de vision ».
lumière_losangle « 360 » Angle (en degrés) du champ de vision du graphique (en supposant que light_hassight est défini sur true)
dernier mouvement "" Le dernier déplacement du jeton. Il s'agit d'une liste de coordonnées séparées par des virgules. Par exemple, « 300,400 » signifierait que le jeton a commencé son dernier déplacement à gauche = 300, haut = 400. On suppose toujours que les valeurs actuelles en haut et à gauche du jeton constituent le « point final » du dernier déplacement. Les points de cheminement sont indiqués par plusieurs ensembles de coordonnées. Par exemple, « 300,400,350,450,400,500 » indiquerait que le jeton a commencé à gauche = 300, en haut = 400, puis a défini un point de passage à gauche = 350, en haut = 450, un autre point de passage à gauche = 400, en haut = 500, et a ensuite terminé le déplacement à ses coordonnées actuelles en haut + à gauche.
multiplicateur de lumière « 1 » Facteur multiplicateur de l'efficacité des sources lumineuses. Un multiplicateur de deux permettrait au jeton de voir deux fois plus loin qu'un jeton avec un multiplicateur de un, avec la même source lumineuse.
distance_de_visualisation_adv_fow "" Le rayon autour d'un jeton où le Brouillard de guerre avancé est révélée.
facteur_de_sensibilité_à_la_lumière 100 Facteur multiplicateur de l'efficacité des sources lumineuses. Un multiplicateur de 200 permettrait au jeton de voir deux fois plus loin qu'un jeton avec un multiplicateur de 100, avec la même source lumineuse.
effet_vision_nocturne
  Modifie l'effet de vision nocturne. D'autres options sont disponibles, telles que « Variation » et « Nocturne ».
emplacement du bar   Permet d'ajuster l'emplacement des barres de jetons. Les options disponibles sont « overlap_top », « overlap_bottom » et « bottom ».
compact_bar
  Permet de déterminer si la barre est compacte ou non. Une autre option est compacte.
verrouillage du mouvement faux Une option permettant de verrouiller un graphique en place. Valeur booléenne vraie ou fausse
fonduEnTransition vrai Lorsque cette option est activée, le chevauchement de la limite intérieure d'un graphique de calque d'objet avec l'objet du calque de premier plan entraînera la modification de son opacité à la valeur spécifiée dans fadeOpacity.
Lorsqu'il est faux, il conservera sa valeur baseOpacity définie, indépendamment du chevauchement.
opacité de fondu .3 Cette valeur détermine l'opacité de l'objet lorsqu'il est recouvert par un graphique sur le calque de l'objet et que fadeOnOverlap est défini sur true.
Rendre en tant que décor faux Si cette option est activée, cet objet sera masqué par l'éclairage dynamique et le masque.
opacité de base 1.0 Cette valeur détermine l'opacité initiale des graphiques. Il est actif sur n'importe quel calque, pas seulement sur le calque de premier plan.

Exemple d'icônes de jeton

{
          "id":59, // l'identifiant de la base de données pour l'
          "name":"Bane", // le nom (non unique) du marqueur
          "tag":"Bane::59", // la manière dont le jeton est réellement référencé
          // cela inclura l'identifiant pour les marqueurs personnalisés, mais pas
          // pour les marqueurs par défaut.
          « url » : « https://s3.amazonaws.com/files.d20.io/images/59/yFnKXmhLTtbMtaq-Did1Yg/icon.png?1575153187 »
// ^l'URL de l'image de l'icône de jeton }

Remarques importantes concernant les personnages liés et les jetons

Veuillez noter que pour les jetons liés à des personnages, le champcontrolledbydu jeton est remplacé par le champcontrolledbydu personnage.

Pour les barres de jeton (par exemple,bar1_valueetbar1_max) où le jeton est lié à un attribut (par exemple,bar1_linkest défini), le fait de définir une valeur pour la barre mettra automatiquement à jour les valeursactuelleset/oumaximalesde l'attribut sous-jacent, vous évitant ainsi de devoir les définir manuellement.

De plus, lorsque l'attributs (ou la barre de jetons) est modifié en cours de partie, vous entendrez un événementchange:attributs(et spécifique à la propriété, par exemplechange:attributs:current), suivi d'un événementchange:graphic(etchange:graphic:bar1_value). Vous pouvez choisir de répondre à l'un ou l'autre événement, mais les valeurs des barres sous-jacentes ne seront pas encore mises à jour lorsque l'événement d'attribut se déclenchera, car il se déclenche en premier.

Remarques importantes concernant les indicateurs d'état

À compter du 6 août 2013, la manière dont les marqueurs de statut sur les jetons sont gérés a été modifiée. La propriété « statusmarkers » de l'objet graphique est désormais une liste séparée par des virgules de toutes les couleurs/icônes de marqueurs d'état qui devraient être actives sur le jeton. Le format est le suivant :

//Séparé par des virgules (utilisez join pour créer ou split pour convertir en tableau). 
//Si une icône/couleur d'état est suivie du symbole « @ », le nombre après
//« @ » s'affichera sous forme de badge sur l'icône statusmarkers = « red,blue,skull,dead,brown@2,green@6 »

Bien que vous puissiez accéder directement à la propriétéstatusmarkers, afin de maintenir la rétrocompatibilité avec les scripts existants et de faciliter l'utilisation des marqueurs d'état sans avoir à écrire de code pour gérer vous-même le fractionnement et l'analyse de la chaîne, nous fournissons un ensemble de propriétés « virtuelles » sur l'objet que vous pouvez définir/obtenir pour utiliser les marqueurs d'état. Chaque marqueur d'état possède une propriété « status_<markername>». Par exemple :

obj.get("status_red"); //Renvoie false si le marqueur n'est pas actif, true s'il l'est, et une chaîne (par exemple « 2 » ou « 5 ») si un badge est actuellement défini sur le marqueur
obj.get('status_bluemarker'); //Toujours pris en charge pour des raisons de compatibilité ascendante, équivalent à obj.get("status_blue");
obj.set("status_red", false); //Supprimerait le marqueur
obj.set("status_skull", "2"); //Définirait un badge « 2 » sur l'icône du crâne et l'ajouterait au jeton s'il n'est pas déjà actif.

Veuillez noter que ces propriétés virtuelles ne disposent pas d'événements. Il est donc nécessaire d'utiliserchange:graphic:statusmarkerspour surveiller les modifications apportées aux marqueurs d'état d'un jeton. Par exemple,change:graphic:status_redn'est PAS un événement valide et ne se déclenchera jamais.

La liste complète des marqueurs d'état disponibles (dans le même ordre que celui dans lequel ils apparaissent dans le bac à marqueurs) :

« rouge », « bleu », « vert », « marron », « violet », « rose », « jaune », « mort », « crâne », « somnolent », « demi-cœur », « demi-brume », « interdiction », « escargot », « hélice de foudre », « clé à molette », « cœur enchaîné », « boulon chimique », « zone mortelle », « bois-moi », « fissure », « masque de ninja », « chronomètre », « filet de pêche », « surrégime », « fort », « poing », « cadenas », « trois feuilles », « aile duveteuse », « martelé », « empreinte », « fléché », « aura », « mal de dos », « drapeau noir », « œil ensanglanté », « bouclier boulonné », « cœur brisé », « toile d'araignée », « bouclier brisé », « drapeau flottant », « radioactif », « trophée », « crâne brisé », « orbe gelé », « bombe roulante », « tour blanche », « saisir », « crier », « grenade », « mitrailleuse », « tous pour un », « tenue d'ange », « cible de tir à l'arc »

Page

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type "page" Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
zorder "" Liste d'identifiants séparés par des virgules spécifiant l'ordre des objets sur la page. Les options « toFront» et «toBack» (ainsi que les éléments de menu contextuel associés) permettent de réorganiser cette liste. À lecture seule.
nom "" Titre de la page.
afficher la grille vrai Veuillez afficher la grille sur la carte.
montrer l'obscurité faux Afficher le brouillard de guerre sur la carte.
éclairage de spectacle faux Veuillez utiliser un éclairage dynamique.
largeur 25 Largeur en unités.
hauteur 25 Hauteur en unités.
incrément de déclenchement 1 Taille d'une case de la grille en unités.
opacité de la grille 0.5 Opacité des lignes de la grille.
opacité du brouillard 0.35 Opacité du brouillard de guerre pour le MJ.
couleur_d'arrière-plan #FFFFFF Couleur hexadécimale de l'arrière-plan de la carte.
couleur de grille #C0C0C0 Couleur hexadécimale des lignes de la grille.
type_de_grille "carré" L'un des éléments suivants : « square », « hex » ou « hexr ». (hex correspond à Hex(V) et hexr correspond à Hex(H))
numéro d'échelle 5 La distance d'une unité.
Unités d'échelle « ft » Le type d'unités à utiliser pour l'échelle.
Étiquettes de grille faux Afficher les étiquettes de la grille hexagonale.
type diagonal « quatre » L'un des quatre : « pythagoricien » (euclidien), « trois-cinq » ou « manhattan ».
archivé faux Si la page a été archivée.
lumière actualisée faux Veuillez mettre à jour l'éclairage dynamique uniquement lorsqu'un objet est déposé.
force légère faux Appliquer la ligne de visée pour les objets.
restriction de déplacement faux Veuillez ne pas autoriser les objets dotés d'une vision à traverser les murs à éclairage dynamique.
lumière globale faux Si un jeton peut « voir » quelque part, on suppose qu'il y a une lumière vive présente.
déclencheur de jukebox   Contrôle le Jouer une fois le chargement terminé de la page. Les options disponibles sont «nonestopall » ou l'identifiant de la piste.
dynamic_lighting_enabled faux  
mode_jour_activé faux  
Opacité du mode lumière du jour 1  
mode explorateur « désactivé » Options : « désactivé », « basique »
effet d'obscurité "aucun" Options : « none », « darkfog », « lightfog »

Campagne

Propriété Valeur par défaut Remarques
_id racine Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type "campagne" Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. Veuillez toutefois noter qu'il n'existe qu'un seul objet Campaign, accessible viaCampaign(). À lecture seule.
ordre de passage "" Une chaîne JSON représentant l'ordre des tours. Veuillez consulter ci-dessous.
page d'initiative faux Identifiant de la page utilisée pour le suivi lorsque la fenêtre d'ordre des tours est ouverte. Lorsque cette option estdésactivée, la fenêtre d'ordre des tours se ferme.
identifiant de la page du joueur faux Identifiant de la page sur laquelle le signet du lecteur est défini. Les joueurs voient cette page par défaut, sauf si elle est remplacée par les pages spécifiques aux joueurs ci-dessous.
pages spécifiques aux joueurs faux Un objet (PAS UNE CHAÎNE JSON) au format : {"player1_id": "page_id", "player2_id": "page_id" ... } Tout lecteur défini sur une page dans cet objet remplacera le playerpageid.
dossierjournal "" Une chaîne JSON contenant des données relatives à la structure des dossiers du jeu. À lecture seule.
_jukeboxfolder "" Chaîne JSON contenant des données relatives à la structure de la liste de lecture du Jukebox du jeu. À lecture seule.
couche de premier plan visible vrai Lorsque cette option est activée, les joueurs verront les objets sur le calque de premier plan. Si elles sont fausses, elles ne le feront pas. Remarque : il s'agit d'un paramètre global qui affecte toutes les pages.

 Ordre des tours

L'ordre des tours est une chaîne JSON représentant la liste actuelle des tours. Il s'agit d'un ensemble d'objets. Actuellement, l'ordre des tours ne peut contenir que des objets provenant d'une seule page à la fois. L'ID de page actuel pour l'ordre des tours est l'attribut « initiativepage ». Veuillez vous assurer qu'ils restent synchronisés, sinon vous pourriez obtenir des résultats inattendus.

Pour manipuler l'ordre des tours, il est recommandé d'utiliserJSON.parse()afin d'obtenir un objet représentant l'état actuel de l'ordre des tours (REMARQUE : veuillez d'abord vérifier qu'il ne s'agit pas d'une chaîne vide""... Si c'est le cas, veuillez l'initialiser vous-même avec un tableau vide). Voici un exemple d'objet d'ordre des tours :


    {
     "id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", //L'ID de l'objet graphique. Si cette option est activée, la liste de l'ordre des tours affichera automatiquement le nom et l'icône correspondant à la liste basée sur le graphisme de la table.
     « pr » : « 0 », //Valeur actuelle de l'article dans la liste. Il peut s'agir d'un nombre ou d'un texte.
     « custom » : « » //Titre personnalisé pour l'article. Sera ignoré si l'ID est défini sur une valeur autre que « -1 ».
    },
    {
     "id":"-1", //Pour les articles personnalisés, l'ID DOIT être défini sur "-1" (veuillez noter qu'il s'agit d'une CHAÎNE et non d'un NOMBRE).
     « pr » : « 12 »,
     « custom » : « Test personnalisé » //Nom à afficher pour les articles personnalisés.
    

Pour modifier l'ordre des tours, veuillez modifier l'objet d'ordre des tours actuel, puis utiliserJSON.stringify()pour modifier l'attribut dans la campagne. Veuillez noter que l'ordre des tours dans la liste correspond à l'ordre du tableau. Par exemple,la fonction push()ajoute un élément à la fin de la liste, tandis quela fonction unshift()l'ajoute au début, etc.

var turnorder ;
if(Campaign().get("turnorder") == "") turnorder = []; //REMARQUE : nous vérifions d'abord que turnorder n'est pas simplement une chaîne vide. Si c'est le cas, veuillez le traiter comme un tableau vide.
Sinon, turnorder = JSON.parse(Campaign().get("turnorder"));

//Ajouter une nouvelle entrée personnalisée à la fin de l'ordre des tours.
turnorder.push({
    id: "-1",
    pr: "15",
    custom: "Compteur de tours"
});
Campaign().set("turnorder", JSON.stringify(turnorder));
 

Joueur

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type "joueur" Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
Identifiant utilisateur d20   Identifiant utilisateur — valable sur l'ensemble du site. Par exemple, la page utilisateur du joueur sur le wiki est /User:ID, où ID correspond à la valeur stockée dans _d20userid. À lecture seule.
nom d'affichage "" Pseudonyme actuel du joueur. Peut être modifié depuis la page des paramètres de l'utilisateur. À lecture seule.
en ligne faux À lecture seule.
_lastpage "" L'identifiant de la dernière page consultée par le joueur en tant que MJ. Cette propriété n'est pas mise à jour pour les joueurs ou les MJ qui ont rejoint le jeu en tant que joueurs. À lecture seule.
macrobar "" Chaîne délimitée par des virgules des macros dans la barre de macros du joueur. À lecture seule.
parlant en tant que "" L'identifiant du joueur ou du personnage que le joueur a sélectionné dans le menu déroulant « En tant que ». Lorsque cette option est définie sur une chaîne vide, le joueur s'exprime en tant que lui-même. Lorsqu'il est défini sur un personnage, la valeur est «personnage|ID », où ID correspond à l'identifiant du personnage. Lorsque le MJ parle en tant que joueur, la valeur est «joueur|ID », où ID correspond à l'identifiant du joueur.
couleur #13B9F0 La couleur du carré à côté du nom du joueur, ainsi que la couleur de ses mesures sur la carte, de ses cercles de ping, etc.
Afficher la barre de macros faux Si la barre de macros du joueur est affichée.

Macro

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type "macro" Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
identifiant_joueur   L'identifiant du joueur qui a créé cette macro. À lecture seule.
nom "" Le nom de la macro.
action "" Le texte de la macro.
visible pour "" Liste séparée par des virgules des identifiants des joueurs autorisés à visualiser la macro, en plus du joueur qui l'a créée.

Tous les joueurssont représentés par la mention « tous » dans la liste.

istokenaction faux Cette macro est-elle une Action des jetons qui devrait apparaître lorsque des jetons sont sélectionnés ?

 


Table de jet

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type « table pliante » Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
nom nouvelle table  
afficher les acteurs vrai  

Article du tableau 

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type « élément de tableau » Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
_rollabletableid "" Identifiant de la table à laquelle cet article appartient. À lecture seule.
avatar "" URL de l'image utilisée pour l'article du tableau. Veuillez consulter la remarque ci-dessous concernant les restrictions relatives aux avatars et aux imgsrc.
nom ""  
poids 1 Poids de l'article du tableau par rapport aux autres articles du même tableau. En termes simples, un article ayant un poids de 3 a trois fois plus de chances d'être sélectionné lors d'un tirage au sort qu'un article ayant un poids de 1.

Personnage

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type "personnage" Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
avatar "" URL vers une image utilisée pour le personnage. Veuillez consulter la remarque ci-dessous concernant les restrictions relatives aux avatars et aux imgsrc.
nom ""  
biographie "" La biographie du personnage. Veuillez consulter la remarque ci-dessous concernant l'accès aux champs Notes, GMNotes et Bio.
gmnotes "" Remarques sur le personnage visibles uniquement par le MJ. Veuillez consulter la remarque ci-dessous concernant l'accès aux champs Notes, GMNotes et Bio.
archivé faux  
journaux des joueurs "" Liste séparée par des virgules des identifiants des joueurs autorisés à visualiser ce personnage. Veuillez utiliser « tous » pour doter tous les joueurs de la caractéristique de visualisation.

Tous les joueurssont représentés par la mention « tous » dans la liste.

contrôlé par "" Liste séparée par des virgules des identifiants des joueurs autorisés à contrôler et modifier ce personnage. Veuillez utiliser « tous » pour permettre à tous les joueurs de disposer de la caractéristique de modifier le document.

Tous les joueurssont représentés par la mention « tous » dans la liste.

jeton par défaut "" Chaîne JSON contenant les données relatives au jeton par défaut du personnage, si celui-ci en possède un. Veuillez noter qu'il s'agit d'un « blob » similaire à « bio » et « notes », vous devez donc transmettre une fonction de rappel à get(). À lecture seule.

Attributs

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type "attributs" Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
_characterid "" Identifiant du personnage auquel cet attribut est associé. À lecture seule. Obligatoire lors de l'utilisation decreateObj.
nom "Sans titre"  
actuelle "" La valeur actuelle de l'attribut est accessible dans le chat et les macros avec la syntaxe@{Character Name|Attribute Name}ou dans les capacités avec la syntaxe@{Attribute Name}.
max "" La valeur maximale de l'attribut est accessible dans le chat et les macros avec la syntaxe@{Character Name|Attribute Name|max}ou dans les capacités avec la syntaxe@{Attribute Name|max}.

 Important : veuillez consulter la remarque ci-dessous concernant l'utilisation des feuilles de personnage pour obtenir des informations sur la manière dont les valeurs par défaut des feuilles de personnage influencent l'utilisation des attributs.


Caractéristique

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type "caractéristique" Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
_characterid "" Le personnage auquel appartient cette capacité. À lecture seule. Obligatoire lors de l'utilisation decreateObj.
nom « Sans titre_Capacité »  
description "" La description n'apparaît pas dans l'interface de la feuille de personnage.
action "" Le texte de la caractéristique.
istokenaction faux Cette caractéristique est-elle une action des jetons qui devrait apparaître lorsque les jetons liés à son personnage parent sont sélectionnés ?

Document

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type "document" Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
avatar "" URL vers une image utilisée pour le document distribué. Veuillez consulter la remarque ci-dessous concernant les restrictions relatives aux avatars et aux imgsrc.
nom « Note mystérieuse »  
remarques "" Contient le texte du document distribué. Veuillez consulter la note ci-dessous concernant l'utilisation de Notes et GMNotes.
gmnotes "" Contient le texte du document que seul le MJ peut consulter. Veuillez consulter la note ci-dessous concernant l'utilisation de Notes et GMNotes.
journaux des joueurs "" Liste séparée par des virgules des identifiants des joueurs autorisés à consulter ce document. Veuillez utiliser « tous » pour afficher à tous les joueurs.

Tous les joueurssont représentés par la mention « tous » dans la liste.

archivé faux  
contrôlé par "" Liste séparée par des virgules des identifiants des joueurs autorisés à contrôler et à modifier ce document.

Tous les joueurssont représentés par la mention « tous » dans la liste.

Remarque :L'API n'a pas accès à la hiérarchie des dossiers. Les documents créés par l'API seront placés au niveau racine.


Pont

Veuillez noter qu'il existe des méthodes API d'assistance pour « tirer », « distribuer » ou « mélanger » les cartes du jeu. Veuillez consulterle message publié sur le forum concernant la mise à jour de l'API en mars 2018.

Propriété Valeur par défaut Remarques
_id "" Identifiant du jeu
type pont  
nom "" nom du jeu de cartes
_currentDeck "" Une liste séparée par des virgules des cartes actuellement présentes dans le paquet (y compris celles qui ont été jouées sur table ou dans les mains). Les cartes changent lorsque le jeu est mélangé.
index actuel -1 l'index actuel de notre position dans le jeu, « quelle carte sera tirée ensuite ? »
_currentCardShown vrai afficher la carte actuelle au sommet du paquet
afficher les acteurs vrai présenter le jeu aux joueurs
joueurs peuvent dessiner vrai Les joueurs peuvent-ils piocher des cartes ?
avatar "" le « dos » des cartes de ce jeu
affichée faux Afficher le paquet de cartes sur le plateau de jeu (le paquet est-il actuellement visible ?)
joueurs_cartons_reçus vrai Les joueurs peuvent-ils voir le nombre de cartes que les autres joueurs ont en main ?
joueurs_voir_cartes_face_à_face faux Les joueurs peuvent-ils voir le recto des cartes lorsqu'ils examinent les mains des autres joueurs ?
gm_vuecartes vrai Le MJ peut-il voir le nombre de cartes que chaque joueur a en main ?
gm_seefrontofcards faux Le MJ peut-il voir le recto des cartes lorsqu'il examine la main de chaque joueur ?
infinitecards faux Y a-t-il un nombre infini de cartes dans ce jeu ?
_cardSequencer -1 Utilisé en interne pour faire avancer le jeu lors du tirage des cartes.
cartes jouées « faceup » Comment les cartes de ce jeu sont-elles utilisées sur table ? « face vers le haut » ou « face vers le bas ».
hauteur par défaut "" Quelle est la hauteur par défaut des cartes posées sur la table ?
largeur par défaut ""  
mode de rejet "aucun" Quel type de pile de défausse ce jeu de cartes comporte-t-il ? « none » = pas de pile de défausse, « choosebacks » = permet aux joueurs de voir le dos des cartes et d'en choisir une, « choosefronts » = voir le recto et choisir, « drawtop » = piocher la carte la plus récemment défaussée, « drawbottom » = piocher la carte la plus ancienne défaussée.
_pile-de-rejet "" Quelle est la pile de défausse actuelle pour ce jeu de cartes ? Liste de cartes séparées par des virgules. Il s'agit de cartes qui ont été retirées du jeu et qui ne seront pas remises dans le paquet lors du mélange, à moins qu'un rappel ne soit effectué.

Carte

Propriété Valeur par défaut Remarques
nom "" Nom de la carte
avatar "" Recto de la carte
card_back "" Remplacer l'image au dos de la carte
_deckid "" Identifiant du jeu de cartes
type « carte »  
_id ""  

Main

Veuillez noter que chaque joueur ne doit avoir qu'UNE seule main.

Propriété Valeur par défaut Remarques
main courante "" Liste des cartes actuellement en main, séparées par des virgules. Veuillez noter que ce n'est plus en lecture seule. Idéalement, il ne devrait être ajusté qu'à l'aide des fonctions du jeu de cartes.
type main  
parentid "" Identifiant du joueur auquel appartient la main
_id ""  
vue actuelle « bydeck » Lorsque le joueur ouvre sa main, la vue est-elle « par jeu » ou « par carte » ?

Morceau du Jukebox

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type « jukeboxtrack » Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
joue à faux Booléen utilisé pour déterminer si la piste est en cours de lecture. En définissant cette option sur « true » et softstop sur « false », la piste est lue.
arrêt progressif faux Booléen utilisé pour déterminer si une piste non bouclée a été jouée au moins une fois. Il est nécessaire de définir cette option sur « false » pour garantir la lecture d'une piste.
titre "" L'étiquette visible pour le morceau dans l'onglet jukebox.
volume 30 Le niveau sonore de la piste. Veuillez noter que cette valeur doit être définie sur un nombre entier (et non une chaîne de caractères), sinon vous risquez de perturber le fonctionnement. Valeurs comprises entre 0 et 100 (pourcentage).
en boucle faux La piste doit-elle être mise en boucle ? Veuillez définir cette option sur « true » si tel est le cas.

Effets spéciaux personnalisés

Propriété Valeur par défaut Remarques
_id   Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule.
type « custfx » Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. À lecture seule.
nom "" Le nom visible pour le FX dans la liste FX.
définition {} Objet Javascript décrivant l'effet.

Restrictions relatives aux propriétés imgsrc et avatar

Bien que vous puissiez désormais modifier les propriétésimgsrcetavatar, afin d'assurer la sécurité de tous les utilisateurs de Roll20, nous avons mis en place les restrictions suivantes pour ces propriétés :


À l'avenir, nous pourrions ajouter un outil permettant de télécharger des images spécifiquement destinées à être utilisées avec les scripts Mod (API), mais pour l'instant, veuillez utiliser les images téléchargées dans votre propre bibliothèque. Veuillez noter que si vous supprimez une image de votre bibliothèque, elle sera supprimée de tous les jeux qui utilisent cette image, y compris les jeux utilisant vos scripts Mod (API).


Utilisation des champs Notes, GMNotes et Bio Asynchrone

Afin d'accéder aux champs « notes », « gmnotes » ou « bio » des personnages et des documents, il est nécessaire de passer une fonction de rappel en tant que deuxième argument à la fonction get(). Voici un exemple :

var personnage = getObj("personnage", "-JMGkBaMgMWiQdNDwjjS");
personnage.get("bio", function(bio) {
    log(bio); //effectuer une action avec la biographie du personnage ici.
});

Vous pouvez définir la valeur de ces champs comme d'habitude. Veuillez noter qu'il existe actuellement (à la date du 09/05/2016) un bug avec ces champs asynchrones, qui fait que leur définition en passant des valeurs à createObj échoue silencieusement, laissant l'objet dans un état inhabituel. Il est recommandé de ne définir ces valeurs qu'à l'aide de .set jusqu'à ce que ce problème soit résolu. Informations détaillées sur le forum. Il existe également un bug (au 05/11/2016) qui fait que lorsque l'on tente de définir les propriétés notes et gmnotes dans le même appel set(), la deuxième propriété de l'appel est définie de manière erronée. Informations détaillées sur le forum.


Utilisation des feuilles de personnage

La fonctionnalité Feuilles de personnage influe sur l'utilisation du type d'objet Attributs, car les feuilles permettent de spécifier une valeur par défaut pour chaque attribut de la feuille. Cependant, si l'attribut est défini sur la valeur par défaut, aucun objet Attributs n'a encore été créé dans le jeu pour ce personnage. Nous mettons à votre disposition une fonctionnalité pratique qui vous évite d'avoir à gérer cette complexité. Il est recommandé d'utiliser cette fonction pour obtenir la valeur d'un attribut à l'avenir, en particulier si vous savez qu'un jeu utilise une feuille de personnage.

getAttrByName(identifiant_caractère, nom_attribut, type_valeur)

Veuillez simplement indiquer l'ID du personnage, lenom(et non l'ID) de l'attribut (par exemple « PV » ou « Str »), puis si vous souhaitez obtenir la valeur « actuelle » ou « maximale » pour value_type. Voici un exemple :

var personnage = getObj("personnage", "-JMGkBaMgMWiQdNDwjjS");
getAttrByName(personnage.id, "str"); // la valeur actuelle de str, par exemple "12"
getAttrByName(personnage.id, "str", "max"); //la valeur maximale de str, par exemple « [[floor(@{STR}/2-5)]] »


Veuillez noter que les champs dont les valeurs sont calculées automatiquement renverront la formule plutôt que le résultat de la valeur. Vous pouvez ensuite transmettre cette formule à sendChat() afin que le moteur de dés calcule automatiquement le résultat pour vous.

Veuillez également consulter la feuille de personnage pour plus d'informations sur la manière dont les feuilles de personnage interagissent avec l'API.

getAttrByNamerécupèreuniquementla valeur de l'attribut, et non l'objet attributs lui-même. Si vous souhaitez référencer des propriétés de l'attributs autres que « current » ou « max », ou si vous souhaitez modifier les propriétés de l'attributs, il est nécessaire d'utiliser l'une des autres fonctions ci-dessus, telle quefindObjs.

Si l'attribut demandé n'existe pas,getAttrByName()renverraundefined.


Création d'objets

createObj(type, attributs)

Remarque : actuellement, vous pouvez créer des objets « graphique », « texte », « chemin », « personnage », « capacité », « attributs », « document », « table à dérouler », « élément de table » et « macro ».

Vous pouvez créer un nouvel objet dans le jeu à l'aide de la fonctioncreateObj. Vous devez transmettre le type de l'objet (l'une des propriétés_typevalides de la liste d'objets ci-dessus), ainsi qu'un objetattributscontenant une liste de propriétés pour l'objet. Veuillez noter que si l'objet possède un objet parent (par exemple, les attributs et les capacités appartiennent aux personnages, les graphiques, les textes et les chemins appartiennent aux pages, etc.), il est nécessaire de transmettre l'ID du parent dans la liste des propriétés (par exemple, il est nécessaire d'inclure la propriétécharacteridlors de la création d'un attribut). Veuillez également noter que même lors de la création de nouveaux objets, il n'est pas possible de définir des propriétés en lecture seule ; celles-ci seront automatiquement définies sur leur valeur par défaut. La seule exception à cette règle concerne la création d'un chemin. Vous devez inclure la propriété « path », mais celle-ci ne peut pas être modifiée une fois le chemin initialement créé.

createObjrenverra le nouvel objet, vous permettant ainsi de continuer à l'utiliser.

Créer un nouvel attribut Force pour tous les personnages ajoutés au jeu.
on("add:personnage", function(obj) {
    createObj("attribute", {
        name: "Force",
        current: 0,
        max: 30,
        characterid: obj.id
    });
});

Suppression d'objets

objet.supprimer()

Remarque : actuellement, vous pouvez supprimer les objets « graphique », « texte », « chemin », « personnage », « capacité », « attribut », « document », « table déroulante », « élément de table » et « macro ».

Vous pouvez supprimer des objets de jeu existants à l'aide de la fonction.remove(). La fonction .remove() s'applique à tous les objets que vous pouvez créer à l'aide de la fonction createObj. Vous appelez la fonction directement sur l'objet. Par exemple,mycharacter.remove();.


Objets globaux

Il existe plusieurs objets qui sont disponibles globalement partout dans votre script.

Campagne() (fonction)

Une fonction qui renvoie l'objetCampagne. Étant donné qu'il n'existe qu'une seule campagne, cette variable globale fait toujours référence à la seule campagne du jeu. Utile pour vérifier si un objet se trouve sur la page active à l'aide deCampaign().get("playerpageid").


état

La variabled'étatest un objet dans la portée globale accessible à tous les scripts exécutés dans un jeu. Vous pouvez accéder à l'objetstateà partir de n'importe quelle fonction ou rappel à tout moment en utilisant simplement la variable globale nomméestate. De plus, l'objetd'étatest conservé entre les exécutions du Bac à sable, vous pouvez donc l'utiliser pour stocker les informations dont vous aurez besoin lors des prochaines exécutions de votre script.

Remarque :il est recommandé d'utiliser l'objet d'état pour stocker les informations qui ne sont nécessaires qu'à l'API, car elles ne sont pas envoyées aux ordinateurs des joueurs et n'augmentent pas la taille de votre fichier de jeu. Veuillez enregistrer les valeurs nécessaires au jeu dans les propriétés des objets Roll20.

Types stockables

L'objetd'étatne peut conserver que des types de données simples, tels que pris en charge par le format JSON. norme JSON .

Type Exemples Description
Booléen vraifaux La valeur «vrai» ou «faux ».
Numéro  123,5101,23e20 Tout format numérique pris en charge par Javascript. Virgule flottante ou entier.
Chaîne Bonjour Fantaisie, « oh, et Monde » Une chaîne de texte standard.
Tableau [1, 2, 3, 4][« A », « B », « C »][1, 2, [« bob », 3], 10, 2,5] Une collection ordonnée de n'importe quel type, y compris d'autres tableaux.
Objet { key: 1, value: 'roll20' } Un objet clé/valeur simple avec des clés de type chaîne et n'importe quel type comme valeur, y compris d'autres objets.

Avertissement :bien que les fonctions semblent fonctionner lorsqu'elles sont initialement stockées dans l'état, elles disparaîtront lors de la première restauration del'étatà partir de la persistance, par exemple lors du redémarrage d'un bac à sable.

  • Remarque :cela inclut les objets Roll20 que vous obtenez à partir d'événements ou des fonctionsfindObjs(),getObj(),filterObjs(),createObj(), etc.

Rappels importants

L'objetd'étatest partagé entre tous les scripts d'un bac à sable. Afin d'éviter de perturber le fonctionnement d'autres scripts, il est important de respecter quelques consignes simples :

  • Ne jamais n'assignez jamais directement à l'objetd'étatracine.
état = { break: 'all the things' }; // Veuillez ne jamais procéder ainsi.

 

  • Veuillez éviter d'utiliser des variables locales nommées « state » dans vos scripts. d'utiliser des variables locales nommées «state» dans vos scripts. Bien que cela fonctionne, cela pourrait prêter à confusion pour les utilisateurs ultérieurs de vos scripts et entraîner des problèmes si le code est modifié de manière imprudente.
function turn(){
    var state = Campaign().get('turnorder');  // Mauvaise pratique, à éviter !
    // ...
}

 

  • Veuillez toujours placez vos propriétés sous au moins une propriété d'espace de noms. Veuillez vous assurer d'utiliser une propriété d'espace de noms suffisamment descriptive. Veuillez éviter les noms tels quescriptouparamètres. Il est préférable d'utiliser soit le nom de votre module, soit votre propre nom ou pseudonyme.
si( ! state.MyModuleNamespace ) {
    state.MyModuleNamespace = { module: 'mon module', ok: 'tout est en ordre !', count: 0 };
}
state.MyModuleNamespace.count++;

Exemple d'utilisation

Voici un exemple fonctionnel qui utilise correctement l'objetd'état.

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

    // Vérifier si la propriété namespaced existe, la créer si ce n'est pas le cas
    if( ! state.MyModuleNS ) {
        state.MyModuleNS = {
            version: 1.0,
            config: {
                color1: '#ff0000',
                color2: '#0000ff'
            },
            count: 0
        };
    }

    // Utilisation des propriétés d'état pour configurer un message à envoyer au chat. 
    sendChat(
        'Module de test',
        '<span style="color: '+state.MyModuleNS.config.color1+';">'+
            'Test d'état'+
        '</span> '+
        '<span style="color: '+state.MyModuleNS.config.color2+';">'+
            'Script v'+state.MyModuleNS.version+' démarré '+(++state.MyModuleNS.count)+' fois !'+
        '</span>'
    );
});

Recherche/filtrage d'objets

L'API fournit plusieurs fonctions d'aide qui peuvent être utilisées pour rechercher des objets.

getObj(type, id)
Cette fonction récupère un seul objet si le _type de l'objet et le _id sont transmis. Il est préférable d'utiliser cette fonction plutôt que les autres fonctions de recherche lorsque cela est possible, car c'est la seule qui ne nécessite pas de parcourir l'ensemble de la collection d'objets.

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

 


findObjs(attributs)

Transmettez à cette fonction une liste d'attributs, et elle renverra tous les objets correspondants sous forme de tableau. Veuillez noter que cela s'applique à tous les objets de tous types sur toutes les pages. Par conséquent, il est recommandé d'inclure au moins un filtre pour _type et _pageid si vous travaillez avec des objets sur table.

var currentPageGraphics = findObjs({                              
  _pageid: Campaign().get("playerpageid"),                              
  _type: "graphic",                          
});
_.each(currentPageGraphics, function(obj) {    
  //Effectuer une action avec obj, qui se trouve dans la page actuelle et est un élément graphique.
});

Vous pouvez également transmettre un deuxième argument facultatif contenant un objet avec une liste d'options, notamment :

  • caseInsensitive(vrai/faux) : si vrai, les propriétés de chaîne seront comparées sans tenir compte de la casse de la chaîne.
var targetTokens = findObjs({
    name: "target"
}, {caseInsensitive: true});
//Renvoie tous les jetons dont le nom est « target », « Target », « TARGET », etc.

filterObjs(callback)

Exécutera la fonction de rappel fournie sur chaque objet, et si le rappel renvoie la valeur true, l'objet sera inclus dans le tableau de résultats. Actuellement, il est déconseillé d'utiliser filterObjs() dans la plupart des cas. Étant donné que findObjs() dispose d'un index intégré pour une meilleure vitesse d'exécution, il est presque toujours préférable d'utiliser findObjs() pour obtenir d'abord les objets du type souhaité, puis de les filtrer à l'aide de la méthode native .filter() pour les tableaux.

var results = filterObjs(function(obj) {    
  if(obj.get("left") < 200 && obj.get("top") < 200) return true;    
  else return false;
});
//Results est un tableau contenant tous les objets situés dans le coin supérieur gauche de la sur table.

obtenirTousLesObjets()

Renvoie un tableau contenant tous les objets du jeu (tous types confondus). Équivaut à appeler filterObjs et à renvoyer simplementtruepour chaque objet.


getAttrByName(identifiant_caractère, nom_attribut, type_valeur)

Récupère la valeur d'un attribut, en utilisant la valeur par défaut de la feuille de personnage si l'attribut n'est pas présent. value_typeest un paramètre facultatif que vous pouvez utiliser pour spécifier « current » ou « max ».

getAttrByNamerécupèreuniquementla valeur de l'attribut, et non l'objet attributs lui-même. Si vous souhaitez référencer des propriétés de l'attributs autres que « current » ou « max », ou si vous souhaitez modifier les propriétés de l'attributs, il est nécessaire d'utiliser l'une des autres fonctions ci-dessus, telle quefindObjs.

Pour les Sections répétitives, vous pouvez utiliser le formatsection_répétitive_$n_attribute, oùncorrespond au numéro de ligne répétitive (en commençant par zéro). Par exemple,repeating_spells_$2_namerenverra la valeur denameà partir de la troisième ligne derepeating_spells.

Vous pouvez obtenir un comportement équivalent àgetAttrByName en utilisantce qui suit :

// current et max dépendent entièrement de l'attribut et du système de jeu
// en question ; il n'existe aucune fonction permettant de les déterminer automatiquement
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 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');
    }
}
Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 22 sur 24