[TCL] Reanimator (version actuelle : 1.2)
#1
Description :

Reanimator permet à votre Eggdrop d'intervenir lorsque personne ne parle pendant un certain temps sur un chan. Vous pourrez par exemple lui faire raconter des blagues ou s'apitoyer sur sa condition de bot.

Les interventions peuvent afficher une ou plusieurs lignes de texte, envoyer des commandes RAW au serveur, ou même exécuter des commandes tcl. Votre bot devient ainsi virtuellement capable de dire ou faire tout ce que vous pourrez imaginer afin de redonner vie à votre chan.
De plus, un certain nombre de variables spéciales sont reconnues (détaillées dans la section configuration du script).

Pour plus de réalisme, le bot simule le temps de frappe des lignes de texte et les affiche après un certain délai qui varie selon leur longueur.

La commande !reanimator_test permet au propriétaire de l'eggdrop de tester en direct l'effet de l'intervention spécifiée.
Syntaxe : !reanimator_test {{ligne 1}[ {ligne 2}[ {...}]]}

La commande !reanimator_stats permet au propriétaire de l'eggdrop de compter et d'afficher le nombre d'interventions dans la base de données, ainsi que quelques autres informations concernant les réglages du script.

Pour activer Reanimator sur un chan, vous devez taper ceci en partyline de l'Eggdrop :
  .chanset #NomDuChan +reanimator
et ceci pour le désactiver :
  .chanset #NomDuChan -reanimator


Screenshots :

