Script pour CO Fantasy sous Roll20 739

Forums > Jeux de rôle > JdR Black Book > Chroniques Oubliées Casus

avatar

Merci pour la commande !

Concernant la commande "!cof-capitaine", je remarque qu'elle ne met pas à jour l'initiative en live. C'est à dire pendant un combat ou le turn tracker est déjà ouvert. C'est le cas quelque soit la situation, quand on utilise la commande, quand on la retire ou que le capitaine meurt.
Aussi, est-il possible de rajouter capitaine à tous les membres de la map sauf les alliés et le capitaine lui-même ?

avatar

Concernant la commande "!cof-capitaine", je remarque qu'elle ne met pas à jour l'initiative en live. C'est à dire pendant un combat ou le turn tracker est déjà ouvert. C'est le cas quelque soit la situation, quand on utilise la commande, quand on la retire ou que le capitaine meurt.

Cette commande a plutôt été pensée comme une aide à la mise en place, pas comme un truc dynamique en cours de combat, genre un personnage devient le capitaine en cours de combat. Tu crois que ce serait utile ?

La mise à jour de l'initiative quand le capitaine meurt n'est pas immédiate, et ça me semblait suffisant comme ça. Ça ne me semblait pas choquant qu'il puisse y avoir un léger décalage entre la mort du capitaine et la perte d'initiative. L'initiative devrait être ajustée dès qu'un des sbires fait une attaque. Ça permet d'être plus efficace. Ça fonctionne bien comme ça chez toi ?


Aussi, est-il possible de rajouter capitaine à tous les membres de la map sauf les alliés et le capitaine lui-même ?

DarKDinDoN

Tu parles des alliés de qui ? Du capitaine ? Si oui, sélectionne le capitaine et tape !cof-capitaine @{selected|token_id} --disque @{selected|token_id} 1000 --saufAllies devrait faire ce que tu veux. Si non, tu peux sélectionner un membre de l'alliance à exclure et remplacer le premier @{selected|token_id} par le nom du capitaine.

Ce message a reçu 1 réponse de
  • DarKDinDoN
avatar
Ulti

J'avais pas fait attention à la baisse d'initative dès qu'un PNJ tape. C'est très bien comme ça en effet.

Merci pour l'autre commande.

avatar

Ulti,

Rapport au paramètre limiteCibleParJour sur le soin de la voie de la guérison (donc à 1), lorsque qu'un perso tente de soigner un autre qui n'a pas besoin d'être soigné, le script renvoie bien que le perso ciblé n'a pas besoin d'être soigné.
Par contre, lorsque le perso a effectivement besoin d'être soigné, il ne peut plus car le script indique qu'il a déjà été soigné.

Bref la "charge" est consommée alors qu'elle ne devrait pas lorsqu'un personnage n'a pas besoin de soins.

EDIT 1 : il y a une erreur dans le texte "ne peut plus bénéficier de soins ajourd'hui" sur aujourd'hui

EDIT 2 : tu penses qu'il est possible de faire la limite en fonction du soigneur et non du soigné ? Actuellement, si deux perso tenter de soigner la même cible, ce n'est pas possible à cause de la limite. Le token cible à un nouvel attribut avec son propre nom. Peut-être avoir un atribut avec le nom du soigneur et le nombre de fois qu'il a été soigné ?

Ce message a reçu 1 réponse de
  • Ulti
avatar
DarKDinDoN

De bonnes questions, que je me suis posées aussi pour certaines, mais c'est toujours mieux d'en discuter.

Pour ce qui est de la limite en fonction de la cible, c'est la même problématique qu'avec la régénération : les règles indiquent qu'un lanceur ne peut pas utiliser le sort plus d'une fois par jour sur une cible donnée. Mais elles peuvent le lancer sur autant de cibles qu'elles le veulent dans une même journée. Donc pour moi, le problème vient de la cible, et c'est elle qui ne peut pas supporter/fournir l'énergie vitale/... pour bénéficier du sort plus d'une fois par jour, peu importe que ça vienne de différents soigneurs. Cela dit, chacun interprète ça à sa façon, et si tu veux une limite par cible et par lanceur, --limiteCibleParJour admet un argument optionnel qui peut servir à ça : utilise alors --limiteCibleParJour 1 soins_@{selected|token_name}.

