Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
19 août 2010 4 19 /08 /août /2010 17:27

Cela faisait quelques temps que l'idée de développer en langage Perl me titillait. J'avais déjà écrit des petits scripts pour automatiser des tâches, mais pas de programme vraiment conséquent.

 

Une autre chose qui m'intéressait était le fonctionnement de bots sur IRC, ces programmes "roBOTS" destinés à interagir avec les autres utilisateur d'un canal IRC, et vus comme des utilisateurs normaux. Leurs rôles sont très variés : afficher automatiquement un message de bienvenue aux nouveaux connectés, afficher de l'aide, modérer le canal en filtrant les insultes et en éjectant les floodeurs, etc. Tout dépend de ce que le programmeur de ce bot veut bien lui faire faire.

 

Bref, j'avais ces deux idées en tête, et il se trouve que, bien que l'on puisse créer un bot IRC dans n'importe quel langage de programmation, le langage Perl s'y prête particulièrement bien.

 

Je me suis donc attelé il y a quelques jours à la programmation en Perl d'un bot IRC pour le canal #hordes.fr, afin d'apporter un peu d'animation et quelques commandes bien pratiques.

 

Ce canal  dont j'ai déjà parlé à de nombreuses reprises sur ce blog regroupant des joueurs de Hordes, je m'étais dit qu'il serait intéressant de faire en sorte que le bot puisse leur donner des renseignements sur les villes dans lesquelles se trouvent leurs personnages. Mon bot passe son temps à écouter ce qui se dit sur le canal. Quand dans le texte il repère certains mots clés, alors il réagit en affichant quelque chose.

 

Si par exemple un utilisateur du canal tape !hordes, alors le bot affiche si le jeu www.hordes.fr est actuellement ouvert, ou fermé en raison de l'attaque des zombies durant la nuit. Très pratique pour savoir si l'attaque est enfin terminée et si l'on peut retourner jouer. La commande !porte permet de savoir si la porte de la ville du joueur est fermée ou non, la commande !defense affiche le nombre de points de défense de la ville, !ou affiche les coordonnées de la position du joueur, !eau affiche le nombre de rations d'eau restantes, !estimation une estimation de l'attaque pour la nuit qui vient, etc. J'ai ainsi écrit une trentaine de commandes auxquelles le bot peut réagir.

 

Le bot réagit aussi à des balises telles que [d6], [d20], [d100] pour tirer un dé à 6, 20 ou 100 faces, [pf] pour tirer à pile ou face, [pfc] pour afficher pierre, feuille ou ciseaux, [paullepoulpe] ou [plp] pour afficher oui ou non, [carte] pour tirer une carte au hasard parmi 52.

 

J'ai dressé une liste de toutes les commandes et balises sur cette page.

 

J'ai appelé ce bot LeCorbeau, du nom du gardien emblématique des forums de Hordes. En plus des commandes et balises, je le fais réagir à d'autres mots clés pour lui donner un peu de vie et mettre un peu d'animation. Et attention, il a un sale caractère

 

De manière pratique, toutes les commandes en rapport avec le jeu Hordes nécessitent que celui qui les tape porte le même pseudo sur IRC que dans le jeu. Si ce n'est pas le cas, il suffit de taper son pseudo du jeu (ou le pseudo d'un autre joueur si on veut des renseignements sur lui) à la suite de la commande. Par exemple : !ville stravingo au lieu de simplement !ville pour connaitre le nom de la ville dans laquelle se trouve mon personnage.

 

Pour tester le bot, rendez vous sur le canal #hordes.fr et tapez les commandes. La commande !aide vous affichera une liste de toutes les commandes disponibles, dont vous retrouverez le détail sur cette page.

 

Un conseil : si vous tapez directement les commandes, elles apparaitront ainsi que leur résultat dans la zone de conversation commune. Pour éviter d'importuner tout le monde, vous pouvez taper les commandes dans une fenêtre de conversation privée avec le bot, obtenue après avoir tapé : /query LeCorbeau.


Partager cet article

Repost 0
Published by Stravingo - dans Général
commenter cet article

commentaires

WarinaBabylone 28/09/2010 04:08


Bon c'est énorme mais comment le démocratiser? tu peux l'intégrer au DMG?


Schimblick 25/08/2010 13:19


[13:01] == LeCorbeau was kicked from #hordes.fr by ChuckNorris [flood]
[13:02] nous ferons plus chier avec le corbeau

Ambiance sur le chan !!