Il existe plusieurs types d'objets utilisés dans les scripts de mod. Voici un bref aperçu de chacun d'entre eux, de leur nature et des 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 (_) sont en lecture seule et ne peuvent pas être modifiées. Vous devez accéder aux propriétés des objets à l'aide de la syntaxe `obj.get("propriété")` et définir de nouvelles valeurs à l'aide de `obj.set("propriété", nouvelle_valeur) ` ou `obj.set({propriété : nouvelle_valeur, propriété2 : nouvelle_valeur2})`.
Remarque : la propriété « id » d'un objet correspond à un identifiant unique au niveau global : aucun objet ne doit en posséder un identique à un autre, même parmi des types d'objets différents. De plus, étant donné que l'identifiant d'un objet est fréquemment utilisé et ne change jamais, il existe un raccourci vous permettant d'y accéder en utilisant « obj.id » au lieu de « obj.get("_id") » si vous le souhaitez (les deux méthodes fonctionnent).
Uniquement pour le script Mod Bac à sable v1.5. Les objets prennent également en charge la propriété `obj.type`, qui équivaut à `obj.get("type") ` ou `obj.get("_type")`.
if ('graphic' === obj.type) {
// effectuer une action
}
Pathv2 (disponible sur la dernière version du moteur VTV)
| Propriété | Valeur par défaut | Notes |
|---|---|---|
_id |
Identifiant unique pour cet objet. Unique au monde parmi tous les objets de ce jeu. À lecture seule. | |
type |
« pathv2 » |
Peut être utilisé pour identifier le type d'objet ou rechercher l'objet. En 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 tracé s'affiche sous forme de polyligne, de tracé à main levée, 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. Utilisez 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 : « gmlayer », « objects », « Carte », « walls » ou « foreground ». Les motifs sur les murs sont des calques qui font obstacle à 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. La mention « Tous les joueurs » signifie que tous figurent dans la liste. |
Type de barrière |
"mur" |
Les options de type « barrière d’éclairage dynamique » comprennent « mur », « oneWay » et « transparent ».
|
oneWayReversed |
faux |
booléen |
fonduEnTransition |
vrai |
Lorsque cette option est activée, tout chevauchement entre le contour intérieur d'un élément graphique d'un calque d'objet et l'objet du calque de premier plan entraînera la modification de son opacité, qui prendra la valeur définie 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 élément graphique situé sur le calque de l'objet et que le paramètre « fadeOnOverlap » est défini sur « true » |
Rendre en tant que décor |
false |
Si cette option est activée, cet objet sera masqué par l'éclairage dynamique et le masque. |
interactionRéinitialisation manuelle |
false |
Lorsque cette option est activée, elle réinitialise les interactions sur l'objet. |
interaction déclenchée |
faux |
Cette valeur sera définie sur « true » lorsqu'une interaction sera déclenchée. |
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 reliant (0,0) à (0,70), puis à (70,0), avant de revenir à (0,0) serait représenté par [[0,0],[0,70],[70,0],[0,0]]. Les propriétés x et y permettent 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 tracés à main levée), vous devrez déterminer les valeurs minimale et maximale à partir de la propriété « points » et utiliser le point situé à égale distance entre ces deux valeurs.
Uniquement pour le script Mod Bac à sable v1.5. Méthodes d'instance : toFront(), toBack(), toAbove(cible), toBelow(cible). La cible peut être un objet graphique, un objet texte, un objet « path » ou « pathv2 », ou encore l'identifiant d'un tel objet.
Chemin (Sur table)
| 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 |
"chemin" |
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. | |
_chemin |
Tableau JSON contenant des commandes de dessin. Chaque commande se présente sous la forme [« M », x, y) ou [« L », x, y) (déplacement ou ligne), ou [« C », ...) pour une courbe. x et y correspondent aux décalages par rapport au coin supérieur gauche du tracé. Indiquez le chemin d'accès lors de la création. En lecture seule par la suite. |
|
remplir |
"transparent" |
Couleur de remplissage. Utilisez 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 : « gmlayer », « objects », « Carte », « walls » ou « foreground ». Les motifs sur les murs sont des calques qui font obstacle à 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. La mention « Tous les joueurs » signifie que tous les joueurs figurent dans la liste. |
Type de barrière |
"mur" |
Les options de type « barrière d'éclairage dynamique » comprennent « mur », « oneWay » et « transparent ».
|
oneWayReversed |
faux |
booléen |
fonduEnTransition |
vrai |
Lorsque cette option est activée, tout chevauchement entre le contour intérieur d'un élément graphique d'un calque d'objet et l'objet du calque de premier plan entraînera la modification de son opacité, qui prendra la valeur définie 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 élément graphique situé sur le calque de l'objet et que le paramètre ` 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. |
interactionRéinitialisation manuelle |
faux |
Lorsque cette option est activée, elle réinitialise les interactions sur l'objet. |
interaction déclenchée |
faux |
Cette valeur sera définie sur « true » lorsqu'une interaction sera déclenchée. |
Transmettez le chemin (enregistré sous le nom _path) lors de la création d'un chemin classique. Le format est décrit dans la ligne _path ci-dessus.
Uniquement pour le script Mod Bac à sable v1.5. Méthodes d'instance : toFront(), toBack(), toAbove(target), toBelow(target). La cible peut être un objet graphique, un texte, un tracé ou un objet « pathv2 », ou encore l'identifiant d'un tel objet.
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. |
pageid |
Page à laquelle appartient cette fenêtre. Veuillez passer le « pageid » lors de la création. En lecture seule par la suite. |
|
couleur |
« #ff0000 » |
Une couleur hexadécimale de la fenêtre. |
x |
0 |
Coordonnées du centre de la fenêtre sur l'axe x. |
y |
0 |
Coordonnées du centre de la fenêtre 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 |
Deux poignées, « handle0 » et « handle1 », chacune avec des coordonnées x et y. Ces coordonnées correspondent à des décalages par rapport aux coordonnéesx et y de cet objet, sur le même axe y inversé. |
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
});
}
si (msg.type === 'api' && msg.content === '!dw') {
const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
win.remove();
}
});
Porte
Remarque : les fenêtres et les portes utilisent un axe inversé par rapport aux autres types d'objets. Par exemple, une variable « top » qui prendrait la valeur 100 pour un autre objet vaut « 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. |
pageid |
Page à laquelle appartient cette porte. Veuillez passer le « pageid » lors de la création. En lecture seule par la suite. |
|
couleur |
"" |
Une couleur en hexadécimal pour la porte. |
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 |
Deux poignées, « handle0 » et « handle1 », chacune avec des coordonnées x et y. Ces coordonnées correspondent à des décalages par rapport aux coordonnéesx et y de cet objet, sur le même axe y inversé. |
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 modifierez ultérieurement la valeur de la propriété « text », la taille de la police sera réduite à 8. Valeurs possibles (sans distinction de majuscules/minuscules) : 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, objets, carte, murs ou premier plan. |
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. La mention « Tous les joueurs » signifie que tous figurent dans la liste. |
fonduEnTransition |
vrai |
Lorsque cette option est activée, tout chevauchement entre le contour intérieur d'un élément graphique d'un calque d'objet et l'objet du calque de premier plan entraînera la modification de son opacité, qui prendra la valeur définie 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 élément graphique situé sur le calque de l'objet et que le param ètre `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. |
interactionRéinitialisation manuelle |
faux |
Lorsque cette option est activée, elle réinitialise les interactions sur l'objet. |
interaction déclenchée |
faux |
Cette valeur sera définie sur « true » lorsqu'une interaction sera déclenchée. |
Uniquement pour le script Mod Bac à sable v1.5. Méthodes d'instance : toFront(), toBack(), toAbove(target), toBelow(target). La cible peut être un objet graphique, un texte, un tracé, un objet « pathv2 » ou l'identifiant d'un tel objet.
Épingles
L'objet « pin » représente les repères de carte, c'est-à-dire des marqueurs interactifs qui s'affichent directement sur la carte. Les épingles peuvent afficher des images, présenter des infobulles, contenir des Notes du MJ et être associées à des Documents dans votre Journal. Ils peuvent être visibles ou cachés, permettant ainsi des révélations spectaculaires, éclairant un lieu découvert, ou peuvent être utilisés comme marqueurs d'information pour un jeu plus interactif. Vous trouverez des informations supplémentaires sur les épingles dans le centre d’aide.
| Propriété | Valeur par défaut | Remarques |
|---|---|---|
_id |
Un identifiant unique, comme les autres objets Roll20. À lecture seule. | |
type |
épingle |
Le type de broche. À lecture seule. |
_pageid |
"" |
L'identifiant de la page à laquelle cette épingle est associée. À lecture seule. |
x |
0 |
La coordonnée X de l'épingle sur la page. |
y |
0 |
La coordonnée Y de l'épingle sur la page. |
bgColor |
N° 242424 |
Couleur d'arrière-plan de l'épingle (code hexadécimal ou transparent). Prend en charge les chaînes de couleur HTML #RRGGBB ou #RRGGBBAA (translucidité). |
forme |
« larme » |
Forme de la broche. Les valeurs autorisées sont : « teardrop », « circle », « diamond » et « square »
|
icône |
« point de base » |
Icône intégrée lorsque « customizationType » est défini sur « icon »
|
pinImage |
"" |
URL de l'image affichée lorsque « customisationType » est défini sur « image »
|
Type de personnalisation |
« icône » |
Détermine si le repère affiche l'icône ou l'image du repère. Veuillez définir `pinImage` sur une URL d'image valide lorsque vous utilisez `customizationType: image`. Le fait de basculer entre « icon » et « image » dans le paramètre « customizationType » n'efface pas la variable « pinImage »; l'URL est conservée. |
utiliserIcôneTexte |
faux |
Lorsque la valeur de useTextIcon est « true », la broche affiche une étiquette de texte à la place d'une icône ou d'une image. Cette étiquette est extraite de « iconText » ; seuls les 3 premiers personnages sont affichés |
Texte de l'icône |
"" |
Libellé (les 3 premiers personnages sont utilisés) lorsque useTextIcon est défini sur « true » |
taille de l'image de l'info-bulle |
"moyenne" |
Taille de l'image dans l'infobulle de l'épingle. Les valeurs autorisées sont : small, medium, large, xl
|
uRL |
"" |
Identifiant du document vers lequel renvoie ce lien. Le paramètre « linkType » n'accepte que les valeurs « Document » ou « ». |
type de lien |
"" |
Le type d'objet lié. Valeurs valides : Document, « » (chaîne vide). |
sous-lien |
"" |
Texte d'en-tête vers lequel vous devez vous rendre dans le document joint. À utiliser avec subLinkType (headerPlayer ou headerGM). |
subLinkType |
"" |
Le type de sous-lien. Valeurs valides : headerPlayer, headerGM, « » (chaîne vide). |
titre |
"" |
Le texte du titre affiché sur l'épingle. |
remarques |
"" |
Une chaîne de caractères ordinaire. Il ne s'agit d'aucun des champs de type « personnage » ou « blob » des documents distribués. |
gmNotes |
"" |
Chaîne de caractères standard, réservée au MJ. Il ne s'agit ni d'un champ de type « caractère » ni d'un champ de type « blob » de type « Document ». |
Image d'info-bulle |
"" |
Identifiant d'image Roll20 pour l'image d'info-bulle affichée sur l'épingle. |
visibleTo |
"" |
Tout le monde peut voir la broche. « » le cache aux joueurs. |
autoNotesType |
"" |
Format pour les notes générées automatiquement. Valeurs valides : « » (chaîne vide), blockquote. |
tooltipVisibleTo |
tout |
Contrôle qui peut visualiser l'info-bulle. Valeurs valides : all, "" (chaîne vide). |
tooltipTitleVisibleTo |
tout |
Contrôle qui peut visualiser le titre de l'info-bulle. Valeurs valides : all, "" (chaîne vide). |
plaque signalétique visible par |
tout |
Contrôle qui peut visualiser le nom. Valeurs valides : « all », « » (chaîne vide). |
imageVisibleTo |
tout |
Contrôle qui peut visualiser l'image. Valeurs valides : all, "" (chaîne vide). |
notesVisiblesPour |
tout |
Contrôle qui peut consulter les notes. Valeurs valides : all, "" (chaîne vide). |
gmNotesVisibleTo |
tout |
Contrôle qui peut consulter les notes du MJ. Valeurs valides : « all », « » (chaîne vide). |
échelle |
1.0 |
Facteur d'échelle pour la broche. Doit être compris entre 0,25 et 2,0. |
image désynchronisée |
faux |
Si l'image de l'épingle est désynchronisée par rapport à l'objet auquel elle est associée. La modification d'une propriété désynchronisée définit les trois propriétés sur la même valeur. |
notes désynchronisées |
faux |
Si les notes associées à l'épingle sont désynchronisées par rapport à l'objet auquel elle est liée. La modification d'une propriété désynchronisée définit les trois propriétés sur la même valeur. |
gmNotesDesynced |
faux |
Si les notes du MJ de la broche sont désynchronisées par rapport à l'objet auquel elle est associée. La modification d'une propriété désynchronisée définit les trois propriétés sur la même valeur. |
Remarque 1 : Si vous souhaitez utiliser du contenu personnalisé dans les épingles (pour remplacer l'image, les notes et les Notes du MJ de Document), vous devez définir au moins l'une des propriétés « désynchronisées » sur « true » (ce qui les activera toutes).
Remarque 2 : Valeurs d'icônes valides : base-dot, base-castle, base-skullSimple, base-spartanHelm, base-radioactive, base-heart, base-star, base-starSign, base-pin, base-speechBubble, base-file, base-plus, base-circleCross, base-dartBoard, base-badge, base-flagPin, base-crosshair, base-scrollOpen, base-diamond, base-photo, base-fourStarShort, base-circleStar, base-lock, base-crown, base-leaf, base-signpost, base-beer, base-compass, base-video, clé-de-base, coffre-de-base, village-de-base, épée-vers-le-haut-de-base, maison-de-base, maison-de-base2, église-de-base, bâtiment-administratif-de-base, forgeron-de-base, écurie-de-base, engrenage-de-base, pont-de-base, montagne-de-base, point-d’exclamation-de-base, point-d’interrogation-de-base.
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" |
Il peut s'agir d'un jeton (jetons et cartes), d'une carte ou d'un jeton-dé. À 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 du 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 |
||
bar4_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 : « gmlayer », « objets », « Carte », « murs » ou « premier plan ». |
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 |
"" |
Notes réservées au MJ. Une chaîne synchrone, souvent du code HTML encodé en URL (elle peut commencer par %3Cou%3E). Il ne s'agit pas d'un champ de type « blob » de caractères ou de données brutes. |
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. La mention « Tous les joueurs » signifie que tous figurent 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 |
"" |
|
bar4_value |
"" |
|
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 |
"" |
|
bar4_max |
"" |
|
rayon de l'aura |
"" |
Rayon de l'aura, exprimé dans 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 de l'aura. |
aura2_couleur |
#59E594 |
|
aura1_options |
« cercle » |
Définit la forme d'une aura. Les options valides sont « circle » ou « square ». Remarque : synchronisation assurée avec aura1_square
|
aura2_options |
« cercle » |
Définit la forme d'une aura. Les options valides sont « circle » ou « square ». Remarque : synchronisé avec aura2_square
|
aura1_carré |
faux |
L'aura est-elle un cercle ou un carré ? |
aura2_carré |
faux |
|
couleur de teinte |
"transparent" |
Couleur en hexadécimal, ou transparente. Permet de modifier la couleur du graphique. |
indicateurs de statut |
"" |
Une liste, séparée par des virgules, des indicateurs d'état actuellement actifs. Les marqueurs personnalisés utilisent la balise « nom::id » issue de Campaign _token_markers. Veuillez consulter les remarques ci-dessous. |
nom affiché |
faux |
Si le nom du jeton est visible. |
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_bar4 |
false |
|
showplayers_aura1 |
faux |
Afficher l'aura 1 à tous les joueurs. |
afficher les acteurs_aura2 |
faux |
|
Modifier le nom du joueur |
vrai |
Permettez aux joueurs aux commandes de modifier le nom du jeton. Affiche également le nom du personnage aux joueurs qui contrôlent le jeu, même si le paramètre ` showplayers_name` est défini sur « false ». |
playersedit_bar1 |
vrai |
Permettez aux joueurs aux commandes de modifier la barre 1 du jeton. Affiche également la barre 1 aux joueurs contrôlant le jeu, même si la variable « showplayers_bar1 » est définie sur « false ». |
playersedit_bar2 |
vrai |
|
playersedit_bar3 |
vrai |
|
playersedit_bar4 |
vrai |
|
bar1_num_permission |
"" |
Définissez le mode d'affichage de la superposition « bar1 ». Valeurs valides : tout le monde, masqué. « » signifie que seuls les rédacteurs verront cette valeur |
bar2_num_permission |
"" |
|
bar3_num_permission |
"" |
|
bar4_num_permission |
"" |
|
playersedit_aura1 |
vrai |
Permettez aux joueurs qui contrôlent le jeton de modifier son aura n° 1. Affiche également l'Aura 1 aux joueurs contrôlant le jeu, même si la variable « showplayers_aura1 » est définie sur « false ». |
playersedit_aura2 |
vrai |
|
rayon de lumière |
"" |
OBSOLÈTE Éclairage dynamique classique : rayon de lumière intense. Voir « bright_light_distance ». |
rayon_lumineux |
"" |
OBSOLÈTE Éclairage dynamique classique : 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 indiquée par light_radius. Si la paramètre « light_dimradius » est défini, le jeton émettra une lumière intense jusqu'à la valeur « light_dimradius », puis une basse lumière à partir de ce point jusqu'à la valeur « light_radius ». Veuillez vous reporter à la section « low_light_distance » de la documentation sur l'Éclairage dynamique |
lumière_autresjoueurs |
faux |
OBOLÉ: Éclairage dynamique classique : affiche la lumière de ce jeton à tous les joueurs. Il ne s'agit pas de « has_night_vision ». |
lumière_hassight |
false |
Obsolète: Éclairage dynamique classique : cette source lumineuse permet aux joueurs qui la contrôlent de bénéficier d’une ligne de vue pour appliquer la règle de la ligne de vue. Voir « has_bright_light_vision ». |
angle de lumière |
« 360 » |
OBOLÉ: Éclairage dynamique classique : angle en degrés. Le 180 éclaire la moitié avant du champ. Voir « has_directional_bright_light », « directional_bright_light_center » et « directional_bright_light_total ». |
lumière_losangle |
« 360 » |
OBSOLÈTE Éclairage dynamique classique : angle (en degrés) du champ de vision du graphique (en supposant que la variable `light_hassight` soit définie sur `true`). Voir `has_limit_field_of_vision`, `limit_field_of_vision_center` et `limit_field_of_vision_total` dans la documentation sur l'éclairage dynamique. |
côtés |
"" |
Liste d'images secondaires séparées par des barres verticales. Chaque entrée est encodée en URL. Séparez à l'aide de |, puis décodez à l'aide de la fonction decodeURIComponent. |
côté courant |
0 |
Répartissez-les sur les côtés. Uniquement pour le script Mod Bac à sable v1.5. La définition de « currentSide » met automatiquement à jour « imgsrc », y compris les images du Marketplace. Si la même méthode .set() contient également une valeur imgsrc valide, c'est cette dernière qui est utilisée à la place. |
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 aux coordonnées gauche = 300, haut = 400. On part toujours du principe que les valeurs actuelles « haut » et « gauche » du jeton correspondent au « point d'arrivée » 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é à la position gauche = 300, haut = 400, puis a défini un point de passage à gauche = 350, haut = 450, un autre point de passage à gauche = 400, haut = 500, avant de terminer son déplacement à ses coordonnées actuelles (haut + gauche). |
multiplicateur de lumière |
« 1 » |
Multiplicateur d'éclairage dynamique classique, OBSOLÈTE. 1 correspond à une vision normale. L'éclairage dynamique actuel utilise le paramètre « light_sensitivity_multiplier », dont la valeur normale est 100. |
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_de_vision_nocturne |
null |
Effet de vision nocturne. « null » est l'effet par défaut. Parmi les autres valeurs, on trouve « Dimming » et « Nocturnal ». |
emplacement du bar |
null |
L'emplacement des barres de jeton. « null » correspond au placement par défaut. Autres valeurs : overlap_top, overlap_bottom, bottom. |
compact_bar |
null |
Style « bar ». La valeur par défaut est « null ». La fonction « compact » utilise la barre « compact ». |
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, tout chevauchement entre le contour intérieur d'un élément graphique d'un calque d'objet et l'objet du calque de premier plan entraînera la réduction de son opacité à la valeur définie dans `fadeOpacity`. Si cette valeur est fausse, l'opacité restera fixée à sa valeur « baseOpacity », quel que soit le chevauchement. |
opacité de fondu |
.3 |
Cette valeur détermine l'opacité de l'objet lorsqu'il est recouvert par un élément graphique situé sur le calque de l'objet et que le paramètre ` 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 |
Opacité initiale de l'élément graphique, quel que soit le calque. |
interactionRéinitialisation manuelle |
faux |
Lorsque cette option est activée, elle réinitialise les interactions sur l'objet. |
interaction déclenchée |
faux |
Cette valeur sera définie sur « true » lorsqu'une interaction sera déclenchée. |
Propriétés actuelles de l'éclairage dynamique (en plus des champs light_* classiques mentionnés ci-dessus) :
| Propriété | Par défaut |
|---|---|
a_une_vision_dans_la_lumière_intense |
faux |
dispose_d'une_vision_nocturne |
faux |
teinte_vision_nocturne |
null |
distance_de_vision_nocturne |
0 |
émet_une_lumière_intense |
faux |
distance_lumière_intense |
0 |
emits_low_light |
faux |
low_light_distance |
0 |
opacité_lumière_faible |
0 |
lightColor |
"transparent" |
has_limit_field_of_vision |
faux |
limite_du_champ_de_vision_central |
0 |
champ_visuel_total_limite |
0 |
a-t-il-un-champ-limité-de-vision-nocturne |
faux |
limite_du_champ_de_vision_nocturne_central |
0 |
limite_champ_de_vision_nocturne_total |
0 |
has_directional_bright_light |
faux |
lumière_directionnelle_intense_au_centre |
0 |
lumière_directionnelle_intense_totale |
0 |
has_directional_dim_light |
faux |
lumière_diffuse_directionnelle_centre |
0 |
lumière_diffuse_directionnelle_totale |
0 |
infobulle |
"" |
afficher_l'info-bulle |
faux |
gm_only_tooltip |
faux |
renderAsDarkness |
faux |
Uniquement pour le script Mod Bac à sable v1.5. La définition de « currentSide » met automatiquement à jour « imgsrc »:
const setRandomSide = (obj) => {
if ('graphic' === obj.type) {
obj.set({
currentSide: randomInteger(obj.get('sides')?.split('|').length ?? 1) - 1
});
}
};
Uniquement pour le script Mod Bac à sable v1.5. Méthodes illustrées :
-
createCopy(properties)— effectue une copie comme le feraitla fonction createObj, y compris les éléments «imgsrc» et «sides »du Marketplace. Renvoie le nouveau graphique. -
toFront(),toBack(),toAbove(target),toBelow(target)— identiques aux fonctions globales.La ciblepeut être un objet ou un identifiant.
obj.createCopy({ pageid, calque, left: x, top: y });
Exemple d'icônes de jeton
La liste des marqueurs disponibles dans l'ensemble du jeu est : Campaign().get('_token_markers'). Chaque entrée se présente comme suit :
{
"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 effectivement référencé
// cela inclura l'identifiant des marqueurs personnalisés, mais pas
// celui des 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 champ « controlledby » du jeton est remplacé par celui du personnage. Pour les barres de jeton (par exemple,bar1_value et bar1_max) où le jeton est lié à un attribut (par exemple, lorsquebar1_link est défini), le fait d'attribuer une valeur à la barre mettra automatiquement à jour les valeurs actuelle et/ou maximale de l'attribut sous-jacent ; vous n'avez donc pas besoin de les définir manuellement toutes les deux. De plus, lorsque l'attribut (ou la barre de jeton) est modifié en jeu, vous entendrez un événement « change:attribute » (et un événement spécifique à la propriété, par exemple« change:attribute:current »), suivi d'un événement « change:graphic » (et d'un événement « change: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 de statut: depuis le 6 août 2013, la manière dont sont gérés les indicateurs de statut sur les jetons a changé. La propriété « statusmarkers » de l'objet Graphic est désormais une liste, séparée par des virgules, de toutes les couleurs et icônes des marqueurs d'état qui doivent être actifs 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 ou une couleur d'état est suivie du symbole « @ », le nombre figurant 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 garantir la compatibilité ascendante avec les scripts existants et de vous offrir un moyen simple d'utiliser les marqueurs d'état sans avoir à écrire de code pour gérer vous-même le fractionnement et l'analyse de la chaîne, nous mettons à votre disposition un ensemble de propriétés virtuelles sur l'objet que vous pouvez définir ou consulter pour travailler avec les marqueurs d'état. Chaque marqueur d'état dispose d'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 ; vous devez donc utiliser « change:graphic:statusmarkers » pour détecter les modifications apportées aux marqueurs d'état d'un jeton. Par exemple, « change:graphic:status_red » n'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. La chaîne stockée comporte souvent une virgule à la fin ; supprimez les segments vides lorsque vous la divisez. Les méthodes « toFront » et « toBack » réorganisent 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 |
ÉCLATÉ: Éclairage dynamique classique : pour utiliser l'éclairage dynamique, consultez la section « dynamic_lighting_enabled » dans la documentation relative à l'é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. Enregistré en minuscules. |
couleur de grille |
#C0C0C0 |
Couleur hexadécimale des lignes de la grille. |
type_de_grille |
"carré" |
Soit carré, hexagonal (Hex V), hexagonal (Hex H), dimétrique ou isométrique. |
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é |
false |
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 |
ÉCLATÉ: Éclairage dynamique classique : appliquez la règle de la ligne de visée pour les objets. |
restriction de déplacement |
faux |
Ne permettez pas aux objets dotés de la vision de traverser les murs d'Éclairage dynamique. |
lumière globale |
faux |
ÉCARTÉ Éclairage dynamique classique : si cette valeur est définie sur « true » à un endroit où un jeton peut « voir », on suppose qu’une lumière vive est présente. Consultez la section « daylight_mode_enabled » dans la documentation sur l'Éclairage dynamique |
adv_fow_enabled |
faux |
OBSOLÈTE: « Brouillard de guerre » avancé (version classique). |
adv_fow_dim_reveals |
faux |
OBSOLÈTE: « Brouillard de guerre » classique (ancienne version) : une basse lumière révèle le brouillard. |
adv_fow_show_grid |
faux |
OBSOLÈTE « Brouillard de guerre avancé » : affiche la grille à travers le brouillard. |
décalage_x_de_la_grille |
0 |
Décalage horizontal de la grille. |
décalage_y_de_la_grille |
0 |
Décalage vertical de la grille. |
force_lighting_refresh |
null |
Configuré pour demander un rafraîchissement de l'Éclairage dynamique. La valeur par défaut est « null », et non une valeur booléenne. |
déclencheur de jukebox |
null |
Jouer la page une fois le chargement terminé. Les options disponibles sont : « none », « stop », « all » ou un identifiant de piste. |
dynamic_lighting_enabled |
faux |
Utilisez l'éclairage dynamique |
mode_jour_activé |
faux |
Utiliser le mode lumière du jour |
Opacité du mode lumière du jour |
1 |
permet de régler l'intensité de la lumière en Mode lumière du jour |
mode explorateur |
« désactivé » |
Options : désactivé, basique
|
effet d'obscurité |
"aucun" |
Options : aucune, brouillard foncé, brouillard clair
|
_placement |
0 |
Uniquement pour le script Mod Bac à sable v1.5. Clé de tri dans le menu de la page. Les pages existantes utilisent des valeurs ponctuelles (par exemple 2 000). Triez selon ce nombre ; ne l'utilisez pas comme index de tableau. En lecture seule, sauf via les méthodes de placement. |
_chemin |
"," |
Uniquement pour le script Mod Bac à sable v1.5. Identifiants de dossiers de page séparés par des virgules. Les valeurs commencent généralement par une virgule et peuvent se terminer par d'autres virgules. Supprimez les segments vides lors du fractionnement. En lecture seule, sauf via les méthodes de placement. |
_wrapperAutoColor |
#ffffff |
Uniquement pour le script Mod Bac à sable v1.5. Couleur de l'enveloppe calculée. À lecture seule. |
useAutoWrapper |
vrai |
Uniquement pour le script Mod Bac à sable v1.5. Si cette valeur est vraie, utilisez _wrapperAutoColor. |
wrapperColor |
null |
Uniquement pour le script Mod Bac à sable v1.5. Utilisé lorsque la valeur de « useAutoWrapper » est « false ». |
Uniquement pour le script Mod Bac à sable v1.5. Méthodes : placeBefore(obj), placeAfter(obj) (obj étant une page ou un dossier de pages), placeIn(obj) (obj étant un dossier de pages). Le fait de passer d'un niveau de dossier à un autre met à jour _path.
PageFolder
Uniquement pour le script « Mod Script Bac à sable » v1.5.
Les objets « pageFolder » correspondent aux dossiers de pages du menu de la page. Vous pouvez les créer et les supprimer. La suppression d'un dossier fait remonter ses sous-éléments d'un niveau dans le menu.
| 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 |
« pageFolder » |
À lecture seule. |
nom |
« Nouveau dossier » |
Affiché dans le menu de la page. |
_placement |
0 |
Commande dans le menu de la page. |
_chemin |
"," |
Identifiants des dossiers de la page parent, séparés par des virgules. |
Méthodes : placeBefore(obj), placeAfter(obj) (page ou dossier de pages), placeIn(obj) (dossier de pages). La modification des dossiers met à jour le paramètre _path pour ce dossier et ses sous-dossiers. La fonction remove() déplace les éléments enfants vers le haut, puis supprime le dossier.
var dossier = createObj('pageFolder', { nom : 'Donjons' });
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 pour rechercher l'objet — veuillez toutefois noter qu'il n'existe qu'un seul objet « Campaign » et qu'il est accessible via Campaign(). À lecture seule. |
ordre de passage |
"" |
Une chaîne JSON représentant l'ordre des tours. Veuillez consulter ci-dessous. |
page d'initiative |
false |
Identifiant de la page utilisée pour le suivi lorsque la fenêtre d'ordre des tours est ouverte. Lorsque cette option est définie sur « false », la fenêtre de l'ordre des tours se ferme. |
identifiant de la page du joueur |
false |
Identifiant de la page sur laquelle le signet du lecteur est défini. Les joueurs voient cette page par défaut, sauf si les pages spécifiques aux joueurs mentionnées ci-dessous la remplacent. |
pages spécifiques aux joueurs |
false |
Un objet (et NON une chaîne JSON) au format : {player1_id: page_id, player2_id: page_id } … } Tout lecteur associé à une page de cet objet remplacera la valeur « 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. |
_token_markers |
« [] » |
Tableau JSON des icônes de jeton disponibles dans le jeu (intégrées et personnalisées). À lecture seule. Consultez l'exemple « Icônes de jeton » dans la rubrique « Graphique ». |
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. |
tokenBubbleMax |
3 |
Les valeurs valides sont 3 ou 4, qui correspondent au nombre de bulles de jetons. Disponible dans la version améliorée du moteur VTV. |
Ces propriétés supplémentaires sont lues sur l'objet renvoyé par la fonction Campaign(), et non via la méthode get:
| Propriété | Bac à sable | Remarques |
|---|---|---|
sandboxVersion |
les deux |
« 1,0 » ou « 1,5 »
|
nodeVersion |
les deux |
Chaîne de caractères indiquant la version de Node.js pour le processus « Bac à sable » |
nom_de_la_feuille |
v1.5 uniquement | Nom abrégé de la feuille de personnage configurée |
résumé calculé |
v1.5 uniquement | Noms de propriétés calculées Beacon disponibles |
résumé de l'action |
v1.5 uniquement | Actions disponibles pour les feuilles Beacon |
log(Campaign().sandboxVersion);
Ordre des tours L'ordre des tours est une chaîne JSON représentant la liste actuelle de l'ordre des tours. Il s'agit d'un ensemble d'objets. À l'heure actuelle, l'ordre des tours ne peut contenir que des objets provenant d'une seule page à la fois ; l'identifiant de la page actuelle pour l'ordre des tours correspond à l'attribut « initiativepage ». Veuillez vous assurer qu'ils restent synchronisés, sinon vous pourriez obtenir des résultats inattendus. Pour gérer l'Ordre des tours, vous devrez utiliser la fonction JSON.parse() afin d'obtenir un objet représentant l'état actuel de l'Ordre des tours (REMARQUE : vérifiez d'abord qu'il ne s'agit pas d'une chaîne vide ""…; si c'est le cas, initialisez-le vous-même avec un tableau vide). Voici un exemple d’objet « Ordre des tours » :
[
{
"id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", // L'identifiant 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 DE CARACTÈRES et non d'un NOMBRE).
"pr":"12",
"custom":"Test Custom" // Le nom à afficher pour les articles personnalisés.
Pour modifier l'ordre des tours, modifiez l'objet « Ordre des tours » actuel, puis utilisez la fonction JSON.stringify() pour modifier l'attribut correspondant dans la campagne. Veuillez noter que l'ordre des articles dans la liste correspond à l'ordre du tableau ; ainsi, par exemple, la fonction `push()` ajoute un article à la fin de la liste, tandis que la 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 |
"" |
Le pseudonyme actuel du joueur. Ce paramètre peut être modifié depuis la page des paramètres de l'utilisateur. À lecture seule. |
en ligne |
false |
À 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 de caractères délimitée par des virgules contenant les macros présentes 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 la liste déroulante « As ». Lorsque cette option est définie sur une chaîne vide, le joueur s'exprime en tant que lui-même. Lorsqu'elle est définie sur un personnage, la valeur est « personnage|<ID>» , où «<ID> » correspond à l'identifiant du personnage. |
couleur |
#13B9F0 |
La couleur du carré situé à côté du nom du joueur, ainsi que la couleur de ses repères sur la Carte, de ses cercles de ping, etc. |
Afficher la barre de macros |
false |
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. La mention « Tous les joueurs » signifie que tous les joueurs figurent dans la liste. |
istokenaction |
false |
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 |
Uniquement pour le script Mod Bac à sable v1.5. La fonction createToken(properties) crée un graphique dont les côtés proviennent des avatars des articles du tableau (les images du Marketplace sont autorisées). Renvoie le graphique. Si aucun article de la table ne dispose d'un avatar, rien n'est créé.
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 balises ` 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 note ci-dessous concernant les restrictions relatives aux avatars et aux sources d'images. |
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é |
false |
|
journaux des joueurs |
"" |
Liste séparée par des virgules des identifiants des joueurs autorisés à visualiser ce personnage. Utilisez « Tous » pour permettre à tous les joueurs de voir. La mention « Tous les joueurs » signifie que tous figurent 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. Utilisez « Tous » pour permettre à tous les joueurs de modifier. La mention « Tous les joueurs » signifie que tous les joueurs figurent dans la liste. |
jeton par défaut |
"" |
Une chaîne JSON correspondant au jeton par défaut du personnage, s’il en existe un. Il s'agit d'un « blob », à l'instar de la biographie et des notes; la fonction get() prend donc une fonction de rappel. Ne l'initialisez pas avec la méthode set(). Écrivez-le à l'aide de la fonction ` setDefaultTokenForCharacter`. |
inParty |
false |
Si le personnage fait partie du groupe. |
tags |
« [] » |
Tableau JSON de chaînes de caractères. Pas d'espaces ni de virgules. Les tags non valides sont supprimés ; un avertissement est envoyé à la console de sortie Mod. Disponible sur les deux versions du Bac à sable. |
Uniquement pour le script Mod Bac à sable v1.5. sheetEnvironment est « classique » ou « beacon ». Appelez cette méthode sous la forme character.sheetEnvironment (et non via get).
Uniquement pour le script Mod Bac à sable v1.5. La fonction createToken(properties, options, callback) crée un graphique à partir du Jeton par défaut du personnage. S'il n'y a pas de Jeton par défaut, c'est l'Avatar du personnage qui est utilisé. S'il n'y a pas d'avatar non plus, la création échoue. Les images provenant de la Marketplace sont autorisées. Comme _defaulttoken est asynchrone, l'élément graphique est transmis à la fonction de rappel au lieu d'être renvoyé.
| Option | Par défaut | Remarques |
|---|---|---|
preferAvatar |
false |
Préférez l'avatar du personnage comme source d'image. |
à plusieurs facettes |
false |
Comment les pages sont créées : « false » conserve les pages telles qu'elles apparaissent dans le Jeton par défaut ; «true » / « ensure » ajoute « imgsrc » et « avatar » s'il n'y a pas de pages; « replace » remplace les pages existantes ; « append » / « prepend » ajoute «imgsrc » / « avatar ». |
obj.createToken({ pageid, layer, left: x, top: y }, { multisided: 'ensure' }, function (token) {
token.set('status_green', 5);
});
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 de createObj. |
nom |
"Sans titre" |
|
actuelle |
"" |
Vous pouvez accéder à la valeur actuelle de l'attribut dans le Chat et les macros à l'aide de la syntaxe @{Nom du personnage|Nom de l'attribut} ou dans les caractéristiques à l'aide de la syntaxe @{Nom de l'attribut}. |
max |
"" |
Vous pouvez accéder à la valeur maximale de l'attribut dans le chat et les macros à l'aide de la syntaxe @{Nom du personnage|Nom de l'attribut|max}, ou dans les caractéristiques à l'aide de la syntaxe @{Nom de l'attribut|max}. |
Important : veuillez consulter la remarque ci-dessous concernant l'utilisation des Feuilles de personnage pour savoir comment les valeurs par défaut de ces 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 de createObj. |
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 |
false |
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 à l'échelle mondiale 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. |
épingles |
« [] » |
Une chaîne JSON contenant un tableau d'objets représentant chacune des broches associées aux parties de ce Document. |
avatar |
"" |
URL vers une image utilisée pour le document distribué. Veuillez consulter la note ci-dessous concernant les restrictions relatives aux avatars et aux balises ` imgsrc `. |
nom |
« Note mystérieuse » |
|
notes |
"" |
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. Utilisez « Tout » pour afficher l'information à tous les joueurs. La mention « Tous les joueurs » signifie que tous figurent dans la liste. |
archivé |
false |
|
contrôlé par |
"" |
Liste séparée par des virgules des identifiants des joueurs autorisés à contrôler et à modifier ce document. La mention « Tous les joueurs » signifie que tous figurent dans la liste. |
tags |
« [] » |
Tableau JSON de chaînes de caractères. Les mêmes règles que pour les tags de personnages. Disponible sur les deux versions du Bac à sable. |
Remarque : Campaign().get("_journalfolder") est accessible en lecture. Les scripts ne peuvent pas écrire dans le dossier « Journal ». Les documents générés par des scripts sont placés dans le répertoire racine.
Pont
Il existe des fonctions de script Mod permettant de piocher, distribuer, mélanger, rappeler, ramasser, prendre, jouer et donner des cartes : shuffleDeck, cardInfo, recallCards, dealCardsToTurn, drawCard, pickUpCard, takeCardFromPlayer, playCardToTable, giveCardToPlayer. Elles sont disponibles sur les deux versions du Bac à sable. Consultez la documentation relative aux fonctions.
| 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'indice 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 verso des cartes de ce jeu de cartes |
affichée |
false |
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 |
false |
Les joueurs peuvent-ils voir le recto des cartes lorsqu'ils regardent la main des autres joueurs ? |
gm_vuecartes |
vrai |
Le MJ peut-il voir le nombre de cartes que chaque joueur a en main ? |
gm_seefrontofcards |
false |
Le MJ peut-il voir le recto des cartes lorsqu'il examine la main de chaque joueur ? |
infinitecards |
false |
Y a-t-il un nombre infini de cartes dans ce jeu de cartes ? |
_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 = autorise les joueurs à voir le dos des cartes et à en choisir une, choosefronts = permet de voir le recto des cartes et d'en choisir une, drawtop = piocher la dernière carte défaussée, drawbottom = piocher la plus ancienne carte défaussée. |
_pile-de-rejet |
"" |
Quelle est la pile de défausse actuelle de 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 | Notes |
|---|---|---|
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 |
"" |
Uniquement pour le script Mod Bac à sable v1.5. La fonction createToken(propriétés, options) génère un graphique comme si la carte avait été posée sur la table (les images de la Marketplace sont autorisées). Renvoie le graphique.
| Option | Par défaut | Notes |
|---|---|---|
asCard |
vrai |
Si cette affirmation est vraie, l'élément graphique est une carte. Si la valeur est fausse, il s'agit d'un jeton à plusieurs faces qui ressemble simplement à la carte. |
face vers le haut |
jeu de cartes par défaut |
Affichage recto ou verso ; définit la propriété currentSide. |
Main
Veuillez noter que chaque joueur ne doit avoir qu'UNE seule main.
| Biens immobiliers | Valeur par défaut | Notes |
|---|---|---|
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 » |
Lorsqu'un joueur dévoile sa main, s'agit-il d'une vue « par pile » ou « par carte » ? |
Morceau du Jukebox
| Biens immobiliers | Valeur par défaut | Notes |
|---|---|---|
_id |
Identifiant unique pour cet objet. Unique à l'échelle mondiale parmi tous les objets de ce jeu. À lecture seule. | |
type |
« jukeboxtrack » |
Cela permet d'identifier le type d'objet ou de rechercher l'objet. En lecture seule. |
joue à |
false |
Booléen utilisé pour déterminer si la piste est en cours de lecture. Si vous définissez ce paramètre sur « true » et « softstop » sur « false », la piste est lue. |
arrêt progressif |
false |
Booléen utilisé pour déterminer si une piste non bouclée a été jouée au moins une fois. Ce paramètre doit être défini sur « false » pour garantir la lecture d'un morceau. |
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 |
false |
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
| Biens immobiliers | Valeur par défaut | Notes |
|---|---|---|
_id |
Un identifiant unique pour cet objet. Unique à l'échelle mondiale parmi tous les objets de ce jeu. En lecture seule. | |
_type |
« custfx » |
Permet d'identifier le type d'objet ou de rechercher cet objet. En 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és « imgsrc » et « avatar », afin de garantir la sécurité de tous les utilisateurs de Roll20, nous avons mis en place les restrictions suivantes concernant ces propriétés :
-
Vous devez utiliser un fichier image qui a été mis en ligne dans votre bibliothèque Roll20 – et non sur un site externe (tel qu'Imgur), ni sur la Marketplace de Roll20. Les URL enregistrées sont réécrites sur le CDN de Roll20 (souvent
https://files.d20.io/images/...). N'exigez pas le préfixe «s3.amazonaws.com» et ne vous attendez pas à ce quela fonction get("imgsrc")renvoie l'URL que vous avez fournie. - Veuillez inclure la chaîne de requête dans l'URL que vous transmettez.
- Les valeurs
« imgsrc »des images ne doivent plus nécessairement comporter le nom de la taillede la vignette. Les URL des images sont adaptées à un format de stockage corrigé et à un emplacement CDN ; ne vous attendez pas à ce que la fonction `obj.get('imgsrc')`renvoie l'URL que vous avez fournie lors de la création. La fonction `findObjs()` normalise et met en correspondance les URL ; vous pouvez donc toujours effectuer une recherche à partir de n'importe quelle URL valide.
Si vous supprimez une image de votre bibliothèque, celle-ci sera supprimée de tous les jeux qui l'utilisent, y compris ceux qui utilisent vos scripts de mod.
Uniquement pour le script Mod Bac à sable v1.5. Les fonctions `createCopy ` et `createToken ` permettent de créer des graphiques utilisant des images du Marketplace en les copiant à partir d'un objet existant.
Utilisation des champs Notes, GMNotes et Bio Asynchrone
Pour accéder aux champs « notes », « gmnotes » ou « bio » des Personnages et des Documents, vous devez passer une fonction de rappel en tant que deuxième argument de la fonction get(). Voici un exemple :
var character = getObj("personnage", "-JMGkBaMgMWiQdNDwjjS");
character.get("bio", function(bio) {
log(bio); // Effectuez ici une action avec la biographie du personnage.
});
Veuillez définir ces champs à l'aide de la fonction set() une fois que l'objet a été créé. Ne transmettez pas de bio, de notes ou de gmnotes à la fonction createObj. Définissez les notes et les gmnotes dans des appels set() distincts. « Graphic gmnotes » est une chaîne de caractères normale et ne figure pas dans cette liste. Le paramètre _defaulttoken est un blob : lisez-le à l'aide d'un callback et écrivez-le à l'aide de la fonction setDefaultTokenForCharacter.
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(character_id, attribute_name, value_type) Il vous suffit d'indiquer l'identifiant du personnage, le nom (et non l'identifiant) de l'attribut (par exemple «PV » ou « Str »), puis de préciser si vous souhaitez obtenir la valeur actuelle ou la valeur 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. N'oubliez pas de consulter également la documentation relative aux feuilles de personnage pour obtenir plus d'informations sur la manière dont celles-ci interagissent avec les scripts de mod. Voir également les méthodes setAttrs, getSheetDefaultValue, getSheetItem et setSheetItem (dans les deux bacs à sable). Uniquement pour le script Mod Bac à sable v1.5. getComputed, setComputed, performAction. Consultez la documentation relative aux fonctions.
La méthode `getAttrByName ` ne renvoie que la valeur de l'attribut, et non l'objet attribut lui-même. Si vous souhaitez accéder à des propriétés des attributs autres que « current » ou « max », ou si vous souhaitez modifier les propriétés des attributs, vous devez utiliser l'une des autres fonctions mentionnées ci-dessus, telle que « findObjs ». Si l'objet d'attribut n'existe pas, la fonction getAttrByName() renvoie la valeur par défaut de la feuille de personnage pour ce nom, lorsque celle-ci en définit une, et la valeur « undefined » dans le cas contraire.
Création d'objets
createObj(type, Attributs)
Vous pouvez créer des éléments « graphiques », « texte », « chemin », « cheminv2 », 'personnage', « Caractéristique », « Attribut », « Document », « table déroulante », « tableitem », « Macro », « card », « paquet », « custfx », « window », « porte »et « épingle ». Uniquement pour le script Mod Bac à sable v1.5. « pageFolder ». Vous pouvez créer un nouvel objet dans le jeu à l'aide de la fonction createObj. Vous devez transmettre le type de l'objet (l'une des propriétés _type valides figurant dans la liste d'objets ci-dessus), ainsi qu'un objet « attributes » contenant une liste de propriétés pour cet objet. Veuillez noter que si l'objet possède un objet parent (par exemple, les attributs et les caractéristiques appartiennent aux personnages, tandis que les graphiques, les textes et les tracés appartiennent aux pages, etc.), vous devez indiquer l'identifiant du parent dans la liste des propriétés (par exemple, vous devez inclure la propriété « characterid » lors de la création d'un attribut). Notez également que, même lors de la création de nouveaux objets, vous ne pouvez pas définir de 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 plus être modifiée une fois le chemin initialement créé. La fonction `createObj` renverra le nouvel objet, ce qui vous permettra de continuer à l'utiliser.
// Créer un attribut « Force » pour les personnages ajoutés une fois le mode Bac à sable prêt.
// L'association de la commande « add:character » avant que le système ne soit prêt se déclenche également pour les personnages qui existent déjà.
on("ready", function() {
on("add:character", function(obj) {
createObj("attribute", {
name: "Force",
current: 0,
max: 30,
characterid: obj.id
});
});
});
Suppression d'objets
objet.supprimer()
Vous pouvez supprimer les objets « graphic », « text », « path », « pathv2 », « personnage », « caractéristique », « document », « rollabletable », « tableitem », « Macro », « carte », « deck », « custfx », « window », « door » et « pin ». Uniquement pour le script Mod Bac à sable v1.5. « pageFolder ».
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'objet « Campaign ». Étant donné qu'il n'existe qu'une seule campagne, cette variable globale fait toujours référence à la seule campagne du jeu. Utile, par exemple, pour vérifier si un objet se trouve sur la page active à l'aide de Campaign().get("playerpageid").
état
La variable d'état est un objet de la portée globale auquel tous les scripts s'exécutant dans un jeu ont accès. Vous pouvez accéder à l'objet « state » à tout moment depuis n'importe quelle fonction ou fonction de rappel, simplement en utilisant la variable globale nommée « state ». De plus, l'objet d'état est conservé d'une exécution à l'autre du Bac à sable Mod Script; vous pouvez donc l'utiliser pour stocker les informations dont vous souhaitez disposer lors des prochaines exécutions de votre script. Remarque : nous vous recommandons d'utiliser l'objet « state » pour stocker les informations dont seuls les scripts de modification ont besoin, car celles-ci ne sont pas transmises aux ordinateurs des joueurs et n'alourdissent pas le fichier de votre jeu. Enregistrez les valeurs nécessaires au jeu dans les propriétés des objets Roll20.
Types stockables
L'objet « state » ne permet de stocker que des types de données simples, tels que pris en charge par la norme JSON.
| Type | Exemples | Description |
|---|---|---|
Booléen |
vrai faux
|
La valeur « true » ou « false ». |
Numéro |
123,5 10 1,23e20
|
Tout format numérique pris en charge par Javascript. Virgule flottante ou entier. |
Chaîne |
« Bonjour Fantasy » « oh, et le 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 enregistrées dans l'état, elles disparaîtront dès la première restauration de l'é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'objet d'état est 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'effectuez jamais d'affectation directement à l'objet
d'étatracine.
state = { break: 'tout' }; // NE FAITES JAMAIS CELA !!!
-
Évitez 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 !
// ...
}
-
Veillez à 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. Évitez les noms tels que «
script» ou «paramètres». Il est préférable d'utiliser soit le nom de votre module, soit votre propre nom ou pseudonyme.
if( ! state.MyModuleNamespace ) {
state.MyModuleNamespace = { module: 'mon module', ok: 'tout va bien !', count: 0 };
}
state.MyModuleNamespace.count++;
Exemple d'utilisation
Voici un exemple concret qui utilise correctement l'objet d'état.
on('ready', function() {
"use strict";
// Vérifier si la propriété avec espace de noms existe, et 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 de l'état pour configurer un message destiné 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+' lancé '+(++state.MyModuleNS.count)+' fois !'+
'</span>'
);
});
Recherche/filtrage d'objets
Les scripts Mod proposent plusieurs fonctions d'aide qui peuvent être utilisées pour localiser des objets.
getObj(type, id)
Cette fonction récupère un objet unique si l'on lui transmet le _type de l'objet et son _id. 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 cette opération s'applique à tous les objets, quels que soient leurs types, sur l'ensemble des pages. Vous devrez donc probablement inclure au moins un filtre pour _type et _pageid si vous travaillez avec des objets de table.
var currentPageGraphics = findObjs({
_pageid: Campaign().get("playerpageid"),
_type: "graphic",
});
_.each(currentPageGraphics, function(obj) {
//Effectuez une action sur obj, qui se trouve sur la page actuelle et qui 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 la valeur est « vrai », les propriétés de type 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.
- startsWith (vrai/faux) : Si la valeur est « vrai », les propriétés de type chaîne de caractères doivent correspondre en tant que préfixe.
-
tagMatch: Lors de la recherche
de balises:« all »(par défaut ; l'objet possède toutes les balises répertoriées),« any »(au moins une),« only »(exactement l'ensemble répertorié).
var knights = findObjs({ type : 'personnage', name : 'Sir' }, { startsWith : true });
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 du plateau de la table.
obtenirTousLesObjets()
Renvoie un tableau contenant tous les objets du jeu (tous types confondus). Cela revient à appeler la fonction `filterObjs` et à renvoyer simplement `true ` pour 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_type » est un paramètre facultatif qui vous permet de spécifier la valeur actuelle ou la valeur maximale. La méthode `getAttrByName ` ne renvoie que la valeur de l'attribut, et non l'objet attribut lui-même. Si vous souhaitez accéder à des propriétés des attributs autres que « current » ou « max », ou si vous souhaitez modifier les propriétés des attributs, vous devez utiliser l'une des autres fonctions mentionnées ci-dessus, telle que « findObjs ». Pour les sections répétitives, vous pouvez utiliser le format « repeating_section_$n_attribute» , où n correspond au numéro de la ligne répétitive (en commençant par zéro). Par exemple, la formule « repeating_spells_$2_name » renverra la valeur de « name » figurant dans la troisième ligne de la table « repeating_spells ». Vous pouvez obtenir un comportement équivalent à celui de `getAttrByName`en procédant comme suit :
```// Les valeurs « 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');
}
}