11/10/2011, 13:39
(Modification du message : 27/03/2016, 20:42 par MenzAgitat.)
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 :
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.
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.0v1.1
- 1ère version
v1.11
- 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.12
- Correction : les variables spéciales %randnick% %tcl_randnick% %randnick<index>% et %tcl_randnick<index>% ne fonctionnaient pas correctement.
v1.13
- 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.14
- 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.2
- 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.
- 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.