Scripting mIRC : prise en main

Frédéric Mora

Cet article a pour but de vous faire découvrir le scripting mIRC par des exemples plus ou moins simples. ♪

- Titre : Scripting mIRC : prise en main

- Auteur : Frédéric Mora

- Parution : 21 juillet 2006

- Mise à jour : 14 novembre 2007

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2006 Frédéric Mora. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Remerciements

- II. Présentation de mIRC

- III. Premier lancement

- IV. Mes premiers scripts

- V. Un peu plus loin

- VI. Conclusion

I - Remerciements

Merci à ChristopheJ, mon parrain, et à Pill_S, mon parrain de cœur.
Merci à developpez.com d'héberger mes articles.
Merci à Eusebius pour ses corrections orthographiques.

II - Présentation de mIRC

mIRC est un client IRC sous Windows. Il permet de se connecter à un server de chat IRC, et de créer et/ou rejoindre des channels, et de discuter.
Il permet aussi une interface totalement personnalisable : couleur d'écriture, fond d'écran, scripts.
Il est téléchargeable à cette adresse : Site officiel de mIRC. mIRC est un logiciel payant.
Il existe d'autres clients gratuits ou pas, nous ne parlerons ici que de mIRC.

III - Premier lancement

Après avoir téléchargé mIRC, installez-le dans le répertoire de votre choix, puis lancez-le.
Voici ce que vous devriez obtenir :

Entrez votre nom et votre adresse respectivement dans Full Name et Email Address, puis entrez un pseudonyme principal et un alternatif respectivement dans Nickname et Alternative.
Cliquez ensuite sur OK. Vous vous retrouvez sur une fenêtre vide. La prochaine étape est : se connecter à un serveur. Il existe énormément de serveurs IRC de par le monde. Nous choisirons pour notre démonstration l'un des plus connus : Worldnet.
Tapez /server irc.worldnet.net. Vous venez de vous connecter pour la première fois à un server irc, entrez #testDeveloppez dans la fenêtre qui apparait :

Vous vous retrouvez dans un channel de discussion :

On peut entamer les hostilités.

IV - Mes premiers scripts

Déroulez le menu Tools et cliquez sur Scripts Editor…
Vous voici dans la fenêtre de création des remote. Pour plus d'informations sur les remotes, voyez la FAQ : Les remotes.
Comme vous l'avez lu, les remotes ont pour but de réagir aux actions effectuées sur le channel.
Supposons que l'on veuille coder un script qui dit bonjour à la personne dès que quelqu'un vient sur un channel quelconque.
En pseudolangage, on pourrait coder : "À chaque fois qu'une personne rentre sur un channel, dire"Bonjour à toi 'pseudo', bienvenue sur 'channel' !".
Eh bien cela se traduit très simplement en script mIRC :

on *:join:#: {
/msg $chan Bonjour à toi $nick , bienvenue sur $chan !
}

Voyons ce que cela donne lorsqu'une personne rejoint notre channel :

Le script a détecté l'entrée de la personne sur le channel, et a exécuté le code associé à l'évènement attrapé.
Ici, $nick représente le pseudonyme de la personne déclenchant l'évènement, $chan le channel sur lequel il est déclenché.

Nous allons maintenant essayer de faire un script qui exécute une commande d'un utilisateur : lorsqu'il tape "!time", nous devrons lui donner l'heure.
Cela peut se traduire en pseudolangage par : "À chaque fois qu'une phrase est dire sur un channel, si"!time"est dans la phrase, donner l'heure sur le channel".
En voici le code :

on *:text:!time:#: {
/msg $chan $nick , il est $time !
}

En visuel, cela nous donne :

Ici, $time est une variable représentant l'heure courante sous forme hh:mm:ss.

Supposons maintenant un script réagissant aux paroles de notre utilisateur. Dans le souci de garder un channel propre, toute URL est potentiellement un spam/virus, il faut donc les prohiber.
En pseudolangage, un code comme celui-ci est envisagé : "À chaque fois qu'une phrase est dite sur un channel, si"http"et"//"est dans la phrase, alors avertir l'utilisateur que c'est interdit".
Cela pourrait se traduire par :

on *:text:*http*//*:#: {
/msg $chan Attention $nick , votre phrase contient un URL, ce qui est interdit par le règlement du channel. Merci d'éviter à l'avenir.
}

Le résultat sur la fenêtre de chat :

On remarque que nous n'avons pas utilisé le caractère ":" dans le pattern. En effet, ":" est le caractère réservé à la séparation des attributs.

V - Un peu plus loin

Maintenant que vous avez compris le principe, nous allons pouvoir attaquer les choses sérieuses. Comme vous avez pu vous en rendre compte, les possibilités du scripting mIRC paraissent assez vastes. Elles le sont en effet. Pour peu que vous sachiez ce que vous voulez faire, rien ne vous est impossible. Nous allons décrire ici quelques scripts qui peuvent être pratiques.

Pour commencer, parlons des HighLight. Le principe est que si quelqu'un mentionne votre pseudonyme sur un channel, vous êtes prévenus.
En pseudolangage, cela parait plutôt simple : "À chaque fois qu'une phrase est dite sur un channel, si mon pseudo apparait, alors avertir (son, écriture, couleurs)". Pour écrire dans la fenêtre courante du client (sans que les autres utilisateurs ne le voient), il faut utiliser echo -a texte. La variable représentant son pseudonyme est $me. Nous possédons tout le nécessaire pour faire ce script :

on *:text:*:#: {
if ( $me isin $1- ) {
echo -a $nick parle de vous sur $chan
}
}

Ce qui donne en image :

Passons maintenant à ce qu'on pourrait appeler une division du travail. Les alias (voire la FAQ sur les alias : https://irc.developpez.com/faq/mirc/) nous permettent d'exécuter une multitude de commandes en une seule.
Comment cela fonctionne-t-il ? Allez dans l'éditeur de scripts. Cliquez sur l'onglet Aliases. Vous avez déjà quelques exemples d'alias. Le principe est d'associer à une commande plusieurs commandes existantes.
Par exemple, pour faire une commande qui vous met absent, change votre pseudonyme en PasLa, et dit sur tous vos channels "Je m'en vais, à bientôt!", on peut écrire dans la partie Aliases :

/away /away Pas là | /amsg Je m'en vais, à bientôt! | /nick PasLa

Il suffira ensuite de taper /away dans l'importe quel channel pour que les commandes séparées par un | soient exécutées. Pour l'utiliser dans un remote, il suffit de taper /away à l'endroit ou vous auriez tapé /msg.

Il est aussi possible de passer des paramètres à un alias. Je vous renvoie à la FAQ qui explique très bien ce concept.

VI - Conclusion

Bien que très basique, cet article vous a présenté la base du scripting mIRC. Vous avez pu aborder des concepts très simples via des exemples concrets.
Reste à vous familiariser à ces concepts grâce à votre imagination, et n'oubliez pas, quand vous êtes coincé, rien ne vaut un /help, mis à part les forums dvp ;).