[Roll20] Script d'Import/Export de PNJ 123

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

avatar

Bonjour à tous,

je voulais partager avec vous un projet qui pourrait vous intéresser si vous utiliser Roll20.

J'ai créé un script permettant d'exporter et d'importer des fiches personnages de Roll20 créé avec La feuille de Personnages "Chroniques Oubliées Fantasy (French)" par Nata.

Vidéo explicative (8 petites minutes) : https://youtu.be/r29l6QOKGvw (je vous montre comment ça fonctionne et surtout le potentiel du truc).
Lien sur Github : https://github.com/waibcam/CO-ImportExport
Documentation : https://kamille.ovh/CO-ImportExport/doc.htm

En fait, j'ai travaillé un peu avec Ulti sur son script COFantasy (que les utilisateurs Pro de Roll20 doivent tous avoir), et je me suis dis qu'il devait y avoir un moyen plus efficace de créer un personnage pour COFantasy. Et c'est là que m'est venu l'idée du script et du partage communautaire des personnages.

J'ai bien conscience que l'idée de base ressemble à d'autres scripts, (comme celui-ci), mais l'idée d'arrivée est un peu différente comme vous avez pu voir dans la vidéo (si ce n'est pas encore fait, faites-le plutôt que de lire ça !)

J'aurai besoin de vous pour tester et aussi pour m'aider à remplir la base de données de PNJ des scénarios (j'en ferai pleins moi même, mais ca me semble plus rapide à plusieurs).

Du coup, s'il y en a parmis vous qui veulent m'aider, envoyez-moi un MP et je vous donnerai une procédure pour me transmettre vos données (en attendant que je fasse un formulaire sur la documentation directement).

Aussi, même si vous ne pensez pas participer, n'hésitez pas à dire ce que vous en pensez. Suis-je un pauvre fou idéaliste ? content

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

C'est vraiment une bonne initiative, et ça semble très bien. Tu prévois de mettre aussi les tokens avec les personnages ? C'est le dernier truc à faire à la main, ce serait dommage de s'en passer...

Quand ce sera à peu près stable, je t'enverrai ce que j'ai.

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

Merci du retour Ulti content

Je n'y avais pas encore pensé mais je vais regarder ça. En effet, ça serait dommage !

avatar

Oulala il est en feu le Kamille.

Primo, je suis super content que tu aies écrit ce script, parce que comme il est très court, j'ai enfin réussi à voir comment on code un script JS pour Roll20, et ça me donne une base de départ. Je trouve perso que si l'API est assez bien documentée, ça manque singulièrement d'explications pour se lancer. Un 'stub' de script serait pas mal. A moins que ça existe et que je n'ai pas trouvé où ça se trouve. Bref, déjà merci pour ça.

Deuxio, comme je te l'ai expliqué dans mes commentaires sur les videos Youtube de tes sessions d'Anathazerin, je n'utilise pas le script COFantasy. J'ai commencé Anathazerin il y a deux ans, et il y a une foultitude de choses que je fais différemment : j'utilise le compteur rouge pour les PV, le vert pour la Mana, et je mets la DEF sur le bleu. J'ai créé plein de macros Abilities pour les capacités de chaque personnage, j'ai rentré les descriptions desdites capacités dans des handouts, et je leur ai créé à chacun un handout avec leurs Voies, Voies de Prestige et Raciales, avec des liens automatique d'un handout à l'autre.

Trimo, après avoir vu les géniales vidéos du Youtubeur américain Take20 qui expliquait comment créer son bestiaire D&D5 dans roll20, j'ai rentré le bestiaire COF dans ma partie sur Roll20 -- du moins les créatures utilisées dans Anathazerin. J'ai aussi rentré les Capacités et Voies de créatures sous forme de handouts. Mais là aussi, comme je n'utilise pas le script COFantasy, je fais tout ça à ma sauce pour mes besoins personnels. Par exemple, tu n'es pas sans savoir que les stats des créatures du bestiaire COF sont juste données sous forme de Mod. Je laisse donc toutes leurs valeurs à 10, et je rentre le Mod. dans la case Divers (dans toutes les macros, il faut donc utiliser @{FOR_TEST} et non @{FOR} pour faire un test de Force, @{DEX_TEST} au lieu de @{DEX}, etc...). Idem pour l'Init et la DEF. Quant à leurs macros Abilities (celles qu'on appelle par '%{nom personnage|ability}'), elles font appel à des macros communes créées dans l'onglet Collection (celles qu'on appelle avec '#macro'). Et il me semble que ces macros sont ignorées lorsqu'on utilise le transmigrateur, donc il faut tout recréer à la main. Ou écrire un script d'import/export. Ou modifier le tien.

