(note, ce post a été écrit avec
mdown et est tiré de
cette page)
Introduction
MatchBot, le bien-nommé, est à la fois capable de se connecter à un réseau IRC, d’intéragir avec les utilisateurs de celui-ci, de communiquer avec un serveur Urban Terror et de lancer ledit serveur Urban Terror. Tout ceci dans le but d’organiser des matchs Urban Terror, de permettre leur déroulement dans les meilleures conditions possibles et d’établir un classement des joueurs ayant participé à ces matchs.
Ces matchs se déroulent en pick-up, c’est-à-dire qu’aucune équipe n’est prévue à l’avance, les joueurs sont libres de jouer avec qui ils désirent. De même, le classement est individuel, bien qu’il se base sur des matchs joués en équipe.
MatchBot est constitué de trois composants indépendants : match_bot, elo et elo_reset. elo_reset est un petit script destiné à créer une table des scores vide. elo est un programme qui gère la mise à jour du classement, son stockage et son export au format texte. Enfin, match_bot est le noyau du bot, il est connecté à la fois à IRC et au serveur UrT. Ces trois programmes sont codés en OCaml, match_bot utilise la librairie IRC pour l’OCaml de smimou pour dialoguer à travers IRC et les sockets Unix pour interroger le serveur UrT.
Petite histoire
Après un week-end de jeu acharné organisé à la Pâques 2008 par le Site du Zéro, un chan #sdz-urt a été créé sur Epiknet en réaction au grand succès de ce jeu. MatchBot a donc été créé pour ce chan.
Installation
Les sources de MatchBot, sous licence GPL, sont en libre-accès, suivez simplement
ce lien. Par défaut, match_bot se connecte à Epiknet sur le channel #sdz-urt, au serveur UrT d’iuwt.fr et n’a pas de mot de passe rcon configuré pour dialoguer avec le serveur UrT. Pour configuer le bot, éditez simplement le fichier
match_bot.ml. Notez également que MatchBot ne fonctionne que si l’executable d’UrT est placé dans
~/UrbanTerror/. Compilez ensuite, grâce à la commande make, les trois executables puis placez les dans le même répertoire. Utilisez la commande
./elo_reset pour générer un fichier scores puis
./match_bot pour lancer le bot.
En cas de problème, n’hésitez pas à
me contacter.
Utilisation
La syntaxe des commandes IRC est :
/msg MatchBot COMMANDE.
Voici la liste des commandes, dans l’ordre théorique de leur utilisation. Les commandes modérées sont celles qui ne sont utilisables que par un nombre restreint de personne (la liste est définie dans
match_bot.ml sous le nom de
granted_people).
| ladder |
affiche le classement des joueurs. |
| offer_game game_type team_size |
propose un match avec des équipes de taille team_size dans le mode de jeu game_type (qui peut valoir TS, BOMB ou CTF). Modérée. |
| join team |
rejoint l’équipe team (red ou blue), si et seulement si celle-ci n’est pas complète. |
| remove_player player |
enlève le joueur player de la partie. Modérée. |
| set_map map |
définit l’équipe du joueur comme prête et map comme la map choisie par celle-ci. |
| people |
affiche la liste des joueurs actuellement sur le serveur et la map jouée, ne peut s’utiliser que durant un match. |
| score |
affiche le score actuel sur le serveur. |
| match_result score |
définit score (valant 0.5, 1 ou 0) comme le score réalisé par l’équipe du joueur invoquant la commande. Lorsque les deux équipes ont indiqué un score compatible (c’est-à-dire que la somme des scores vaut 1) le match se termine. |
| cancel_match |
annule le match. Modérée. |
La liste des commandes disponibles pour elo est :
| ./elo display |
affiche la liste des joueurs avec leur classement |
| ./elo display_output |
sors la liste des joueurs sur scores.txt |
| ./elo add player score |
ajoute un joueur |
| ./elo update player1 ... playern score |
met à jour les scores, la première équipe doit être placée en première. |
Bons matchs :)