Closed BertrandLenclos closed 4 years ago
ce truc avait été découvert par des collégiens en atelier ! très utile pour les conjugaisons les pluriels etc
a noter que ça fonctionne aussi dans les array. On pourrait se demander si il ne serait pas pertinent d'en généraliser l'utilisation dans les rives à toutes les fins de mots un peu long (accord) et les fins de verbes (conjugaison), dans la mesure ou cela ne produit pas des déclanchements intempestifs... Je généralise aux étoiles collées aux mots. Ca pourrait permettre aux trigger de se déclencher même en cas d'accord ou de conjugaison approximative, et rendre le chat bot beaucoup plus souple sans pour autant coder avec des fautes, ce que l'on s'est très logiquement interdit jusque la. C'est un assez gros boulot....
a remarquer quand même quelques propriétés curieuses :
exemple :+ *aze* alpha
va être déclenchée par : donne moi le lazer alpha
ce qui veut dire que :
si l'étoile commence ou fini le trigger, en plus d'être une wildcard obligatoire sur le mot lui-même, c'est une wildcard optionnelle sur la fin (ou le début) de la phrase...
a remarquer quand même quelques propriétés curieuses : exemple :+ aze alpha va être déclenchée par : donne moi le lazer alpha ce qui veut dire que : si l'étoile commence ou fini le trigger, en plus d'être une wildcard obligatoire sur le mot lui-même, c'est une wildcard optionnelle sur la fin (ou le début) de la phrase...
Ouais faut éviter de se servir de ça c'est sûrement un bug. Donc ca risque d'etre corrigé dans des versions futures de rivescript. Donc si on met a jour rivescript et qu'on s'est servi de ça, ça marchera plus..
edit: J'ai rien dit, pardon. C'est bon
Tu veux dire éviter globalement d'utiliser l'étoile collée et les parenthèses collées ?
Non pardon j'avais mal lu. NE RIEN EVITER D'UTILISER. TOUT EST BON.
Non pardon j'avais mal lu. NE RIEN EVITER D'UTILISER. TOUT EST BON.
Pas sur justement. Le fait qu'une étoile collée à un mot en début ou en fin de trigger devienne l'équivalent d'une wildcard optionnelle ressemble plus à un bug qu'à une fonctionnalité intentionnelle. Je pense qu'il faut ignorer cette propriété et rajouter [] au cas ou elle serait corrigée. dans l'exemple précédant, écrire plutôt : `+ [] aze alpha` Pour le reste, je pense qu'on peut effectivement l'utiliser massivement.
Je pense qu'il n'y a pas de beug (mais je suis pas sur d'avoir bien compris):
*
est déclenchée quelque-soit la suite de caractères qu'elle remplace, indépendamment du fait que cette suite contienne ou pas des espaces. Donc il est normal que
+ *aze* alpha
soit déclenchée par "donne moi le laser alpha", le contenu de l'étoile étant "donne moi le l"
Il faut donc vraiment se méfier des étoiles collés aux mots, par exemple remplacer dans un déclencheur + il sait rien du tout
par + il sai* rien du tout
va faire déclencher le trigger pour des phrases comme "il saigne même pour un rien du tout" .
Je crois que la bonne solution c'est d'utiliser _
qui est l'équivalent de *
mais qui interdit les espaces et les chiffres:
+ il sai_ rien du tout
ou sinon comme le suggérait Bébert restreindre encore plus avec des parenthèses ou des crochets:
+ il sai[t|s] rien du tout
qui marche pour il sai, il sait, il sais
Je pense que pour les fins et débuts de mots _
est vraiment tout indiqué.
+1
Les _
en (su|pré)fixe ça semble nickel.
Cool, j'ai reporté cette issue dans la doc rive
j'ai reporté cette issue dans la doc : aide_rivescript.md
ESPACE ET PARANTHÈSES
cela peut servir pour des suffixes/préfixes
par exemple