Pour ce qui est de la "charge" consommée ou pas, c'est une décision délicate, que je m'étais posée en particulier pour les dépenses de mana ou le nombre de charges par jour d'un objet magique. J'avais finalement décidé de faire utiliser la charge, ça me semblait le plus logique, et en cas d'erreur ou si ça ne convient pas, il y a toujours le undo. Maintenant, pour le cas de la charge par cible, il serait peut-être plus cohérent avec mon interprétation du paragraphe précédent de ne pas la consommer dans le cas où la cible est au maximum de ses PVs. Comme quoi ça sert d'en discuter. Je vais implémenter ça quand j'aurai un moment...

PS: merci pour les typos, j'en rate plein, et ça m'aide vraiment qu'on me les signale !

avatar

Cela dit, chacun interprète ça à sa façon, et si tu veux une limite par cible et par lanceur, --limiteCibleParJour admet un argument optionnel qui peut servir à ça : utilise alors --limiteCibleParJour 1 soins_@{selected|token_name}.

La commande ne marche pas pour moi. Je vois bien dans les attributs du soigné le nom du token soigneur. Mais je ne peux pas à nouveau soigner avec un autre token soigneur.
A noter : les deux soigneurs sont deux tokens numérotés rattachés à une même fiche de personnage (pareil pour le soigné, il est rattaché mais numéroté, donc sans bar de vie linké).

il serait peut-être plus cohérent avec mon interprétation du paragraphe précédent de ne pas la consommer dans le cas où la cible est au maximum de ses PVs. Comme quoi ça sert d'en discuter. Je vais implémenter ça quand j'aurai un moment...

Super !

Sinon la toute dernière version du script sur Github plante (TypeError: Cannot read property 'pageId' of undefined)

Enfin et à noter même si ça n'a pas l'air très grave, j'ai fait une commande pour simuler les manoeuvres. Elle fait juste un test d'attaque avec l'arme sélectionnée. La commande est :

!cof-attack @{selected|token_id} @{target|token_id} ?{Arme ?|Boxe,1|Epée longue,2|Arc,3} ?{Type ?|Aveugler|Bloquer|Désarmer|Renverser|Repousser|Tenir à distance} --test --bonusAttaque ?{Bonus/Malus|0}