[Image: http://imgur.com/Xed3FUN.png]

[Image: http://imgur.com/3iERYHs.png]

[Image: http://imgur.com/Q8uf2nL.png]
nécessite le script Oracle

[Image: http://i.imgur.com/eG5SFYT.png]
interaction avec un bot de BotServ


Annexe technique - Interventions (fonctionnement, syntaxe, variables et commandes) :

Chaque intervention d'une seule ligne doit se présenter sous cette forme :
   {{intervention}}.
Les interventions sur plusieurs lignes sont possibles de cette façon :
   {{1ère ligne} {2ème ligne} {...}}.
Vous pouvez utiliser des codes couleurs/gras/... selon la syntaxe habituelle d'un Eggdrop.
Vous pouvez utiliser un certain nombre de variables spéciales dans les interventions.
Certaines d'entre-elles existent en deux versions dont l'une est préfixée par tcl_; celle-ci doit être utilisée dans les interventions de type /tcl (voir plus bas) car les caractères spéciaux y sont neutralisés.

Variables spéciales :
   %botnick%
       Sera remplacé par le nick actuel de l'Eggdrop.
   %chan%
       Sera remplacé par le nom du chan.
   %hour%
       Sera remplacé par l'heure qu'il est (seulement l'heure).
   %hour_short%
       Sera remplacé par l'heure qu'il est (seulement l'heure et sans le 0 au début).
   %minutes%
       Sera remplacé par l'heure qu'il est (seulement les minutes).
   %minutes_short%
       Sera remplacé par l'heure qu'il est (seulement les minutes et sans le 0 au début).
   %seconds%
       Sera remplacé par l'heure qu'il est (seulement les secondes).
   %seconds_short%
       Sera remplacé par l'heure qu'il est (seulement les secondes et sans le 0 au début).
   %day_num%
       Sera remplacé par le jour numérique.
   %day%
       Sera remplacé par le jour de la semaine en toutes lettres.
   %month_num%
       Sera remplacé par le mois numérique.
   %month%
       Sera remplacé par le mois en toutes lettres.
   %year%
       Sera remplacé par l'année.
   %idle_time%
       Sera remplacé par le temps écoulé depuis que personne n'a parlé.
       Si personne n'a jamais parlé sur ce chan et qu'une intervention contient %idle_time%, elle sera ignorée et une autre intervention sera choisie aléatoirement.
   %lastnick%
       Sera remplacé par le nick de la dernière personne ayant parlé sur ce chan.
       Si personne n'a jamais parlé sur ce chan ou si la dernière personne ayant parlé n'est plus sur le chan et qu'une intervention contient %lastnick%, elle sera ignorée et une autre intervention sera choisie aléatoirement.
       Les changements de nick de la dernière personne ayant parlé sont surveillés et %lastnick% est tenu à jour automatiquement.
   %randnick% / %tcl_randnick%
       Sera remplacé par un nick choisi aléatoirement parmi les utilisateurs présents, à l'exception de l'Eggdrop.
       Si vous utilisez 3 fois la variable %randnick% dans une même intervention, elle sera remplacée par 3 nicks différents.
       %randnick<index>% / %tcl_randnick<index>%
       Sera remplacé par un nick pris aléatoirement sur le chan.
       Si vous utilisez 3 fois la variable %randnick<index>% dans une même réponse, elle sera remplacée par 3 fois le même nick si l'index est identique.
       L'index est une valeur numérique arbitraire.
       Voici un exemple qui vous permettra de mieux comprendre :
           {{%randnick1% tu es là ?} {%randnick1% ?} {%randnick2% n'est pas là non plus je suppose ?}}
       donnera sur 3 lignes différentes :
           Pierre tu es là ? | Pierre ? | Jean n'est pas là non plus je suppose ?

Commandes spéciales :
   /me <texte>
       Fait faire un CTCP ACTION au bot
   /putserv <commande RAW à envoyer au serveur>
       Permet d'envoyer des commandes au serveur IRC.
       Exemple : {/putserv kick #monchan Machin raison du kick}
       Pour plus d'informations, consultez http://www.faqs.org/rfcs/rfc1459.html
   /tcl <commande(s)>
       Permet d'exécuter une ou plusieurs commandes tcl. Vous pouvez par exemple appeler une proc d'un autre script.
       Exemple : {/tcl putquick "PRIVMSG #testchan :test [regsub -all {\W} "a-b-c $::botnick" "|"]"}

Veuillez noter que si vous souhaitez utiliser les caractères } et { dans les messages standards, les /me et les /putserv, vous devrez les neutraliser comme ceci : \} et \{.
Par contre, vous ne devez pas neutraliser les { et } lorsque vous utilisez /tcl, vous devez juste veiller à ce qu'ils soient équilibrés.

Astuce : vous pouvez inclure des lignes vides dans une intervention afin d'ajouter un délai supplémentaire entre deux lignes d'une même intervention.
Pour cela, vous devez régler reply_speed_offset à 1 (ou plus) et ajouter autant de {} que vous souhaitez de secondes supplémentaires de délai.
Exemple : {{/me baille} {} {} {} {} {} {/me s'ennuie}}
Dans cet exemple, nous avons ajouté 5 secondes de délai supplémentaire entre l'affichage de /me baille et de /me s'ennuie. Notez que les lignes vides ainsi ajoutées ne seront pas affichées.


Changelog :
Citation :v1.0
  • 1ère version
v1.1
  • Correction : les caractères spéciaux dans le nom du chan, le nick de l'eggdrop ou le nick d'un utilisateur ne devraient plus poser de problème avec les variables %lastnick% %chan% et %botnick%.
  • Ajout de 2 nouvelles variables : %tcl_randnick% et %tcl_randnick<index>% à utiliser à la place des variables %randnick% et %randnick<index>% dans les interventions de type /tcl. Les caractères spéciaux sont neutralisés dans les nicks qu'elles retournent (voir documentation incluse dans le script).
v1.11
  • Correction : les variables spéciales %randnick% %tcl_randnick% %randnick<index>% et %tcl_randnick<index>% ne fonctionnaient pas correctement.
v1.12
  • Correction : le fonctionnement des variables %randnick% et %tcl_randnick% ainsi que celui de %randnick<index>% et %tcl_randnick<index>% avaient été inversés, par conséquent les caractères spéciaux étaient neutralisés quand ils n'auraient pas dû l'être et inversement.
v1.13
  • Correction : remplacement des [clock seconds] par [unixtime] dans le code, car pour une raison que j'ignore la fonction clock seconds retourne parfois une heure erronée.
v1.14
  • Correction : les variables spéciales %randnick%, %randnick<index>%, %tcl_randnick% et %tcl_randnick<index>% ne fonctionnaient pas correctement avec les nicks contenant des accolades.
  • Quelques optimisations du code.
v1.2
  • Les interventions ne seront désormais plus répétées tant que toutes les autres n'auront pas été vues une fois.


Téléchargement :

Vous pouvez télécharger le script ici : Reanimator v1.2

Vous pouvez trouver une liste de mes autres releases ici


Laissez vos commentaires / suggestions / rapports de bugs.
Répondre Avertir
#2
bonjour / bonsoir

Merci menzagitat pour ce tcl je l'utilise déjà des que j'ai des erreurs je te le dis sans fautes =)
Répondre Avertir
#3

Nouvelle version disponible : v1.1

Changelog partiel :
Citation :v1.1
  • Correction : les caractères spéciaux dans le nom du chan, le nick de l'eggdrop ou le nick d'un utilisateur ne devraient plus poser de problème avec les variables %lastnick% %chan% et %botnick%.
  • Ajout de 2 nouvelles variables : %tcl_randnick% et %tcl_randnick<index>% à utiliser à la place des variables %randnick% et %randnick<index>% dans les interventions de type /tcl. Les caractères spéciaux sont neutralisés dans les nicks qu'elles retournent (voir documentation incluse dans le script).

Téléchargement :

Reanimator v1.1


Laissez vos commentaires / suggestions / rapports de bugs.
Répondre Avertir
#4

Nouvelle version disponible : v1.11

Changelog partiel :
Citation :v1.11
  • Correction : les variables spéciales %randnick% %tcl_randnick% %randnick<index>% et %tcl_randnick<index>% ne fonctionnaient pas correctement.

Téléchargement :

Reanimator v1.11


Laissez vos commentaires / suggestions / rapports de bugs.
Répondre Avertir
#5

Nouvelle version disponible : v1.12

Changelog partiel :
Citation :v1.12
  • Correction : le fonctionnement des variables %randnick% et %tcl_randnick% ainsi que celui de %randnick<index>% et %tcl_randnick<index>% avaient été inversés, par conséquent les caractères spéciaux étaient neutralisés quand ils n'auraient pas dû l'être et inversement.

Téléchargement :

Reanimator v1.12


Laissez vos commentaires / suggestions / rapports de bugs.
Répondre Avertir
#6

Nouvelle version disponible : v1.13

Changelog partiel :
Citation :v1.13
  • Correction : remplacement des [clock seconds] par [unixtime] dans le code, car pour une raison que j'ignore la fonction clock seconds retourne parfois une heure erronée.

Téléchargement :

Reanimator v1.13


Laissez vos commentaires / suggestions / rapports de bugs.
Répondre Avertir
#7
Salut Menz,

J'aime bien la conception de ce script.
L'utilisation de liste et fort sympa Smile

Par contre j'aurais une question à te poser.
Tu fait appel au /tcl putserv "PRIVMSG..."

Mais ceci peut-être :
tcl
{{/tcl putserv "PRIVMSG lebot say :blabla"}}



Donc ceci ferais un say par un autre bot en faite.
Si j'ai bien compris le système..

Mais dans c'est cas la pourquoi ne pas faire tout simplement comme ceci :
tcl
{{/putserv "PRIVMSG lebot say :blabla"}}



Ce qui corresponderais comme si tu faisait l'utilisation du /me dans ton exemple.. non ?
Répondre Avertir
#8
@alias :
- Où vois-tu que j'utilise "/tcl putserv" ?
- la syntaxe de PRIVMSG est "PRIVMSG $destination :message", je ne vois pas ce que say vient faire avant les ":"
- un "/me" est un CTCP, la syntaxe en est différente.
Répondre Avertir
#9
oui tu fait "/tcl putquick" mais ce que je veut dire.

C'est que si tu veut faire parler un autre bot par la commande say tu doit bien utilise la syntaxe que j'ai dite non ?
Répondre Avertir
#10
Si tu parles d'envoyer "say" en privé à un autre eggdrop pour le faire parler sur un chan, la syntaxe correcte est :
tcl
/tcl putserv "PRIVMSG NomDuBot :say #nomduchan blabla bla"


Répondre Avertir
#11
Bonsoir,

Le !randquote du Réanimator n'a jamais fonctionné depuis son installation.

Voici la réponse donnée par le bot :

[22:34:00] <@R0b0t> !randquote
[22:34:02] <@R0b0t> ::: Erreur : Base de données inexistante pour le chan #quizz-jeux.

Aucun message en Party Line ou aucune erreur en errorInfo.

Merci.

Cordialement.

Helias
Répondre Avertir
#12
Ca signifie tout simplement qu'il n'existe aucune citation sur le chan #quizz-jeux.

L'exemple que je fournis pour une utilisation conjointe avec Public Quotes System n'est qu'une démonstration de ce qu'il est possible de faire, et il ne convient pas pour un chan sur lequel aucune citation n'a été enregistrée.

A toi d'adapter les interventions du bot à tes besoins; tu pourrais par exemple lui faire lancer le quiz, qu'il donne deux ou trois réponses au hasard puis s'énerve de son échec. Ce ne sont pas les possibilités qui manquent.
Répondre Avertir
#13
Bonjour,

Merci d'avoir répondu.

Mais petite question, le !randquote du Réanimator va bien chercher une quote au hasard dans le public_quotes_system, enfin dans le dossier quote.db ?

Si oui, j'ai bien un fichier "quotes.quizz-jeux" qui contient des citations.

Bonne journée.

Helias
Répondre Avertir
#14
Alors ça devrait fonctionner en effet. J'utilise la même syntaxe sur mon bot et je n'ai pas ce problème.

Si tu tapes toi-même !randquote sur #quizz-jeux, ça donne quoi ?
Répondre Avertir
#15
Bonsoir,

La fonction !randquote fonctionne très bien quand on l'effectue nous-même.

Je vais regarder tout cela d'un peu plus près.

Merci

Helias
Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté