on("change:graphic:left", function(obj) {
//Quelle est la valeur gauche de l'objet qui entre ici ?
log(obj.get("left"));
obj.set("left", obj.get("left") + 70);
//Quelle est la valeur actuelle ?
log(obj.get("left"));
//Vous pouvez également déboguer des objets entiers pour afficher la liste de leurs attributs actuels
log(obj);
});
on("change:graphic:left", function(obj) {
//Quelle est la valeur gauche de l'objet qui entre ici ?
log(obj.get("left"));
obj.set("left", obj.get("left") + 70);
//Quelle est la valeur actuelle ?
log(obj.get("left"));
//Vous pouvez également déboguer des objets entiers pour afficher la liste de leurs attributs actuels
log(obj);
});
Vous trouverez le résultat de vos commandes de journalisation dans la console Mod (API), qui se trouve sur la page Éditeur de scripts de votre campagne.
Verrous d'erreur
L'API Roll20 corrigera automatiquement les petites erreurs dans votre script en le redémarrant si nécessaire. Toutefois, si l'API détecte une erreur grave qu'elle ne peut pas résoudre, plutôt que de redémarrer votre script à plusieurs reprises pour qu'il continue à générer des erreurs, elle appliquera un « verrouillage d'erreur » à votre campagne, ce qui empêchera vos scripts Mod (API) de s'exécuter jusqu'à ce que l'erreur soit résolue. Si vos scripts ont été verrouillés en raison d'une erreur, le message suivant s'affichera sur la page Éditeur de scripts :
Veuillez ne pas vous inquiéter. Veuillez apporter les modifications nécessaires à vos scripts afin de résoudre le problème, puis cliquez sur le bouton « Enregistrer le script ». Lorsque vous effectuez cette opération, le verrouillage d'erreur sera « effacé » et l'API tentera à nouveau d'exécuter vos scripts. Si une autre erreur survient, le verrouillage d'erreur sera réappliqué. Vous pouvez répéter ce processus autant de fois que nécessaire pour corriger l'erreur. L'API ne vous empêchera jamais de supprimer vos verrous d'erreur parce que vous avez échoué trop de fois.
Erreurs courantes
Voici quelques erreurs fréquentes :
myvar n'est pas défini
on("ready", function() {
var myVar;
log(myvar);
});
Bien que le message d'erreur indique « non défini », ce qui s'est réellement produit, c'est que la variable n'est pasdéclarée. L'une des causes les plus courantes est une erreur de frappe dans le nom d'une de vos variables, telle qu'une majuscule manquante.
Impossible de lire la propriété « myProperty » ou d'appeler la méthode « myMethod ».
on("ready", function() {
var myVar;
log(myVar.myProperty);
log(myVar.myMethod());
});
myVarn'est pas défini, donc le script ne peut pas déterminer comment gérer votre tentative d'accès à une propriété demyVar. Cela est probablement dû à l'une des raisons suivantes :
- Vous avez tenté de localiser un objet, mais le résultat n'a pas été défini. Veuillez effectuer une vérification d'erreur pour vous assurer que votre variable est bien définie avant d'accéder à ses propriétés.
- Votre variable est définie de manière conditionnelle (à l'aide d'une série d'instructions
ifou similaires), et aucune de vos conditions ne correspondait. Par conséquent, votre variable a été déclarée, mais jamais définie. Veuillez vous assurer que vous avez défini des conditions pour toutes les possibilités, ou créez une option par défaut, ou effectuez une vérification d'erreur pour vous assurer que votre variable est définie avant d'accéder à ses propriétés.
Jeton inattendu
Il vous manque un personnage ou vous avez un personnage en trop. Cela peut résulter de l'oubli d'une virgule entre une liste de propriétés dans un objet ou des éléments dans un tableau, ou du fait d'avoir une parenthèse fermante en trop ou en moins à la fin d'un appel de méthode imbriqué complexe.
La plupart des propriétés des objets Roll20 doivent être consultées via les méthodesget()etset(). Lorsque vous utilisezget(), il est recommandé d'omettre le trait de soulignement initial sur les propriétés en lecture seule.