A chaque fois que j'affiche la liste des actions d'un token dans le chat (#TurnAction#), j'ai un warning dans le chat qui affiche : "Impossible de trouver la portée pour ?{Arme"

Sur les manoeuvres, si un jour tu as le temps, ça serait bien d'implémenter un test de manoeuvre qui donne le résultat de jets opposés d'attaque (comme la compétence "désarmer" du chevalier). Juste pour éviter de faire deux faire deux tests et de les comparer.

merci !

Ce message a reçu 1 réponse de
  • Ulti
avatar

Sinon la toute dernière version du script sur Github plante (TypeError: Cannot read property 'pageId' of undefined)

DarKDinDoN

Corrigé

avatar

Cela dit, chacun interprète ça à sa façon, et si tu veux une limite par cible et par lanceur, --limiteCibleParJour admet un argument optionnel qui peut servir à ça : utilise alors --limiteCibleParJour 1 soins_@{selected|token_name}.

La commande ne marche pas pour moi. Je vois bien dans les attributs du soigné le nom du token soigneur. Mais je ne peux pas à nouveau soigner avec un autre token soigneur.
A noter : les deux soigneurs sont deux tokens numérotés rattachés à une même fiche de personnage (pareil pour le soigné, il est rattaché mais numéroté, donc sans bar de vie linké).

DarKDinDoN

Oui, en effet. Le problème, c'est l'espace dans le nom. Je viens de corriger ça.

avatar

Je confirme, ça marche nickel oui

avatar

Salut Ulti,

Je suis en train de tester la fonctionnalité de lumière. Voici les résultats :

La commande !cof-eteindre-lumiere sur un PJ provoque cette erreur pour moi "TypeError: Cannot read property 'toLowerCase' of undefined"

Est-il possible de rallumer toutes les sources de lumière d'un coup avec un nom ? Même fonctionnalité que pour éteindre tout les sources avec le même nom mais pour les rallumer.

Est-il possible de rajouter le nombre de torches aux consommables ? On pourrait faire des échanges entre pj comme ça !

Pour le message lorsqu'on allume un torche : "allume une torche, qui peut encore éclairer pendant 1 minutes. Il lui reste encore 9 autres torches", il faudrai retirer la virgule, rajouter un point à la fin et mettre plutôt X torches restantes pour éviter l'utilisation du genre masculin ou féminin.

Enfin, j'aime bien l'effet "flicker" du script de Aarron, tu penses que c'est possible ?

avatar

Salut Ulti,

Je suis en train de tester la fonctionnalité de lumière. Voici les résultats :

La commande !cof-eteindre-lumiere sur un PJ provoque cette erreur pour moi "TypeError: Cannot read property 'toLowerCase' of undefined"

Bien vu, merci.

Est-il possible de rallumer toutes les sources de lumière d'un coup avec un nom ? Même fonctionnalité que pour éteindre tout les sources avec le même nom mais pour les rallumer.

J'ai évité ça, justement parceque ça me semblait un usage non souhaitable. Les PNJs n'utilisent pas de lumière, c'est une perte fluidité du jeu pour rien, et les PJs allument leur torche chacun quand ils en ont envie. Mais j'ai sûrement raté un usage ? (En revanche, un coup de vent peut tout éteindre...)

Est-il possible de rajouter le nombre de torches aux consommables ? On pourrait faire des échanges entre pj comme ça !

Je voulais faire ça au début, mais contrairement aux autres consommables, les torches ont un niveau 'dutilisation, en plus du nombre de torches, ce qui fait que ça ne peut pas fonctionner de la même manière. Si tu as des idées d'interface, je veux bien.

Pour le message lorsqu'on allume un torche : "allume une torche, qui peut encore éclairer pendant 1 minutes. Il lui reste encore 9 autres torches", il faudrai retirer la virgule, rajouter un point à la fin et mettre plutôt X torches restantes pour éviter l'utilisation du genre masculin ou féminin.

Alors, pour une fois, pas d'accord, je garde la virgule, et il n'y a pas de soucis de féminin ou masculin dans cette phrase (si je ne me trompe pas). Je vais rajouter le point à la fin.

Enfin, j'aime bien l'effet "flicker" du script de Aarron, tu penses que c'est possible ?

DarKDinDoN

Ça me semblait un peu gadget. Ça impose d'utiliser un token dont on change régulièrement la place, ce qui consomme de la ressource. Je ne pense pas l'implémenter, mais c'est vrai que l'effet est joli... Tu remarqueras d'ailleurs que dans le script d'Aaron ça ne marche que sur la carte sur laquelle les joueurs sont, donc pas quand les joueurs sont séparés.

Ce message a reçu 1 réponse de
  • DarKDinDoN
avatar

Sur les manoeuvres, si un jour tu as le temps, ça serait bien d'implémenter un test de manoeuvre qui donne le résultat de jets opposés d'attaque (comme la compétence "désarmer" du chevalier). Juste pour éviter de faire deux faire deux tests et de les comparer.

merci !

DarKDinDoN

Ça fait un moment que j'ai envie de m'attaquer aux manoeuvres, mais c'est un peu compliqué à cause de tous les choix possibles pour l'adversaire. Je vais peut-être effectivement commencer par faire une commande de test d'attaque opposé pour les manoeuvres risquées. Peut-être pas besoin de plus automatiser que ça...

avatar
Ulti

Est-il possible de rallumer toutes les sources de lumière d'un coup avec un nom ? Même fonctionnalité que pour éteindre tout les sources avec le même nom mais pour les rallumer.

J'ai évité ça, justement parceque ça me semblait un usage non souhaitable. Les PNJs n'utilisent pas de lumière, c'est une perte fluidité du jeu pour rien, et les PJs allument leur torche chacun quand ils en ont envie. Mais j'ai sûrement raté un usage ? (En revanche, un coup de vent peut tout éteindre...)

Je pensais au cas ou on avait besoin d'éteindre et de rallumer des lumières dans un bâtiment, comme une tour de magicien. Ce n'est pas très commun comme utilisation, c'est sûr.

Est-il possible de rajouter le nombre de torches aux consommables ? On pourrait faire des échanges entre pj comme ça !

Je voulais faire ça au début, mais contrairement aux autres consommables, les torches ont un niveau 'dutilisation, en plus du nombre de torches, ce qui fait que ça ne peut pas fonctionner de la même manière. Si tu as des idées d'interface, je veux bien.

Dans un premier temps, peut-être juste échanger des torches sans prendre en compte le taux d'utilisation ? En commencant par les torches non utilisées donc ? Ca serait vraiment utile d'échanger comme ça les torches.
Au pire, on ne peut simplement pas échanger les torches en cours d'utilisation.

Concernant les torches, 60 minutes, ça me parrait long. En fait, j'ai cherché en ligne la durée et la visibilité dans le noir d'une torche médiévale ou faite maison, impossible de trouver de bonnes données ...
Toutefois, 60 min paraît long, peut-être faut-il en faite une option ? Et tu mets combien en radius sur les torches ?

Pour le message lorsqu'on allume un torche : "allume une torche, qui peut encore éclairer pendant 1 minutes. Il lui reste encore 9 autres torches", il faudrai retirer la virgule, rajouter un point à la fin et mettre plutôt X torches restantes pour éviter l'utilisation du genre masculin ou féminin.

Alors, pour une fois, pas d'accord, je garde la virgule, et il n'y a pas de soucis de féminin ou masculin dans cette phrase (si je ne me trompe pas). Je vais rajouter le point à la fin.

Très juste ! C'est un pronom impersonnel et non personnel, bien vu. Pour la virgule, j'en vois pas l'utilité, ça marque un arrêt qui je ne ferais pas à l'oral.

Enfin, j'aime bien l'effet "flicker" du script de Aarron, tu penses que c'est possible ?

DarKDinDoN

Ça me semblait un peu gadget. Ça impose d'utiliser un token dont on change régulièrement la place, ce qui consomme de la ressource. Je ne pense pas l'implémenter, mais c'est vrai que l'effet est joli... Tu remarqueras d'ailleurs que dans le script d'Aaron ça ne marche que sur la carte sur laquelle les joueurs sont, donc pas quand les joueurs sont séparés.

C'est gadget, mais qu'est ce que c'est cool sur la map démon En fait, c'est le seul truc qui bouge sur la map. L'opposition entre l'immobilité de tous les éléments à l'écran et le "flicker" des lumières rend super bien je trouve. Maus oui, ça sert pas à grand chose et ça fait pas mal de dev, j'en conviens.

Sur les manoeuvres, si un jour tu as le temps, ça serait bien d'implémenter un test de manoeuvre qui donne le résultat de jets opposés d'attaque (comme la compétence "désarmer" du chevalier). Juste pour éviter de faire deux faire deux tests et de les comparer.

merci !

DarKDinDoN

Ça fait un moment que j'ai envie de m'attaquer aux manoeuvres, mais c'est un peu compliqué à cause de tous les choix possibles pour l'adversaire. Je vais peut-être effectivement commencer par faire une commande de test d'attaque opposé pour les manoeuvres risquées. Peut-être pas besoin de plus automatiser que ça...

Ce qu'il faudrait c'est demander avec quelle arme le personnage effectue sa manoeuvre. Par contre, je ne sais pas comment faire pour la cible. Il faudrait pouvoir faire ça aussi. Ou alors, il faudrait prendre le score d'attaque au contact, mais le problème c'est que pour les PNJs, il est très souvent inférieur aux stats données dans les stats blocks. Par exemple, on a souvent des créatures avec 16 en force et +7 avec une arme. Donc un score d'attaque au contact de +3 et avec une arme à +7.
Sinon pour régler le problème, sur la feuille de personnage, il faudrait mettre le bon mod de force, ajuster les score d'attaque pour être cohérent avec les scores aux armes affichées dans les statsblock et si deux armes qui utilisent le même score d'attaque ont des scores différents, alors ajuster au niveau de l'arme.

Sinon pour la liste des manoeuvres :

  • Aveugler : Le problème est que cet état n'est pas l'équivalent de l'état préjudiciable "Aveuglé" ... C'est pas super non plus pour se souvenir qu'elle est la différence avec l'état préjudiciable. A moins que ça désiquilibre vraiment le jeu, je serais partant pour qu'on utilise l'état préjudiciable classique
  • Bloquer : Je crois que tu as déjà implementée une fonction qui empêche un token de bouger dans certaines conditions. Il faudrait toutefois créé un nouvel état avec le picto qui va bien
  • Désarmer : je pense qu'il faut gérer ça en texte uniquement. Le critique n'était pas vraiment gérable sur Roll20 je trouve.
  • Faire diversion : je suis pas sûr de voir comment faire pour la perception. Peut-être que ça va taper dans un attribut "perception" sur la fiche de personnage et le !cof-jet propose toujours la compétence perception quoiqu'il arrive ? Ou alors simplement en texte. Il faudra utiliser un picto qui va bien aussi.
  • Menacer : je crois que le script a déjà des mécaniques de ce genre. Faut un picto qui va bien aussi.
  • Renverser : encore un état qui ne correspond pas à l'état préjudiciable équivalent. Je propose d'utiliser l'état préjudiciable équivalent, tout simplement.
  • Repousser : à gérer en texte
  • Tenir à distance : à gérer en texte avec un picto qui va bien

J'espère que tout ça n'est pas trop confus moqueur

Ce message a reçu 1 réponse de
  • Ulti
avatar

Dans un premier temps, peut-être juste échanger des torches sans prendre en compte le taux d'utilisation ? En commencant par les torches non utilisées donc ? Ca serait vraiment utile d'échanger comme ça les torches.
Au pire, on ne peut simplement pas échanger les torches en cours d'utilisation.

Oui, je crois que je vois comment je pourrais faire ça... À mettre dans ma todo !

Concernant les torches, 60 minutes, ça me parrait long. En fait, j'ai cherché en ligne la durée et la visibilité dans le noir d'une torche médiévale ou faite maison, impossible de trouver de bonnes données ...
Toutefois, 60 min paraît long, peut-être faut-il en faite une option ? Et tu mets combien en radius sur les torches ?

Mes sources : le compendium D&D 5e. Du coup, la portée de la torche est de 13 m (dont 7 m en brillant).

Ce message a reçu 1 réponse de
  • DarKDinDoN
avatar
DarKDinDoN

Pour les manoeuvres, j'ai déjà une mécanique qui ne marche pas trop mal avec !cof-desarmer pour trouver quel bonus d'attaque utiliser, je pense la réutiliser.

Pour ce qui est des différents états, je pense aussi réutiliser au maximum les états préjudiciables existants. Pour les nouveaux, ça va devenir difficile de trouver des icones de statut, la liste est pas très longue, et surtout assez mal foutue (beaucoup de trucs inutiles, je trouve). Si tu as des idées, il faut choisir dans cette liste... Le mieux, je pense, c'est de ne pas mettre d'icone, si on a un trou de mémoire, utiliser cof-statut, qui devrait tout lister. Pratiquement aucun effet temporaire n'a d'icone associée, ce ne serait pas possible.

Ce message a reçu 1 réponse de
  • DarKDinDoN
avatar
Ulti

Mes sources : le compendium D&D 5e. Du coup, la portée de la torche est de 13 m (dont 7 m en brillant).

Ouah, ca me paraît énorme la portée de 13 mètre d'une torche. Sur les vidéos Youtube, ça parait beaucoup moins ! Tout comme pour la durée.

avatar
Ulti

Pour les manoeuvres, j'ai déjà une mécanique qui ne marche pas trop mal avec !cof-desarmer pour trouver quel bonus d'attaque utiliser, je pense la réutiliser.

J'ai regardé ton script, et si on n'utilise pas la mécanique d'arme en main (ce qui est mon cas, car je trouve ça trop lourd), le script fallback sur le score d'attaque au contact (ATKCAC).
Ce qui me rammène à ce que j'ai écrit plus haut, il faut donc faire très attention à ce que le score d'attaque sur les fiches de PJ/PNJ soient au plus proche des score d'attaque des armes de contact.
Parce que moi, je m'embête pas trop avec ça, je mets le bon mod de force et j'utilise le bonus directement sur l'arme pour coller avec le stat block du monstre/pnj démon Mais je vais corriger ça sur toutes les feuilles du coup.

avatar

J'ai regardé ton script, et si on n'utilise pas la mécanique d'arme en main (ce qui est mon cas, car je trouve ça trop lourd), le script fallback sur le score d'attaque au contact (ATKCAC).
Ce qui me rammène à ce que j'ai écrit plus haut, il faut donc faire très attention à ce que le score d'attaque sur les fiches de PJ/PNJ soient au plus proche des score d'attaque des armes de contact.
Parce que moi, je m'embête pas trop avec ça, je mets le bon mod de force et j'utilise le bonus directement sur l'arme pour coller avec le stat block du monstre/pnj démon Mais je vais corriger ça sur toutes les feuilles du coup.

DarKDinDoN

Ce n'est pas si lourd d'utiliser la mécanique d'arme en main ! Il suffit de marquer 'arme' dans le champ spécial des attaques qui utilisent une arme.

Bon, cela dit, c'est vrai que la mécanique pour désarmer n'est pas forcément idéale. J'admet un argument optionnel pour sélectionner le label de l'attaque pour l'attaquant, mais ça me semble peu pratique de sélectionner aussi le label de la cible.

Au lieu de prendre l'attaque au contact, je pourrais peut-être prendre une attaque au hasard parmis celles au contact (je suppose que les manoeuvres ne concernent que les attaques au contact ?), ou bien prendre une des attaque avec un tag particulier dans le champ spécial, si il existe ?

Ce message a reçu 1 réponse de
  • DarKDinDoN
avatar
Ulti

Ce n'est pas si lourd d'utiliser la mécanique d'arme en main ! Il suffit de marquer 'arme' dans le champ spécial des attaques qui utilisent une arme.

Oui le paramètre est effectivement très simple à mettre en place. C'est tout le reste qui est lourd. Rengainer, dégainer à nouveau. Le script qui n'autorise pas l'utilisation de l'arme si pas dégainée, etc.
Se souvenir de quelle arme on a dans la main, c'est quelque chose que le joueur peut faire, ce n'est pas trop contraignant, du coup pas de script pour moi.

Bon, cela dit, c'est vrai que la mécanique pour désarmer n'est pas forcément idéale. J'admet un argument optionnel pour sélectionner le label de l'attaque pour l'attaquant, mais ça me semble peu pratique de sélectionner aussi le label de la cible.

Au lieu de prendre l'attaque au contact, je pourrais peut-être prendre une attaque au hasard parmis celles au contact (je suppose que les manoeuvres ne concernent que les attaques au contact ?), ou bien prendre une des attaque avec un tag particulier dans le champ spécial, si il existe ?

Non, je ne pense pas qu'il faille prendre une attaque au hasard. Et je ne vois pas trop comment faire pour gérer l'arme de la cible à moins de faire un message dans le chat qui demande qu'elle arme est utilisée pour la cible.
Une version moins compliquée à implémenter serait effectivement de mettre un tag dans le champ spécial de l'arme utilisée par défaut ; Et sans ce label prendre le score d'attaque au contact. (je crois que ça joue uniquement sur CAC pour la cible oui. Pour l'attaquant ca peut partir d'une arme à distance, je crois)

avatar

Oui le paramètre est effectivement très simple à mettre en place. C'est tout le reste qui est lourd. Rengainer, dégainer à nouveau. Le script qui n'autorise pas l'utilisation de l'arme si pas dégainée, etc.

DarKDinDoN

C'est vrai ça ?? Je croyais que le script se contentait d'afficher que le personnage avait dégainé une nouvelle arme, si l'arme n'est pas en main, sans rien interdire. Ce n'est pas le cas ?

Ce message a reçu 1 réponse de
  • DarKDinDoN