Prélude. Remerciements

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

I. 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.

II. 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 :
Image non disponible
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 fenetre qui apparait :
Image non disponible
Vous vous retrouvez dans un channel de discussion :
Image non disponible
On peut entamer les hostilités.

III. 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 remote.
Comme vous l'avez lu, les remote 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 pseudo-langage, 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 :

 
Sélectionnez

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

Voyons ce que celà donne lorsqu'une personne rejoint notre channel :
Image non disponible
Le script a détecté l'entrée de la personne sur le channel, et a exécuté le code associé à l'évenement 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 pseudo-langage 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 :

 
Sélectionnez

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

En visuel, cela nous donne :
Image non disponible
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, tout URL est potentiellement un spam/virus, il faut donc les prohiber.
En pseudo-langage, 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 :

 
Sélectionnez

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 :
Image non disponible
On remarque que nous n'avons pas utilisé le caractere ":" dans le pattern. En effet, ":" est le caractère réservé à la séparation des attributs.

IV. 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 parraissent 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 pseudo-langage, celà parrait plutôt simple : "À chaque fois qu'une phrase est dite sur un channel, si mon pseudo apparaît, 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 :

 
Sélectionnez

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

Ce qui donne en image :
Image non disponible

Passons maintenant à ce qu'on pourrait appeler une division du travail. Les alias (voire la FAQ sur les alias : http://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éja 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 :

 
Sélectionnez

/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.

V. 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, mise à part les forums dvp ;).