Bref, je veux bien partager tout ça, mais ce n'est pas sûr qu'au final ce soit tellement exploitable pour tout le monde, à moins de tout homogénéiser pour utiliser le script COFantasy. Ce que je ne pourrais guère faire, par manque de temps.

Dans tous les cas, bravo pour l'initiative et au plaisir de te lire oui

avatar

Salut TrichLumiere content

Merci pour l'encouragement, ça fai fait plaisir.

Par exemple, tu n'es pas sans savoir que les stats des créatures du bestiaire COF sont juste données sous forme de Mod. Je laisse donc toutes leurs valeurs à 10, et je rentre le Mod. dans la case Divers (dans toutes les macros, il faut donc utiliser @{FOR_TEST} et non @{FOR} pour faire un test de Force, @{DEX_TEST} au lieu de @{DEX}, etc...). Idem pour l'Init et la DEF.

Ah tiens, c'est marrant je fais pas comme ça. Si le MOD est +2, je rentre 14 par exemple et ça le fait très bien.

Leu seul pour lequel j'ajuste c'est la DEX (en fonction de la valeur d'INIT du personnage).

Pour la DEF, là en effet, je fais souvent jouer la DIV et je calcule l'armure en fonction du personnage.

Quant à leurs macros Abilities (celles qu'on appelle par '%{nom personnage|ability}'), elles font appel à des macros communes créées dans l'onglet Collection (celles qu'on appelle avec '#macro'). Et il me semble que ces macros sont ignorées lorsqu'on utilise le transmigrateur, donc il faut tout recréer à la main.

Ma prochaine mise à jour sera la prise ne compte des macros dans l'export. Je ne compte pas exporter les macros globales mais remplacer leurs appels par leurs valeurs.

Par exemple, sur COFantasy, je dispo d'une macro #Attaque = !cof-attack @{selected|token_id} @{target|token_id}

Dans l'export, toute référence à #Attaque sera donc remplacé par !cof-attack @{selected|token_id} @{target|token_id} de façon à ne pas rendre l'import infonctionnel pour un autre utilisateur ne disposant pas de la macro.

Bref, je veux bien partager tout ça, mais ce n'est pas sûr qu'au final ce soit tellement exploitable pour tout le monde, à moins de tout homogénéiser pour utiliser le script COFantasy. Ce que je ne pourrais guère faire, par manque de temps.

Il faudrait que je me rende compte de ce qu'il y à faire pour rendre compatible tes personnage.

Si tu peux m'envoyer quelques exemples (du Scénario 5 par exemple), je suis preneur.

Merci !

avatar

Alors, c'est réellement sympa mais pas pour moi.

En effet, on a tellement de choses à préparer en tant que MJ, que je préfère un import direct depuis les stats du livre de règles ou du scénario (sous forme de stats block). La ça m'intéresserait carrément, quitte à ajouter des infos complémentaires sur les stats block pour avoir les attributs et autres abilities qui vont bien.

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

Bah, je comprends pas trop le souci alors... Les personnages et leurs stats viennent déjà du livre et je vois pas en quoi un stats block te serait plus profitable concrètement ...

Tu peux m'expliquer ?

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

Je pense que ce que veut thefr33dsz, c'est que tu puisses faire Surligner-Copier dans le manuel COF, Coller dans un handout Roll20, et tu tapes une commande API dans le chat qui va analyser le texte collé et créer la fiche de perso correspondante.

Je me trompe ?

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

Si c'est ça, je ne vois pas trop en quoi c'est plus rapide que de cliquer sur un personnage depuis la Base de Données : https://kamille.ovh/CO-ImportExport/doc.html#bd

avatar

Je suis d'accord, sauf que la on est au scénario 8 de la campagne Anathazerin et je fais aussi d'autres scénarios hors campagne. Et je n'ai pas le temps d'attendre que quelqu'un crée les persos. Donc faut que je m'y colle. Et donc copier/coller un stats block depuis les règles en pdf ou un scénario en pdf, ca va vachement plus vite que de reprendre un de tes scripts de persos/monstres dont je ne comprends rien (rien que pour mettre l'image, on fait comment - je vois que l'image est hébergé en ligne).

Je reprends par exemple un orque de base - je remplace quoi pour un vampire par exemple ou un simple gobelin (en plus je m'apercois que les stats d'attributs ne sont pas les modificateurs donc je dois jongler pour les reconvertir depuis les stats block du livre de règles) :

[{"character":{"name":"Orque","avatar":"https://s3.amazonaws.com/files.d20.io/images/35516607/ESbOwkcz7eIogoy2ANmzRg/med.png?1499242035","notes":"","gmnotes":"","bio":""},"attributes":[{"name":"FOR_SUP","current":"@{JETNORMAL}","max":""},{"name":"DEX_SUP","current":"@{JETNORMAL}","max":""},{"name":"CON_SUP","current":"@{JETNORMAL}","max":""},{"name":"INT_SUP","current":"@{JETNORMAL}","max":""},{"name":"SAG_SUP","current":"@{JETNORMAL}","max":""},{"name":"CHA_SUP","current":"@{JETNORMAL}","max":""},{"name":"VERSION","current":"1.7","max":""},{"name":"pv","current":"9","max":"9"},{"name":"RACE","current":"Orc","max":""},{"name":"FORCE","current":"12","max":""},{"name":"DEXTERITE","current":"12","max":""},{"name":"CONSTITUTION","current":"12","max":""},{"name":"INTELLIGENCE","current":"7","max":""},{"name":"CHARISME","current":"7","max":""},{"name":"repeating_armes_-KkC0goBK2NGug1PqjVQ_armenom","current":"1 Epée","max":""},{"name":"repeating_armes_-KkC0goBK2NGug1PqjVQ_armeatkdiv","current":"0","max":""},{"name":"repeating_armes_-KkC0goBK2NGug1PqjVQ_armecrit","current":"20","max":""},{"name":"repeating_armes_-KkC0goBK2NGug1PqjVQ_armedmnbde","current":"1","max":""},{"name":"repeating_armes_-KkC0goBK2NGug1PqjVQ_armedmde","current":"8","max":""},{"name":"CAPA_RACE","current":"Sensible à la lumière : Créatures souterraines, les orques détestent la lumière du jour. La lumière du soleil leur inflige une pénalité de -1 en attaque.","max":""},{"name":"voie1-1","current":"","max":""},{"name":"DEFARMURE","current":"1","max":""},{"name":"DEFBOUCLIER","current":"2","max":""},{"name":"PROFIL","current":"Guerrier","max":""},{"name":"LANGUES","current":"Orc","max":""},{"name":"NIVEAU","current":"1","max":""},{"name":"repeating_armes_-KkC0goBK2NGug1PqjVQ_armeportee","current":"0 m","max":""},{"name":"DEFDIV","current":"","max":""},{"name":"RDS","current":"0n","max":""}],"abilities":[{"name":"Epée","description":"","action":"!cof-attack @{selected|token_id} @{target|token_id} 1 --tranchant","istokenaction":false},{"name":"#TurnAction#","description":"","action":"%Epée","istokenaction":false}]}]

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

Alors en effet, mon script va t'aider uniquement si quelqu'un d'autre à déja créé le personnage et que je l'ai mis dans la BD. Sinon, tu devras le creer depuis Roll20 directement, ca sera plus simple.

Je cherche justemment des personnes qui veulent partager leurs perso afin d'aider d'autres joueurs.

Après, j'avoue que de gérer l'ajout de personnage via un stats block, ca serait cool. Je vais étudier dès que je peux la faisabilité (j'ai eu l'idée du script d'import il y a 3 jours seulement donc le projet n'est pas encore mur, mais prometteur)

avatar
thefr33dsz

Pour l'import depuis les stats blocks, il y a déjà le script d'import de PNJ de CyberT2000.

Et sinon, j'aime beaucoup l'idée. Dès que ce sera un peu plus stable (je m'interroge aussi au niveau des images), je compte bien participer en mettre régulièrement des monstres dans la base !

Pour l'instant, c'est en MP, c'est ça ? Si tu veux je peux déjà t'envoyer le scénario 5, pour ta campagne en cours, au moins.

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

Salut Ulti !

Pour l'import depuis les stats blocks, il y a déjà le script d'import de PNJ de CyberT2000.

malheureusement, son script renvoie sur un 404. J'ai fais un up du sujet, on verra bien.

Et sinon, j'aime beaucoup l'idée. Dès que ce sera un peu plus stable (je m'interroge aussi au niveau des images), je compte bien participer en mettre régulièrement des monstres dans la base !

Concernant les images, ca a l'air de passer tant que les images existent sur Roll20, à priori.

Pour l'instant, c'est en MP, c'est ça ? Si tu veux je peux déjà t'envoyer le scénario 5, pour ta campagne en cours, au moins.

En gros, je donne mon email perso via MP (mais tu l'as déjà je crois) et vous m'envoyez le tout par email dans un fichier .txt

Merki content

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

Le 404 c'est parce que le script est partagé sur DropBox "à l'ancienne". DropBox a changé il y a quelques temps leur système de partage de fichiers publics, et les liens ont désormais une autre tête.

Sinon, comme indiqué par MP, je t'envoies mon bestiaire dès que ton script prendra en compte les macros globales que j'utilise assez massivement.

avatar

Je m'occupe des PNJ du sc6.

avatar

Merci les gars, c'est cool de m'aider. Ca commence à prendre forme.

Je viens de faire un MAJ sur le script.
La dernière version disponible ici : https://raw.githubusercontent.com/waibcam/CO-ImportExport/master/CO_Import_Export.js

    Script :

    • Ajout de la possibilité de créer un personnage en copiant/collant les stats depuis les PDF officiels.
      Exemple de données pour le handout :
      Gobelin de base
      NC 0, créature humanoïde,
      taille petite
      FOR -1 DEX +2 CON -1
      INT -2 SAG +0 CHA -2
      DEF 14 PV 3 Init 15
      Masse +2 DM 1d6-1
      Fronde (20 m) +2 DM 1d4
      Note :
      Il est important que la première ligne soit le nom du personnage.
      Les armes doivent être sur une seule ligne
      (parfois, le PDF coupe l'arme en 2 lignes).
      Les capacités ne sont pas prises en compte. Il faudra les ajouter manuellement.
      Le script a ses limites et (même si je l'ai pas mal testé ce midi) peut avoir des bugs. Si vous en rencontrez => MP

    • Les macro utilisés dans les abilities seront remplacées par la vraie commande pendant l'export. Cela facilitera l'import content

    • !co-import : Il n'est plus nécessaire de tapper cette commande. Dès lors que vous aller créer/modifier un handout qui s'appelle "COImport", l'import débutera automatiquement avec son contenu.

    Documentation :

    • Gestion des personnages par campagne et scénario (bien plus lisible).

    Voilà c'est tout. Si vous avez des commentaires, je suis là !

    avatar

    Ajout de la possibilité de créer un personnage en copiant/collant les stats depuis les PDF officiels.

    Ca marche très bien. Bravo et merci !

    Je ne sais pas si ça pourrait convenir à tout le monde mais pour utiliser COFantasy, ça serait bien que les armes soient numérotées dans leur nom.

    Exemple du gobelin ci dessus :

    1 Masse
    2 Fronde (20 m)

    Après, je ne sais pas si c'est possible, mais s'il y a une distance comme (20 m), mettre Attaque = Distance au lieu de contact.

    Après je pousse le bouchon un peu loin, mais pourquoi pas créer directement une Abilities de "base" pour chaque arme.

    Voilà, c'est tout ... pour le moment plaisantin et merci encore.

    Je vais essayer de vous envoyer mes pnj du sc7 (je ne les ai pas encore tous faits).

    avatar

    Je ne sais pas si ça pourrait convenir à tout le monde mais pour utiliser COFantasy, ça serait bien que les armes soient numérotées dans leur nom.

    Je l'avais fait au début, et puis j'ai pensé que ca ne coutâit pas grand chose de le rajouter. Mais c'est vrai, qu'en même temps, ca ne coute pas grand chose de le supprimer aussi ^^

    Je le remettrai du coup.

    Après, je ne sais pas si c'est possible, mais s'il y a une distance comme (20 m), mettre Attaque = Distance au lieu de contact.

    Ca, normalement, ca devrait le faire ... S'il y a une distance entre parenthèse (50m), 50 devrait être ajouté dans portée et l'attaque devrait être à DISTANCE. Si ca ne le fait pas, c'est un bug. En cas, envoie moi un MP avec le contenu du Handout que tu essayes d'ajouter.

    Après je pousse le bouchon un peu loin, mais pourquoi pas créer directement une Abilities de "base" pour chaque arme.

    On est dans le faisable mais il faudra toujours ajouter les "--tranchant", "--contondant", et tout les petits trucs géniaux du script COFantasy.

    Je vais y réfléchir !

    Je vais essayer de vous envoyer mes pnj du sc7 (je ne les ai pas encore tous faits).

    Cool, merci !

    avatar

    Les personnages des scénario 2 à 6 sont disponibles (presque tous) : https://kamille.ovh/CO-ImportExport/doc.html#bd

    Merci à @Ulti, @Karanek2B et @TricheLumiere

    avatar

    Tu as un Léon en double sur le scénario 6.

    D'ailleurs, que fait ton script au cas où un personnage de même nom existe déjà ? J'aimerais bien que ça ne l'importe pas dans ce cas (je ne peux pas le tester, là maintenant, alors je demandecool).

    Ce message a reçu 2 réponses de
    • Kamille
    • et
    • Kamille