Cours de scripting mIRC n°1 : création d'un système de highlight
Définition rapide
Un highlight correspond à un appel d'un utilisateur dans lequel figure notre pseudo. Cet appel est en général fait sur les salons quand
quelqu'un veut nous montrer qu'il s'adresse à nous ou qu'il veut attirer notre attention.
Exemple : merci à EliseFromParis du salon #!paris! sur Voila/Wanadoo pour nous avoir fourni ce superbe exemple.
Ici, on considère que le détenteur du script s'appelle NiCk2.
[16:16] <@EliseFromParis> oui oui tu peux :)
[16:17] <@EliseFromParis> lol NiCk2
On constate que son pseudo apparaît avec des couleurs différentes selon qu'elle prononce le pseudo NiCk2 ou pas.
L'affichage n'est pas bien complexe mais demande beaucoup de notions encore inexpliquées jusqu'à maintenant.
C'est pourquoi on se contentera de faire un système de highlight simple nous indiquant quand quelqu'un nous appelle sur un autre salon
que notre fenêtre active. Voici donc l'objet de ce premier vrai cours de scripting mIRC, affichez ceci :
Highlight #!paris! EliseFromParis : lol NiCk2
Construction du remote de highlight
Commencez par copier coller ceci dans un remote vide. Pour accéder à un remote vide, faites ALT + R puis allez dans File et cliquez sur New.
on *:text:*:#:{
if $me isin $strip($1-) {
if $active != $chan { echo -ta 0,4 Highlight 4,0 $chan $nick :1 $1- }
}
}
Expliquons à quoi correspond chaque ligne :
"on *:text:*:#:{" sert à détecter le texte dit sur un salon, il est actif à chaque phrase écrite.
le "*" juste après est le niveau pour lequel on détecte. Ici "*" signifie "n'importe quel niveau", on mettra toujours "*" pour le niveau de manière générale.
Le "text" signifie simplement qu'on veut détecter du texte. Le "*" suivant est un masque
(pour plus d'informations, consultez le Tutorial des bans) qui permet de préciser les mots que l'on veut détécter.
Le "#" signifie que l'on détecte les mots dits sur les salons. On peut aussi détécter les mots dits en privé, en DCC, etc.
Le premier "{" est une accolade pour englober la suite de commandes qui va suivre. Tout accolade ouverte doit être fermée. Ainsi, on doit avoir le même
nombre d'accolades gauches que d'accolades droites sinon mIRC nous signalera une erreur.
Enfin le "on" signifie "sur" en anglais, c'est juste pour dire que le script "marche sur"... du texte dans ce cas, ça peut aussi être sur quand quelqu'un se fait oper
(on *:op:#:{ ... }). Il existe plein de "on ..." qu'on étudiera par la suite.
Les ":" servent de séparateurs entre les différents arguments.
"if $me isin $strip($1-) {" est une condition "si ... alors", ici le si = "if" et le alors = "{".
$me, $strip() et $1- sont des identifiants. $me correspond à votre pseudo. Dans l'exemple on a pris NiCk2. le $1- correspond au texte dit
par la personne qui a parlé. Dans l'exemple, il s'agit de "lol NiCk2". Le $strip() permet d'enlever les codes couleurs d'une phrase.
Exemple :
$strip(J'apprends à scripter en mIRC) renverra : J'apprends à scripter en mIRC
Cette ligne veut dire "si mon pseudo est dans (= isin) la ligne de texte alors..."
"if $active != $chan { echo -ta 0,4 Highlight 4,0 $chan $nick :1 $1- }" est encore une condition
suivie d'une commande à effectuer si jamais la condition est vérifiée. On ne vérifie cette condition que si la première condition de la ligne précédente a été vérifiée.
Ici, nous avons à faire à deux nouveaux identifiants, $active et $chan. $active renvoit le nom de la fenêtre active, il peut s'agir d'un pv, d'un salon etc. $chan renvoit le nom du salon
sur lequel a été dit le texte. Ainsi, dans notre exemple, $chan renverrait #!paris!. $active nous renverrait la fenêtre active. On compare alors les deux avec "!="
qui est l'opposé de "==" qui veut dire égal. On en déduit que "!=" veut dire "pas égal à...". Cette ligne de code signifie donc "si ma fenêtre active est différente
du salon sur lequel vient d'être mentionné mon pseudo alors...".
La partie "echo -ta ..." est la commande à effectuée si les deux conditions précédentes ont été vérifiées. On y trouve encore un nouvel identifiant : $nick. Ce dernier
renvoit le pseudo de la personne ayant dit la phrase avec votre pseudo dedans. Dans l'exemple, il s'agit de EliseFromParis.
La commande echo sert à afficher sur votre écran un message personnel. Le -ta indique qu'il faut afficher le message dans la
fenêtre active ("a") en précisant l'heure ("t").
Exemple :
Tapez ceci dans une fenêtre : echo -ta Phrase de test !
Vous verrez s'afficher "Phrase de test !". Uniquement vous pouvez voir ce message.
Dans le cas de notre remote de highlight, l'écho affichera le salon, le pseudo de la personne qui vous appelle et son message. Notez que
que cet affichage n'a lieu que si votre fenêtre active est différente du salon sur lequel votre pseudo est détécté. Ceci est logique car si le
salon et la fenêtre active sont équivalents, vous voyez vous même le message s'afficher sur le salon. Ce système n'est donc actif que lorsque
que vous êtes sur un salon et qu'on vous appelle sur un autre, logique.
Les carrés suivit de chiffres correspondent aux codes couleurs. Vous pouvez tester vous-même en tapant CTRL + K dans une fenêtre.
Le premier nombre est l'indice de la couleur d'écriture, le deuxième est la couleur de fond. Dans notre exemple nous avons : 0,4. Ceci
signifie "écriture blanche sur fond rouge", comme montré dans l'exemple en début du cours. CTRL + B fait apparaître le code couleur GRAS
et CTRL + U le code couleur SOULIGNE. Vous devez entourer le texte que vous souhaitez alimenter de styles d'écriture, autrement dit si vous
voulez qu'un mot soit souligné dans une phrase, vous devez mettre un carré (CTRL + U) devant le mot et un autre identique derrière le mot.
On oublie pas de refermer les deux accolades "}" à la fin du remote sans quoi cela ne marchera pas.
Conclusion
Ce premier cours peut paraître assez difficile pour ceux qui n'ont jamais scripter en mIRC mais beaucoup de bases ont été vues et bien
explicitées. Si vous avez tout de même des problèmes à comprendre une partie de ce cours, n'hésitez pas à nous contacter. Le highlight
est un système simple présent dans tous les bons scripts. Si vous avez des sujets que vous aimeriez nous voir aborder, faites le nous savoir.
Merci et à la semaine prochaine pour le prochain cours.