Roll20 propose un certain nombre de fonctions qui ne font pas partie du JavaScript de base ni d'aucune autre bibliothèque.
Les jeux peuvent utiliser Mod Script Bac à sable v1.0 (Campaign().sandboxVersion === "1.0") ou v1.5 ("1.5"). Fonctionnalités réservées à la version 1.5 de Mod Script Bac à sable. ne fonctionnent pas avec la version 1.0.
Variables globales
| Variable | Description |
|---|---|
_ |
Il s'agit de l'objet d'espace de noms de la bibliothèque Underscore.js. |
état |
Les propriétés de l'objet d'état seront conservées entre les sessions de jeu. |
_ (trait de soulignement)
Il s'agit de l'objet d'espace de noms de la bibliothèque Underscore.js. Underscore propose de nombreuses fonctions pour la manipulation de collections.
état
Les propriétés de l'objet d'état seront conservées entre les sessions de jeu. Le même objet d'état est également partagé entre tous les scripts Mod d'une campagne ; il est donc vivement recommandé, lorsque vous enregistrez des valeurs dans cet objet d'état, de réduire au maximum votre empreinte afin d'éviter tout conflit de noms. Remarque : l'état est sérialisé avec JSON, vous ne pouvez donc pas stocker de fonctions ou d'objets avec des références cycliques.
Fonctions globales
| Type de retour | Fonction | Description |
|---|---|---|
Objet Roll20 |
Campagne |
Récupère l'objet unique Campaign Roll20. |
Objet Roll20 |
créerObj |
Permet de créer un nouvel objet Roll20. |
Tableau d'objets Roll20 |
filterObjs |
Récupère tous les objets Roll20 qui satisfont à un test prédicat. |
Tableau d'objets Roll20 |
findObjs |
Récupère tous les objets Roll20 dont les propriétés correspondent à un ensemble d'attributs donné. |
Tableau d'objets Roll20 |
obtenirTousLesObjets |
Récupère tous les objets Roll20 de la campagne. |
varie |
getAttrByName |
Obtient la valeur actuelle ou maximale d'un attribut d'objet Roll20. |
varie |
getComputed |
Uniquement pour le script Mod Bac à sable v1.5. Récupère une propriété calculée de type « Beacon ». |
varie |
getSheetDefaultValue |
Récupère la valeur par défaut d'une feuille de personnage pour un nom d'attribut. |
varie |
getSheetItem |
Récupère un article de la feuille (attribut ; à partir de la version 1.5, également Beacon / user.*). |
Objet Roll20 |
getObj |
Récupère un objet Roll20 spécifique. |
journal |
Enregistre un message dans la console de sortie Mod. | |
sur |
Enregistre un gestionnaire d'événements. | |
surSheetWorkerCompleted |
Enregistre un gestionnaire d'événements à exécuter une seule fois, une fois que la pile complète des scripts de feuille a été traitée. | |
exécuterAction |
Uniquement pour le script Mod Bac à sable v1.5. Exécute une action de la feuille « Beacon ». | |
Booléen |
joueurEstGM |
Vérifie si un joueur dispose actuellement des privilèges de MJ. |
Lecteur Jukebox Liste de lecture |
Veuillez commencer à lire une liste de lecture du jukebox. | |
Numéro |
nombre entier aléatoire |
Génère une valeur entière aléatoire. |
envoyer un message |
Envoie un message instantané. | |
envoyer un ping |
Envoie une commande ping similaire à celle obtenue en maintenant le bouton gauche de la souris enfoncé. | |
setAttrs |
Définit un ou plusieurs attributs pour un personnage. | |
setComputed |
Uniquement pour le script Mod Bac à sable v1.5. Définit une propriété calculée « Beacon » accessible en écriture. | |
setSheetItem |
Définit un article de feuille (attribut ; à partir de la version 1.5, également Beacon / user.*). |
|
spawnFx |
Génère un émetteur de particules. | |
générer des effets entre des points |
Génère un émetteur de particules qui se déplace d'un point à un autre. | |
spawnFxWithDefinition |
Génère un émetteur de particules qui n'est pas représenté par un objet FX Roll20. | |
Arrêter la lecture de la liste de lecture du jukebox |
Interrompt toutes les listes de lecture actuellement en cours de lecture sur le jukebox. | |
vers le haut |
Uniquement pour le script Mod Bac à sable v1.5. Place un objet immédiatement au-dessus d'un autre sur le même calque. | |
Retour |
Place un élément graphique, un texte, un tracé ou un tracé v2 sous les autres objets de son calque. | |
vers le bas |
Uniquement pour le script Mod Bac à sable v1.5. Place un objet immédiatement en dessous d'un autre sur le même calque. | |
toFront |
Place un élément graphique, un texte, un tracé ou un tracé v2 au-dessus des autres objets de son calque. Transmettez l'objet, et non un identifiant. | |
Accessoires pour cartes |
shuffleDeck, cardInfo, recallCards, dealCardsToTurn, drawCard, pickUpCard, takeCardFromPlayer, playCardToTable, giveCardToPlayer — voir Objets : Jeu de cartes. |
Campagne
Paramètres
Aucun paramètre
Retours
L'objet Roll20 de la campagne unique.
Exemples
var currentPageID = Campaign().get('playerpageid'),
currentPage = getObj('page', currentPageID);
La valeur de Campaign().sandboxVersion est « 1.0 » ou « 1.5 ». Campaign().nodeVersion correspond à la chaîne de caractères indiquant la version de Node.js. Uniquement pour le script Mod Bac à sable v1.5. sheetName, computedSummary et actionSummary. Voir la rubrique « Objets : Campagne ».
créerObj
Paramètres
TYPE (chaîne de caractères) Le type d'objet Roll20 à créer. Vous pouvez créer des éléments de type « graphic », « text », « path », « pathv2 », « personnage », « caractéristique », « document », « rollabletable », « tableitem », « Macro », « card », « deck », « custfx », « window », « door » et « pin ». Uniquement pour le script Mod Bac à sable v1.5. « pageFolder ».
ATTRIBUTS (Objet) Les valeurs initiales à utiliser pour les propriétés de l'objet Roll20.
Retours
L'objet Roll20 qui a été créé.
Exemples
Lorsque vous créez un objet Roll20 qui possède un objet parent (par exemple, lorsque vous créez un objet Roll20 de type « attribut », qui est un enfant d'un objet Roll20 de type « personnage »), vous devez indiquer l'identifiant du parent dans les attributs.
on('add:character', function(obj) {
createObj('attribute', {
name: 'Force',
current: 0,
max: 30,
characterid: obj.id
});
});
});
Lors de la création d'un chemin, indiquez le chemin (enregistré sous le nom _path) et l'identifiant de page. Le chemin d'accès sans trait de soulignement correspond au nom attribué lors de la création. Il devient ensuite en lecture seule.
createObj('path', {
pageid : Campaign().get('playerpageid'),
left : 7000,
top: 140,
width: 140,
height: 140,
layer: 'objects',
path: JSON.stringify([['M', 0, 0], ['L', 70, 0], ['L', 0, 70], ['L', 0, 0]])
});
Lors de la création d'un document dans Roll20, vous ne pouvez pas définir le texte ni les notes du MJ au moment de la création.
var document = createObj('document', {
name: 'Une lettre qui vous est adressée',
inplayerjournals: 'all',
archived: false
});
document.set('notes', 'Les notes ne peuvent être définies qu’après la création du document.');
document.set('gmnotes', 'Définissez les gmnotes dans un appel distinct de celui des notes.');
filterObjs
Paramètres
CALLBACK (Fonction) Une fonction de prédicat permettant de vérifier tous les objets Roll20. La fonction de rappel reçoit un objet Roll20 en paramètre et doit renvoyer soit « true » (pour les objets Roll20 qui seront inclus dans la valeur de retour de `filterObjs`), soit « false » (pour tous les autres objets Roll20).
Retours
Un tableau d'objets Roll20 qui ont réussi le test de prédicat.
findObjs
Paramètres
ATTRIBUTS (Objet) Ensemble de paires clé-valeur permettant d'établir une correspondance avec les objets Roll20 de la campagne.
OPTIONS (objet, facultatif)
-
caseInsensitive— si cette option est définie sur « true », les comparaisons de chaînes de caractères ne tiennent pas compte de la casse. -
startsWith— si la valeur est « true », les chaînes de caractères doivent correspondre au niveau du préfixe. -
tagMatch— lors de la recherchede tags:« all »(par défaut ; l'objet possède toutes les balises répertoriées),« any »(au moins une),« only »(exactement l'ensemble répertorié).
Retours
Un tableau d'objets Roll20 dont les propriétés correspondent aux attributs. Les clés peuvent ne pas comporter le trait de soulignement initial : « type » et « _type » correspondent tous les deux.
Exemples
var npcs = findObjs({ type : 'personnage', controlledby : '' });
var knights = findObjs({ type : 'personnage', name : 'Sir' }, { startsWith : true });
obtenirTousLesObjets
Paramètres
Aucun paramètre
Retours
Tableau de tous les objets Roll20 de la campagne.
getAttrByName
Paramètres
CHARACTER_ID (chaîne de caractères) L'identifiant du personnage. ATTRIBUTE_NAME (Chaîne de caractères) Le nom de l'attribut. VALUE_TYPE (chaîne de caractères, facultatif) « current » ou « max » (valeur par défaut : « current »).
Retours
La propriété « current » ou « max ». Si cette option n'est pas définie, la feuille de personnage par défaut est utilisée (le cas échéant).
getComputed
Uniquement pour le script Mod Bac à sable v1.5. (Dans la version 1.0, ce nom correspond à un stub sans opération.)
Paramètres
Un objet : { characterId, property, args?, playerId? }.
Lorsque vous utilisez une feuille de personnage Beacon, cette méthode récupère la valeur d'une propriété calculée. Répertoriez les noms à l'aide de Campaign().computedSummary. Le paramètre « playerId » est facultatif ; certaines fonctionnalités de Beacon (comme les requêtes « roll », par exemple) l'exigent.
getSheetDefaultValue
Paramètres
ATTRIBUTE_NAME (chaîne de caractères), VALUE_TYPE (chaîne de caractères, facultatif) : « current » ou « max ».
Retours
La valeur par défaut de la feuille pour ce champ, et non la valeur réelle du caractère.
getSheetItem
Paramètres
getSheetItem(characterId, property, valtype?, options?) — asynchrone (Promise).
Dans la version 1.0, cela encapsule la fonction getAttrByName. Uniquement pour le script Mod Bac à sable v1.5. Dans les feuilles Beacon, il lit également les propriétés calculées et les attributs personnalisés nommés user.*.
getObj
Paramètres
TYPE (chaîne de caractères), ID (chaîne de caractères)
Retours
L'objet Roll20 spécifié.
on('Chat:message', function(msg) {
var sendingPlayer = getObj('player', msg.playerid);
});
journal
Paramètres
MESSAGE (variable) Affiché dans la console de sortie du Mod. Converti à l'aide de JSON.stringify.
Uniquement pour le script Mod Bac à sable v1.5. Les messages d'erreur comportent souvent un objet de contexte, tel que [personnage Roll20 -id].
sur
Paramètres
ÉVÉNEMENT (chaîne de caractères) Il existe cinq types d'événements : ready, change, add, destroy, Chat. À l'exception de « ready », associez l'événement à un type d'objet. Pour le Chat, ce type est toujours « message ». Les événements de modification peuvent également désigner une propriété, un identifiant d'objet, ou les deux : change:graphic:left, change:graphic:ID, change:graphic:ID:left. Les graphiques déclenchent également des événements de sous-type, tels que « change:token » et « change:dicetoken ». Consultez la rubrique « Événements ».
Les événements « ready » de la fonction CALLBACK ne comportent aucun paramètre de rappel. Les événements de modification disposent d'un paramètre « obj » (l'objet Roll20 après la modification) et d'un paramètre « prev » (un objet JavaScript simple contenant les propriétés avant la modification). Les événements « add » comportent un paramètre « obj » (le nouvel objet). Les événements « destroy » disposent d'un paramètre « obj » (l'objet qui n'existe plus). Les événements de Chat comportent un paramètre « msg » (détails du message).
Retours
(Nul)
Les événements sont déclenchés dans l'ordre dans lequel ils ont été enregistrés, du plus spécifique au moins spécifique. Dans cet exemple, toute modification de la propriété « left » d'un objet graphique Roll20 entraînera l'appel de la fonction 3, puis de la fonction 1 et enfin de la fonction 2.
on('change:graphic', function1);
on('change:graphic', function2);
on('change:graphic:left', function3);
Les événements « add events » tenteront de se déclencher pour les objets Roll20 déjà présents dans la campagne au moment où une nouvelle session commence. Pour éviter ce comportement, vous pouvez attendre que l'événement « ready » se déclenche avant d'enregistrer votre événement « add ».
on('add:graphic', function(obj) {
// Au début de la session, cette fonction sera appelée pour chaque élément graphique de la campagne
});
on('ready', function() {
on('add:graphic', function(obj) {
// Cette fonction ne sera appelée *que* lorsqu'un nouvel objet graphique Roll20 sera créé
});
});
Le paramètre « prev » des événements de modification n'est pas un objet Roll20. Vous ne pouvez pas utiliser les opérateurs « get » ou « set », et vous ne pouvez pas omettre les traits de soulignement en début de nom pour les propriétés en lecture seule. Utilisez « prev._id » et non « prev.id ».
Pour les champs « blob » des personnages et des documents (biographie, notes, notes du MJ) ainsi que pour le champ _defaulttoken des personnages, « prev » ne correspond pas au texte. La chaîne « gmnotes » est une chaîne de caractères ordinaire. Enregistrez vous-même en cache les valeurs précédentes des blobs si vous en avez besoin.
surSheetWorkerCompleted
Paramètres
CALLBACK (Fonction) Appelée lorsque la pile actuelle des scripts de feuille est terminée. Cette méthode est destinée à être appelée avant la méthode ` setWithWorker`. Ne s'exécute qu'une seule fois. La fonction de rappel peut recevoir { workersExecuted : booléen }.
exécuterAction
Uniquement pour le script Mod Bac à sable v1.5. (Dans la version 1.0, ce nom correspond à un stub sans opération.)
Paramètres
{ characterId, action, args?, playerId? }
Exécute une action de la feuille « Beacon ». Répertoriez les noms à l'aide de Campaign().actionSummary. Le paramètre « playerId » est facultatif ; certaines fonctionnalités de Beacon l'exigent. Si le nom ne correspond pas à une action « Beacon », la version 1.5 peut se rabattre sur une caractéristique du personnage portant ce nom via « sendChat ».
joueurEstGM
Paramètres
PLAYER_ID (chaîne de caractères)
Retours
vrai si le joueur dispose actuellement des droits de MJ.
Particulièrement utile pour réserver les commandes Mod Script à l'usage des MJ. Conservez « msg.type !== 'api' » tel quel — il s'agit du type de message de commande.
Lecteur Jukebox Liste de lecture
Paramètres
PLAYLIST_ID (chaîne de caractères) L'identifiant de la Playlist dont la lecture doit être lancée.
nombre entier aléatoire
Paramètres
MAX (Nombre) Maximum inclus.
Retours
Un nombre entier aléatoire compris entre 1 et max. Préférez cette méthode à Math.random() pour obtenir des plages de valeurs simulant le lancer de dés.
sendChat asynchrone
Paramètres
SPEAKINGAS (chaîne de caractères) Un nom, ou joueur|id_joueur / personnage|id_personnage. MESSAGE (chaîne de caractères). CALLBACK (fonction, facultatif) — les résultats sont transmis à la fonction de rappel au lieu d'apparaître dans le Chat. OPTIONS (Objet, facultatif) noarchive, use3d.
Consultez la section « Scripts de mod : Chat » pour les boutons de commande ([label](!command)).
envoyer un ping
Paramètres
GAUCHE, HAUT, PAGE_ID, PLAYER_ID (facultatif), MOVEALL (facultatif), VISIBLETO (facultatif). Si « player_id » n'est pas renseigné, le ping est affiché en jaune. Si moveAll est défini sur « true », les vues se centrent sur le ping. « visibleTo » peut être un identifiant de joueur, un tableau d'identifiants ou une chaîne de caractères séparée par des virgules.
setAttrs
Paramètres
CHARACTER_ID (chaîne de caractères), ATTRIBUTE_OBJ (objet de type nom → valeur). Les noms se terminant par _max définissent la valeur maximale. Les noms $n sont autorisés. options.silent utilise la méthode set au lieu de setWithWorker.
setComputed
Uniquement pour le script « Mod Script Bac à sable » v1.5.
{ characterId, property, args?, playerId? } — définit une propriété calculée Beacon accessible en écriture. Voir Campaign().computedSummary.
setSheetItem
setSheetItem(characterId, property, value, valtype?, options?) — asynchrone. Dans la version 1.0, les attributs sont définis. Uniquement pour le script Mod Bac à sable v1.5. Ainsi que les propriétés calculées de Beacon et les attributs personnalisés « user.* ». Les options disponibles sont : createAttr, withWorker et allowThrow.
spawnFx
Paramètres
GAUCHE (Nombre) La coordonnée x à laquelle placer l'émetteur de particules. TOP (Nombre) La coordonnée y. TYPE (chaîne de caractères) Pour les effets intégrés, « type-couleur », où « type » correspond à l'un des termes suivants : bombe, bulles, brûlure, éclatement, explosion, lueur, missile ou nova, et « couleur » correspond à l'un des termes suivants : acide, sang, charme, mort, feu, givre, sacré, magie, boue, fumée ou eau. Pour les effets personnalisés, l'identifiant d'un objet custfx. Remarque : les paramètres « beam », « breath » et « splatter » ne peuvent pas être utilisés avec la fonction `spawnFx` — voir `spawnFxBetweenPoints`. PAGE_ID (chaîne de caractères, facultatif) prend par défaut la valeur Campaign().get('playerpageid').
spawnFx(1400, 1400, « acidité bouillonnante ») ;
générer des effets entre des points
Paramètres
START (Objet) { x, y }. END (Objet) { x, y }. TYPE (chaîne de caractères) en tant que « spawnFx », ainsi que « beam », « breath » et « splatter ». PAGE_ID (chaîne de caractères, facultatif).
spawnFxBetweenPoints({ x: 1400, y: 1400 }, { x: 2100, y: 2100 }, 'beam-acid');
Uniquement pour le script Mod Bac à sable v1.5. Les effets de type « poutre » sont désormais orientés directement vers le point d'arrivée (une erreur de calcul d'angle a été corrigée).
spawnFxWithDefinition
Paramètres
GAUCHE, HAUT, DÉFINITION (objet décrivant l'émetteur), PAGE_ID (facultatif). Pour connaître les noms des propriétés, consultez l'article « Effets personnalisés sur les objets ».
spawnFxWithDefinition(1400, 1400, {
maxParticles : 200,
size : 15,
sizeRandom : 3,
lifeSpan : 20,
lifeSpanRandom : 5,
speed : 7,
speedRandom : 2,
gravity : { x : 0,01, y : 0,65 },
angle : 270,
angleRandom : 35,
emissionRate : 1,
startColour : [0, 35, 10, 1],
startColourRandom : [0, 10, 10, 0,25],
endColour : [0, 75, 30, 0],
endColourRandom : [0, 20, 20, 0]
});
Arrêter la lecture de la liste de lecture du jukebox
Arrête toutes les playlists de la Jukebox en cours de lecture.
arrêterJukeboxPlaylist() ;
Accessoires pour cartes
Disponible sur les deux versions du Bac à sable. Vous trouverez tous les détails dans la section « Mod Scripts : Objets (Pont) ».
shuffleDeck(deckid, pile de défausse, nouvelOrdre)cardInfo(paramètres)recallCards(deckid, type)dealCardsToTurn(deckid)drawCard(deckid, cardid)pickUpCard(cardid, fromDiscard)takeCardFromPlayer(playerid, options)playCardToTable(cardid, settings)giveCardToPlayer(cardid, playerid)
setDefaultTokenForCharacter
CARACTÈRE (objet « caractère »), JETON (objet graphique). Les deux doivent déjà exister. Écrit le blob _defaulttoken du personnage à partir du jeton. C'est ainsi que l'on définit ce champ ; la fonction set() ne le fait pas.
vers le haut
Uniquement pour le script « Mod Script Bac à sable » v1.5.
Paramètres
OBJ (graphique, texte, tracé ou pathv2), TARGET (objet ou identifiant).
Place l'objet « obj » immédiatement au-dessus de la cible, sur le même calque.
Retour / Suivant
OBJ doit être un graphique, du texte, un tracé ou un tracé v2. Transmettez l'objet, et non un identifiant. Dans la version 1.5, celles-ci sont nettement plus rapides, et ces types disposent également de méthodes d'instance toFront() / toBack().
vers le bas
Uniquement pour le script « Mod Script Bac à sable » v1.5.
Place l'objet « obj » immédiatement en dessous de la cible (objet ou identifiant) sur le même calque.