obj.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' |
|
| 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' |
|
| 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 :
- Veuillez utiliser un fichier image qui a été téléchargé dans votre bibliothèque Roll20, et non à partir d'un site externe (tel qu'Imgur) ou du Roll20 Marketplace. Il commencera par« https://s3.amazonaws.com/files.d20.io/images/ »pour les images téléchargées sur le serveur principal, ou« https://s3.amazonaws.com/files.staging.d20.io/images/ »pour les images téléchargées sur le serveur de développement. Vous pouvez consulter l'URL source d'une image à l'aide des outils de développement de votre navigateur.
- Il est nécessaire d'inclure la chaîne de requête dans l'URL, par exemple« https://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png?12345678 », et non simplement «https://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png ».
- Pour les objets graphiques (jetons), il est nécessaire d'utiliser la taille « miniature » de l'image. Cela devrait ressembler à «https://s3.amazonaws.com/files.staging.d20.io/images/123456/thumb.png?12345678 ».
À 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 fonctions
findObjs(),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'objet
d'é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 que
scriptouparamè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');
}
}