Macros (CBS)
Du scripting à accolades dans n'importe quel texte de prompt.
Syntaxe
Les macros sont des jetons à doubles accolades développés au moment de la requête. Elles fonctionnent dans les champs de personnage, les entrées de lorebook, les presets, les salutations et le texte de chat ordinaire, et elles s'imbriquent.
{{char}} smiles at {{user}}.
{{random::sunny::rainy::foggy}}
{{calc::1+2*3}}Les arguments sont séparés par des doubles deux-points. Une macro inconnue se développe en rien plutôt qu'en erreur : une faute de frappe ne casse jamais une requête.
Macros de base
| Macro | Se développe en |
|---|---|
{{char}} | Le nom du personnage courant (chats de groupe : le locuteur courant). |
{{user}} | Le nom de votre persona. |
{{persona}} | La description de votre persona. |
{{description}} | Le champ description du personnage courant. |
{{lastmessage}} | Le texte du message le plus récent. |
{{time}} / {{date}} | Heure / date actuelles dans votre langue et fuseau horaire. |
Aléatoire
random choisit un argument à chaque développement, pick fait un choix stable pour la conversation, et roll lance des dés en notation d.
{{random::a::b::c}} {{pick::a::b::c}} {{roll::d20}}Tirages et aléas sont seedés par tour : une régénération réutilise les mêmes valeurs, balayer ne relance donc pas vos dés.
Variables
Les variables de chat persistent par branche de conversation ; les variables globales persistent à travers tous les chats. Définissez-les dans tout texte acceptant les macros ou depuis les scripts déclencheurs.
{{setvar::mood::happy}}
{{getvar::mood}}
{{setglobalvar::visits::1}}Le stockage par branche signifie que balayer vers une autre branche restaure l'état de ses variables ; les branches sœurs ne se contaminent jamais.
Formes de bloc
Les blocs enveloppent du contenu : if ne rend son corps que si la condition est vraie, each boucle sur des tableaux avec substitution de slot, et when ajoute des branches else par ligne.
{{#if {{equal::{{getvar::mood}}::happy}}}}
{{char}} is in a great mood.
{{/if}}
{{#each {{array::red::green::blue}} item}}
Color: {{slot::item}}
{{/each}}pure et escape protègent les accolades littérales du développement ; toute balise fermante ferme le bloc ouvert le plus interne.
Commentaires et littéraux
Les macros de commentaire disparaissent avant que le modèle ne les voie, parfaites pour des notes dans les champs de carte. Utilisez les blocs pure pour afficher la syntaxe des macros littéralement.
{{// note to self, never sent to the model}}
{{#pure}}{{char}} stays literal here{{/pure}}