| |||||||||||||||||||
|
Aide mIRC : Remote
1 Scripts remote - Evénements.Dans mIRC sélectionnez Tools/Remote pour ouvrir l'éditeur de mIRC, puis sélectionnez le menu ‘View’ et sélectionnez le script appelé "événement.ini". Si aucun script d'événements n’est disponible, chargez un autre script ou créez en un nouveau avec File/New/. Le nouveau script est appelé script1.ini par défaut. Comme vous l’avez vu, les CTCP remotes ne s’occupent que des commandes CTCP. Les événements remote s’occupent de tout le reste... Si ça vous semble difficile, ne vous inquiétez pas. Comme on vous l’a déjà dit, ces leçons se cumulent. Si vous avez compris les commandes remote, les événements remote seront du gâteau. Vous avez déjà fait le plus dur. Attention : En général, mIRC peut être sensible a une mauvaise programmation. Une syntaxe incorrecte peut causer une Faute de Protection Générale, alors, attention ! Si vous rencontrez des problèmes d’instabilité avec mIRC, vérifiez cette partie là en premier ! Syntaxe des événements remote. Les événements remote sont : TEXT, INPUT, JOIN, PART, KICK, OP, DEOP, BAN, UNBAN, INVITE, NICK, QUIT, TOPIC, SERVEROP, NOTIFY, UNOTIFY, MODE, USERMODE, SERVERMODE et SMODE. A part l’événement TEXT, les événements ACTION, NOTICE, NOTICE, CHAT, SERV et WALLOPS sont disponibles pour des événements plus spécifiques. Les événements FILESENT, FILERCVD, NOSOUND, CHATOPEN, CHATCLOSE, SERVOPEN et SERVCLOSE sont nouveaux. (J’en ai manque un ?) CONNECT, DISCONNECT, MIDIEND,.... Je vais vous expliquer très bientôt ce qu’ils font exactement et
comment les utiliser. D’abord, quelques exemples rapides et une explication
de la syntaxe utilisée. La syntaxe est quasiment la même que celle des commandes
remote. Voici un exemple réagissant à un TEXT :
Rendez-vous à Tools/Remote et regardez s’il y a déjà un script appelé ‘événements.ini’. Sinon, allez dans le menu File/New pour créer un nouveau script. Vérifiez que dans le menu ‘Listening’ l’item événements est sélectionné. (Quand les items de ‘Listening’ ne sont pas coches, par exemple, les événements que vous créez sont ignores par mIRC). Maintenant, placez les exemples ci dessous dans un fichier. Cet événement remote est déclenché par le mot salut quand il est trouve sur un channel. La réponse de mIRC est d’envoyer un message prive à la personne qui l’a écrit et de dire "Salut !". Voici un autre exemple, ce coup ci, utilisant JOIN :
Celui là est déclenché quand un utilisateur arrive sur un des channels sur lesquels vous êtes. Une notice leur est envoyée disant "Bienvenu sur {channel}" Si vous êtes arrivés ici et que vous avez compris les commandes remote, ceci devrais vous sembler assez simple. Les événements remote ont 3, 4 ou 5 parties divisées par des ‘:’. Tous les événements remote ont 4 parties, sauf TEXT qui en a 6 et QUIT et NICK qui en ont seulement 3. Tous les événements *sauf* TEXT, NOTICE, SNOTICE, ACTION, QUIT et NICK on le format suivant : on Ce préfixe dit a mIRC qu’un événements va suivre. {niveau}:{événements}:{ou}:{commandes avec paramètres} {niveau} Cet événements affectera les utilisateur avec un niveau supérieur ou égal, a moins qu’un autre événements soit défini, comme pour les commandes remote. {événements} Le nom de l’événements remote. JOIN, OP... {ou} #,#channel. Ou est ce qu’on va écouter l’événements remote ? Soit # (tous les channels) ou sur des channels multiples tels 1:TEXT:salut*:#chat,#help,#mirc:/msg $nick Salut ! exception : non utilise par NICK et QUIT. Sautez cette partie. {commandes avec paramètres} les commandes déclenchées. Tout comme dans les commandes remote sauf qu’il y a quelques paramètres différents. ... Et bien sur, les exceptions sont les événements TEXT, ACTION, NOTICE, SNOTICE, CHAT et SERV qui marchent comme ca : on Ce préfixe dit a mIRC qu’un événements va suivre. {niveau}:{événements}:{quel texte}:{ou}:{commandes avec paramètres} {niveau} Cet événements affectera les utilisateur avec un niveau supérieur ou égal, a moins qu’un autre événements soit défini, comme pour les commandes remote. {événements} Le nom de l’événements... évidemment, ca va être TEXT, ou similaire. {quel texte} Spécifie le mot, ou la phrase a écouter. Tel "salut" dans les exemples précédents. {ou} #,#channel. Ou est ce qu’on va écouter l’événements remote ? Soit # (tous les channels) ou sur des channels multiples tels "1:TEXT:salut*:#chat,#help,#mirc:/msg $nick Salut !". mais on peut aussi écouter les messages prives (?) ou les deux (*). TEXT ou ACTION n'écoutent pas les trucs dits en DCC chat ou serveur. Les NOTICE écoute les notices, comme CHAT écoute le texte dans les DCC Chat et SERV le texte dans les fenêtres de serveur de fichier DCC. {commandes avec paramètres} Les commandes déclenchées. Tout comme dans les commandes remote sauf qu’il y a quelques paramètres différents. Les événements Voici quelques événements remote auxquels mIRC réponds... L'événement TEXT Survient quand le mot/phrase spécifiée sont trouves dans un channel ou un message prive. ACTION et NOTICE font de même... Exemple :
On kickera l'utilisateur qui a dit "debile". Exemple :
si le mot "debile" est ecris sur #test, celui qui le dis est kicke (si vous êtes 'op' sur #test) et envoye une notice : "Salut {nick}, tu a dis debile, et ce n'est pas permis sur #test... Exemple :
Si le mot "help" est trouve dans un message prive, il y aura une réponse automatique qui sera "J'aimerais bien t'aider mais je ne peut pas." Vous pouvez mettre des jockers dans le texte auquel mIRC doit réagir
:
=word = PLUS utilise !! (plus nécessaire). word* = Si l'utilisateur commence une ligne par le mot. *word = Si l'utilisateur teramoi une ligne par le mot. *word* = Si l'utilisateur écris ce mot n'importe ou. word = Si l'utilisateur écris la exactement même chose, l'événement est déclenché... Exemple :
Cet événement réagira à une demande d'aide seulement si une simple
ligne contenant le mot 'aide' vous est envoyé en message prive... Exemple :
Cet événement réagira uniquement au messages prives qui commencent
par "Salut".
Plus d'exemple : on 1:TEXT:*ok:/msg $nick ta ligne s'est teramoie par 'ok' L'événement ACTION Voir l'événements remote TEXT... il marche exactement de la même façon... Cet événement réagira aux actions envoyés sur les channels sur lesquels vous êtes. L'événement NOTICE Voir l'événements remote TEXT... il marche exactement de la même façon... Cet événement réagira aux notices qui vous sont envoyées. L'événement CHAT Survient quand le mot/phrase spécifié apparaît sur un DCC Chat. L'événement SERV Survient quand le mot/phrase spécifié est trouve dans la fenêtre du serveur de fichier. Ces événements peuvent être utilisés pour écouter ce qui est dit dans les DCC chat et serveur de fichier DCC. Ils marchent tous les deux comme l'événement TEXT. Presque (?) logiquement, l'endroit ou arrive l'événement est manquant... une note importante est faite ici... vous NE POUVEZ PAS utiliser différents niveaux pour CHAT et SERV. Je sais que c'est dur, mais c'est impossible à cause de la gestion des connexions de client a client DCC, car dès qu'une connexion est établie, mIRC ne regarde pas le nick ou l'adresse de l'utilisateur. Désolé. Utilisez le niveau 1 pour les CHAT et SERV. Exemple :
on 1:SERV:get mirc:/echo server 6 Le zip de mIRC est envoye a : $nick . Dans un événement SERV vous pouvez utiliser le $cd. cd signifie change directory : changer de repertoire. on 1:SERV:dir:/msg = $+ $nick tu est dans : $cd (envoyer le message a =nick envera le message a travers une connexion dcc.) L'événement JOIN Survient quand un utilisateur arrive sur un chan. Exemple :
Envoie une notice disant : "bienvenue sur #test !" a tout ceux qui arrivent sur #test. Exemple :
Kick tous les utilisateurs de niveau 25 qui arrivent sur #cool avec le message : "Tu n'est pas le bienvenu ici !" L'événement PART Survient quand un utilisateur quitte un channel. Exemple :
Envoi une notice disant : "He, merci de t'être arrete sur {channel} !" à tous les utilisateurs de niveau 10 qui quittent les channels sur lesquels vous êtes. Exemple :
Envoie un message sur le channel disant "He ! {nick} est parti !" si un utilisateur de niveau 90 quitte un channel sur lequel vous êtes. L'événement CONNECT Cet événement est déclenché a la fin d'un MOTD après s'être connecte
au serveur. (Comme la section perform). Exemple :
L'événement DISCONNECT Se déclenche quand vous perdez la connexion avec le serveur.
L'événement KICK Survient quand un utilisateur est kické d'un channel. Exemple :
Si une personne de niveau 100 est kickée d'un channel, vous kickez le kickeur du channel, et invitez la personne kickée sur le channel. Et envoyez "Cette personne est mon ami !" au kickeur. NOTE : $knick est le paramètre du nick kické dans cet événement. De plus, remarquez que cet exemple montre un exemple de commandes multiples. Ca marche comme les commandes remote. L'événement OP Survient quand un utilisateur est oppé. Note : cet événement requiert que les gens soient mentionnés par leur nick dans la liste des utilisateurs remote ! Exemple :
Si quelqu'un est oppé sur #test, il lui est envoyé une notice disant : Tu a été oppe par {oppeur}. Bienvenue ! NOTE : $opnick est le paramètre de la personne oppée dans cet événement. L'événement DEOP Survient quand un utilisateur est déoppé. Note : cet événement requiert que les gens soient mentionnés par leur nick dans la liste des utilisateurs remote ! Exemple :
Si quelqu'un est déoppé, il lui est envoyé un message disant "Pas de chance. Tu as été deoppe par $nick" NOTE : $opnick est le paramètre de la personne déoppée dans cet événement. NOTE +++++++++++++++++++++++++++
Lors de l'explication des événements OP, DEOP, SERVEROP tout comme NOTIFY, une remarque importante doit être faite. Les serveurs ne rapportent que les nick des personnes qui ont été oppées, déoppées, ou notifiées sur un channel ou sur IRC, les événements OP, DEOP, SERVEROP et NOTIFY, ne marchent proprement que si le nick des personne est mentionne dans la liste des utilisateurs remote. Spécifier l'adresse complète (nick!compte@machine.addresse.net) n'est pas assez... mIRC ne trouvera pas le nick depuis l'adresse complète. La seule exception est que cet événement dois affecter tout le monde, en lui donnant un niveau 1 ou ce que vous avez mis comme niveau par défaut. C'est le seul cas ou il n'est pas nécessaire d'avoir les utilisateurs avec leurs nick. Si vous voulez donnez a vos amis un niveau pour vos événements OP, DEOP, SERVEROP ou NOTIFY, vous aurez a les mettre comme ca dans votre liste : 5:copainb 5:copainc 10:copainb!compteb@sa.machine.net Cette construction peut vous donner une bonne raison de spécifier les gens dans votre liste avec leur adresse complète (avec des jockers) et avec leur nick. ceci peut garantir une bonne réaction aux OP, DEOP ou SERVEROP sans donner à ceux qui ont les nick de vos amis (ou ennemis) les même droits... +++++++++++++++++++++++++++++++ L'événement BAN Avec l'événement BAN, vous pouvez facilement débanner vos amis. L'événement UNBAN Exemple :
Le $banmask contiendra l'adresse bannie entière. Facile, non ? L'identificateur $bnick se réfère au nick de l'utilisateur qui a été banni. Il n'est pas toujours rempli car quelquefois, le nick n'est pas spécifié dans le banmask ! UNBAN marche comme BAN. L'événement INVITE Se produit quand vous êtes invites sur un channel. Exemple :
si invite sur #test, on joins le channel et utilise une action pour dire "{moi} merci de m'avoir invite !" L'événement NICK Se produis quand un utilisateur change de nick. Exemple :
Envoie une notice a tous ceux qui changent de nick "Je trouvais {vieux nick} mieux !" NOTE : $nick est le paramètre de l'ancien nick, et $newnick est pour (devinez ...) le nouveau nick. NOTE : la portion {ou} n'est pas utilise avec NICK. L'événement QUIT Se produis quand un utilisateur quitte l'IRC. Exemple :
Quand quelqu'un quitte l'IRC, vous envoie une notice : C'est l'heure de s'amuser ! {nick} viens de nous quitter! NOTE : la portion {ou} n'est pas utilise avec NICK. L'événement TOPIC Se produis quand le topic d'un channel est change. Exemple :
quand le topic est change, envoie un message au channel disant : "Yo, j'aime le nouveau topic !" L'événement SERVEROP Se produit quand un serveur donne le statuts d'op a un utilisateur sur un channel. Note : cet événement requiert que les gens soient mentionnés par leur nick dans la liste des utilisateurs remote ! Exemple :
Quand une personne est oppée sur #mirc, un serveur, la personne oppée est déoppée et reçoit un message disant : "Desole, mais les serverop ne sont pas permis sur $chan". Les serverops arrivent après un netjoin quand deux serveurs ont splités et échangent les mode des channels. L'événement NOTIFY Cet événement se déclenche dès qu'une personne de votre liste de notify arrive sur IRC. L'événement UNOTIFY Note : cet événement requiert que les gens soient mentionnés par leur nick dans la liste des utilisateurs remote ! Vous pouvez utiliser ces événement pour faire des trucs tels /whois sur la liste des nick notify pour être sur que c'est la bonne personne... Rappelez vous que cet événement requiert que les gens soient mentionnés par leur nick dans la liste des utilisateurs remote (comme OP, DEOP, SERVEROP) ceci est du aux protocoles IRC qui ne donnent pas les adresses des personnes notifiées. Vous devez mettre le nick dans le File/Options/Notify_List et des que mIRC détecte cette personne sur IRC, cet événement est déclenché. L'événement UNOTIFY se déclenche lorsque mIRC détecte que nick est parti d'IRC. Exemples :
on 1:UNOTIFY:/echo $active $nick a quitte l'IRC. on 3:NOTIFY:/whois $nick on 5:NOTIFY:/beep 10 50 | /whois $nick L'événement MODE L'événement SERVERMODE Ces événements reagissent aux changements de mode du channel. ! L'événement MODE a change de syntaxe. Il ne permet plus de garder des modes. $1- est maintenant rempli avec les changements de mode. Utilisez cet événement pour réagir aux changement de mode. Syntaxe et exemples :
(Faites gaffe aux boucles quand plusieurs personnes qui mettent des modes différents !) L'événement USERMODE Cet événement est déclenché quand vous changez le mode d'utilisateur. Quand vous changez le mode de l'utilisateur (+I par exemple) cet événement le détectera et vous pourrez automatiquement y réagir. L'événement VOICE Ces événements réagissent aux personnes qui gagne le voice et le perde sur les channels. L'événement DEVOICE Exemples :
on 1:DEVOICE:/notice $vnick He, $nick a le droit de parler ici ! L'événement SNOTICE Cet événement écoute les notices de serveur. Les notices de serveur
vous donnent toutes sortes d'informations qui arrivent sur le serveur IRC sur
lequel vous êtes. Pour recevoir ces notices, vous avez a changer votre mode
vers +s (/mode #nick +s). La majorité des gens n'ont pas besoin de ce mode...
Il est principalement fait pour les IRCOps et les gestionnaires de serveurs.
Avec cet événement, vous pouvez filtrez les notices du serveur qui vous sont
envoyés pour éviter qu'elles soient affichées ou pour y réagir automatiquement.
La syntaxe est presque comme celle de l'événement TEXT...
L'événement FILESENT Cet événement réagira a tous les envois DCC qui on réussit. Vous
pouvez l'utiliser pour vous en informer ou pour envoyer un message a celui qui
a pris le fichier...
on 1:FILESENT:mirc50s.exe:/notice $nick Amuse-toi bien avec la version 16 bits de mIRC. on 1:FILESENT:mirc50t.exe:/notice $nick Amuse-toi bien avec la version 32 bits de mIRC. L'événement FILERCVD Cet événement réagira a toutes les arrivées de fichiers réussis par
DCC. Il se déclenchera au moment ou le fichier est intégralement arrive sur
votre disque. Vous pouvez vous en servir pour vous envoyer ou pour envoyer à
l'envoyeur un message, ou démarrer l'application qui correspond a ce fichier...
on 1:FILERCVD:*.wav:/wavplay $filename on 1:FILERCVD:*.gif:/run c:\windows\wingif\wingif.exe $filename on 1:FILERCVD:*.jpg:/run c:\windows\lview\lviewp19.exe $filename on 1:FILERCVD:*.mid,*.voc:/run wplany.exe $filename on 1:FILERCVD:*.mp3:/run winamp.exe $filename on 1:FILERCVD:*.*:/notice $nick Merci pour le fichier ! L'événement SENDFAIL L'événement GETFAIL Ces événements se déclenchent quand un transfert DCC échoué a cause d'une rupture de connection ou d'un time-out. Exemples :
on 1:GETFAIL:*.txt:/echo Le transfert de $filename a $nick a echoue ! L'événement CTCPREPLY Ecoute les réponses CTCP. Exemples :
on 1:CTCPREPLY:*mirc*:/echo $active Genial, $nick utilises mIRC aussi ! L'événement MIDIEND Cet événement se déclenche quand un midi se teramoi (mais pas si
vous l'arrêtez en en jouant un autre ou en utilisant /splay stop). Exemples
:
L'événement INPUT Cet événement est déclenché quand vous tapez du texte sur la ligne
de commande et pressez [entrée]. Vous pouvez traiter cette ligne avec un script
ou tout ce que vous voulez ! /halt empêche un traitement standard du texte.
Exemple :
L'événement LOAD Se déclenche quand mIRC a démarre et que tous les scripts sont charges. L'événement START Se déclenche dès que votre (nouveau) script est près à être utilisé.
on 1:START:/echo Script Demarre ! Avec l'événement LOAD, vous pouvez dire quelles commandes exécuter quand mIRC a charge les scripts. Pour initialiser des commandes qui doivent l'être au démarrage de mIRC (et charger des scripts automatiquement) utilisez l'événement START. La section START est exécutée après la section LOAD quand le script est charge pour la première fois. Si un script est charge depuis une boite de dialogue remote, les commandes a exécuter automatiquement sont exécutées quand la boite de dialogue est fermée. Identificateurs spéciaux pour les événements remote. $nick, $address, $site etc. sont tous des identificateurs créés pour être utilises dans les lignes remotes. Vous pouvez les utiliser n'importe ou dans les événements remote... $nick Le nick de la personne qui a envoyé la commandes qui a active l'événement.
$address L'adresse complète de la personne qui a envoyé la commande.
1-1 Les différents drapeaux que l'on peut utiliser avant les lignes CTCP ou d'Events.Pour finir, quelques remarques doivent être faites a propos de différents drapeaux que vous pouvez utiliser dans la section remote. Les différents drapeaux que vous pouvez utiliser vous obligera à faire des essais... Voir ce qu'ils font et quand. Voir si ils font ce que vous voulez et testez-les longtemps ! Le ! (événements seulement) Ce drapeau fait que cet événement ne soit pas déclenché par les choses que vous faites... mIRC ne réagira pas aux choses faites par les clients possédant votre adresse. (un drapeau similaire est le 'me'... qui s'assure que les choses ne seront pas déclenchées par le client que -vous- utilisez. Il réagira aux autres clients IRC qui tournent sur la même machine simultanément.) Exemple :
Il ne réagira pas quand vous arrivez sur #amoi... tous les autres auront le message de bienvenue... Le = (événements seulement) Ce drapeau est utilise pour empêcher tout d'arriver... vous pouvez l'utiliser pour ne pas embêter des utilisateurs de niveaux plus élevés par des événements faits pour des gens de niveau inférieur. Exemple :
on 3:JOIN:#amoi:= Les utilisateurs de niveau 1 et 2 auront leur version demandée. et les utilisateurs de niveau 3 et plus ne verront rien, comme vous. (dans la version 3.2, vous aviez a faire des événements sans effets pour faire ca.) Exemple :
on 1:JOIN:#test2:/notice $nick Bienvenue sur #test2 on 3:JOIN:= Les utilisateurs de niveau 3 et plus n'auront pas de notice de bienvenue... les utilisateurs de niveau plus bas le seront seulement sur #test1 et #test2. Le + Ce drapeau fait que les commandes soient disponibles seulement pour les utilisateurs de niveau exact pour la commande... les utilisateurs de niveau plus élevé (et plus bas évidemment) n'y auront pas accès Exemple :
on +3:JOIN:#amoi:/notice $nick Bienvenu ici. Tous les utilisateurs SAUF ceux de niveau 3 auront leur version demandée sur le channel 'amoi'... les utilisateurs de niveau 3 auront juste un message de bienvenue... Exemple :
les ; et REM Ces drapeaux peuvent être utilises pour désactiver des commandes ou des événement temporairement en les commentant. Exemple :
REM on 1:JOIN:#amoi:/notice $nick Bienvenue. Les * et @ Ces drapeaux équivalents font que mIRC exécute les commandes ou les
événement seulement si vous êtes op sur le channel sur lequel la commandes ou
l'événement a été utilise.
on @10:JOIN:#amoi:/mode $chan +o $nick Le me Ce drapeau est fait pour que ces événements marchent seulement si quelqu'un ayant la même adresse que vous puisse utiliser l'événement ou la commande. Cette autre personne devrait être par exemple une autre copie de mIRC tournant sur le même PC. Gardez en mémoire que si vous utilisez des niveaux adéquate vous n'aurez jamais (?) besoin de ce drapeau. Drapeaux conditionel Dans la version 3.7 de mIRC, quelques drapeaux additonnels pour les EVENEMENTS ont été ajoutes. Avec des drapeaux, vous pouvez demander a mIRC de prendre en compte le niveau de la personne qui a declenche l'événement. Ces drapeaux peuvent seulement être utilises avec les événements OP, DEOP et KICK. Vu que ce sont les seuls qui s'occupent de choses faites par une personne a une autre personne. Ces trois drapeaux sont : >, < et =. Mais il est possible d'en faire des combinaisons mathematiques ce qui donne un jeu de 6 drapeaux : >, <, >=, <=, <> et =. Ces drapeaux feront que l'événement sera declenche seulement si le PREMIER niveau de l'événement corresponds a la personne oppee, deoppee ou kickee et le SECOND niveau corresponds a celui de la personne qui a declenche l'événement. selon l'expression : {niveau_du_declencheur}[drapeau (expression mathematiques)]{niveau_de_l_evenement} Je pense que vous aller avoir besoin de quelques exemples... !! On va supposer que vous êtes Gardien avec un Ami de niveau 2 et un Declencheur qui peut avoir différents niveaux... et alors, imaginez ces événements simples : on <2:DEOP:#test123:/msg $chan le < declenche
on >=2:DEOP:#test123:/msg $chan le >= declenche Avec Declencheur au niveau 1
Votre ami a un niveau 2, le Declencheur a un niveau 1, 1<2 est valide (1 est plus petit que 2), le premier événement DEOP est declenche... Avec Declencheur au niveau 2
Votre ami a un niveau 2, le Declencheur a un niveau 2, 2<2 est invalide, 2>=2 est valide (2 est plus petit que 2), le deuxième événement DEOP est declenche... Avec Declencheur au niveau 3
Votre ami a un niveau 2, le Declencheur a un niveau 3, 3<2 est invalide, 3>=2 est valide (2 est plus grand ou superieur a 2), le deuxième événement DEOP est declenche... Comme vous pouvez le voir, c'est assez simple des que vous avez l'idee... lisez la suite jusqu'à ce que vous ayez tout compris… quelques autres exemples : on <2:DEOP:#test123:/msg $chan le < declenche
on >2:DEOP:#test123:/msg $chan le > declenche Avec Declencheur au niveau 1
Avec Declencheur au niveau 2
Avec Declencheur au niveau 3
on =2:DEOP:#test123:/msg $chan le = declenche Avec Declencheur au niveau 1
Avec Declencheur au niveau 2
Avec Declencheur au niveau 3
1-2 Variables.Selectionnez le menu Tools/Remote/ et allez dans la sections "Variables"... Dans cette partie des remotes, vous pouvez avoir vos propres variables. Les variables peuvenr contenir des nombres, des mots et même des lignes de texte. Sur les variables contzenant du texte, vous pouvez faire des operations mathematiques (incrementation, decrementations, addition, soustracions...). Les vriables commencent toujours par un % et peuvent avoir un nom de nimporte quelle taille. Les variables sont conservees entre les sessions dans un fichier dans le repertoire de mIRC. Plusieurs commandes existent pour creet et utiliser les variables
: (-s : montre(show) pour que vous sachiez que l'operation a eu lieu)
/unset [-s] <%var> [%var2] ... [%varN] Pour supprimer des variables /unsetall Pour supprimer toutes les variables /inc [-s] <%var> [value] Pour incrementer une variable d'une valeur (nombre ou variable) /dec [-s] <%var> [value] Pour decrementer une variable d'une valeur (nombre ou variable) Les commandes /set /unset /inc /dec ne sont pas affichee par défaut, sauf si elles sont appelees directement depuis la ligne de commande. Pour forcer l'affichage d'informations, utilisez le -s ex : /set -s %x 1. Avec l'aide de ces commandes vous pouvez faire toutes sortes d'alias très pratiques et de remotes ! Laissez moi vous donner quelques exemples : Commandes remote (voir avant) : Evénements remote (voir avant) : Alias : Avec ces lignes, j'ai fait un petit compteur de download... pas parfait, mais ca marche ! Vous pouvez même ajouter quelques alias pour garder des statistiques patielles
: Si vous incrementez ou decrementez une variable qui n'existe pas, elle sera
crée automatiquement a la valeur 0 puis l'opertaion sera effectuee. Exemples
: Note : vous devez vous assurer que vous ajoutez toujuors le % ! C'est fait
expres pour eviter quelques petits mqis possibles problèmes dans la lecture
des commamdes par mIRC. ceci ne limite pas du tout la façon dont les variables
peuvent être utilisee car vous pouvez toujours utiliser des constructions comme
: vous pouvez aussi utiliser un = (signe égal) pour assigner des valeurs
aux variables. Exemples :
%x = 5 - %y %x = %x * 2 %x = %z / $2 %x = %x % 3 1-3 Scripts Remote - traitement brut.Dans la sections script de Tools/Remote/ mIRC offre aussi la possibilite de gerer toutes les communications serveur <> client (mIRC) de la façon qu'il vous plaît. Cela marche exactement de comme les événement remote sauf que mIRC ecoute pour des événement NUMERIQUES. Ces reponses numeriques sont decrites dans la RFC1459 sur l'IRC (http://ds.internic.net/rfc/rfc1459.txt). Plus d'informations spécifiques sur mIRC sont disponibles à http://www.teleport.com/~jeepster/numeric.html. Vous ne devriez utiliser les scripts raw –seulement- si vous savez
exactement ce que vous faites et -seulement- si vous en avez vraiment besoin.
Une mauvaise utilisation des scripts peut entrainer de gros disfonctionnement
de mIRC. vous avez la possibilte de refaire toutes les routines compilees dans
mIRC. Exemple :
Ceci ecrira toutes les lignes qui contiennent le mot "mirc" dans elles quand vous faites un /list (c'est un test plutot brutal). Pour avoir un resume du whois sur 2 lignes affiche dans la fenêtre
active, placez les commandes suivantes dans votre section raw (avec le listening
on) :
raw 319:*:echo 5 $active *** $2- Ceci ecrira les lignes user et channel. Les autres reponses numeriques à whois sont : 312, serveur; 313, ircop; 301, away; 317, idle; et 318, fin. Pour un /whois complet, dupliquez juste les lignes precedentes en utilisant ces nombres. Pour connaître les reponses numeriques que vous pourrez utiliser vous pouvez
vous referez a l'identificateur $numeric qui retourne les numeros de l'événement
(raw) qui a été declenche. Dans la RFC1459 sur l'IRC, dans la section 6, vous
trouverez toutes les reponses numerques, avec leur numero, leur nom et a quoi
elles correspondent. 1-4 Utilisation avancée des commandes, commandes multi-lignes.Dans mIRC vous pouvez utiliser des commandes et créer des alias, popups et remotes avec des declarations conditionnelles, des boucles et d'autres trucs. Pour tout vous dire, j'ai peur qu'il faille une autre FAQ... mais je vais essayer de vous mettre sur le bon chemin dans cette courte section avec quelques exemples. Je pense que le mieux est de se jeter a l'eau directement... Tout d'abord, mIRC autorise les alias, popups et scripts multilignes. Ceci vous autorise a ecrire des declarations avec une maniere structuree telle : <prefixe> { Exemples : /away /ame est AWAY ( $+ $?="Raison" $+ ) | /away je suis parti a $time { $+
$! $+ } ces alias pourraient aussi bien être definis de la maniere suivante : /away { je suis d'accord que ca n'aide pas vraiment -là-, mais quand qui vous ecrirez et testerez les nouvelles possiblites de mIRC, que sont les commandes conditionnelles, vous aurez peut être besoin de structurer ? par la même occasion, les acolades { } sont utilisees autours des commandes qui utilisent les nouvelles commandes. Tant que nous y sommes, vous pouvez laisser tomber le / en tant que préfixe de commande si vous voulez, il n'est plus necessaire et il clarifie grandement la lecture. Une commande /goto est ajoute elle peut être utilisee dans les { }. Exemple : /salut { Cet alias ecrira les lignes "ligne1" et "ligne2" sur votre écran. Testez le en donnant son equivalent sur la ligne de commande : /set %x 0 | :retry | inc %x | goto %x | :2 | echo ligne2 | halt | :1 | echo ligne1 | goto retry ceci vous montre exactement ce qui arrive. Vous pouvez aussi utiliser
une variable comme nom de goto, exemple :
Si vous faites "/set :%pointdesaut 5" après, vous pouvez faire "/goto
5" et mIRC évaluera %pointdesaut à 5 et y sautera. Dans l'exemple, ci dessus,
les points de saut étaient fixes a '1' et a '2'. Essayez ces 3 commandes pour
voir ce qui se passe :
/set %saut2 2 /set %x 0 | :retry | inc %x | goto %x | :%saut2 | echo ligne2 | halt | :%saut1 | echo ligne1 | goto retry Vous pouvez utiliser la commande /return pour arrêter une commande et autoriser une commande par défaut a être exécutée. Exemple : on 1:JOIN:#mIRC { ceci résultera par le message :
*** honk (monstre@ppp.dial.wanaboo.fr) has joined #mIRC Attention ! Prenez garde de ne pas vous perdre dans des accolades incomplètes. Quand des accolades '{' ne sont pas fermées '}' mIRC peut commencer a se comporter de façons bizarre ! Faite très attention ! Un bouton spécial a été ajouté dans les sections alias, popups et remote pour vérifier si les accolades pour vérifier que le compte d'accolades ouvrantes et fermantes est bon. Ce bouton a un dessin "{}" sur lui. /if /elseif /else maintenant, je pense que vous êtes près pour la vrai programmation
? dans mIRC, une instruction /if est disponible :
Exemple :
/test { set %i 0 | :start | inc %i | if %i > $1 halt | echo $active %i | goto start } If/elseif/else peuvent aussi être imbriques. Vous pouvez utiliser () et {} pour vous assurer que les termes sont évalués correctement (dans le bon ordre), mais vous n'avez pas *besoin* de les utiliser. Utiliser les accolades rends aussi le traitement plus rapide puisque mIRC sait exactement quoi faire. Comparateurs et opérateurs disponibles : isin v1 est dans v2 Pour avoir le résultat inverse vous pouvez utiliser le préfixe '!'.
Exemple : /invitedemasse { Utilisez cet exemple avec "/invitedemasse #tonchannel". (Au fait, les invitations de masse sont vraiment pas polies !) Exemple : /randnopkick { Si vous êtes op sur un channel vous aimerez peut-être utiliser ce kick-non-op-au-hasard. Cette alias kick un nick au hasard sur le channel, mais jamais un op. Bon... si il n'y a que des op, vous aurez un problème :-) Exemple : /ligne { Lancez cet alias avec "/ligne d l" pour voir ce qu'il fait. Il imprime une ligne telle "d e f g h I j k l". C'est pas franchement intéressant, mais ca montre la puissance de if/elseif/else assez bien. Exemple : /affichenombre1 { Ces deux alias sont équivalents. Ils afficheront une suite de chiffres jusqu'à la valeur donnée. Essayez donc "/affichenombre1 14" ou un truc dans le même genre... Le deuxième alias montre comment utiliser intelligemment les identificateurs pour réduire considérablement la longueur de l'alias. Identificateurs vides ou invalides Les variables ou les identificateurs qui ne retournent pas de valeur retournent maintenant $null pour que ca puisse être utilise dans un if pour le tester... Exemple : /listops { Cet alias listera les op du channel sur lequel vous êtes. Ou dans un événement remote : on 1:CTCPREPLY:PING* { D'autres exemples de popups : Donneop { Ce popup oppera toutes les personnes sélectionnées sur un channel ou vous êtes op. kickselectif:/kick # $token($r(1,$snick(#,0)),44,$snicks) Ce popup kickera une personne au hasard parmi les nick sélectionnés. RandNopkick:/kick # $nopnick(#,$r(1,$nopnick(#,0))) Celui ci kickera un non-op au hasard depuis le channel sur lequel vous êtes. RandNopkick { :begin | /set %kicknick $nick(#,$r(1,$nick(#,0))) | if %kicknick isop # goto begin | /kick # %kicknick } Celui ci aussi ! Randkick:/kick # $nick(#,$r(1,$nick(#,0))) C'est pas drôle les kicks ?? Aller, un autre, celui ci, il kick n'importe qui, peut être vous ! RandOpkick:/kick # $opnick(#,$r(1,$opnick(#,0))) On kick un op au hasard... au moins, ils peuvent se défendre ! Boucles infinies. Avec toutes ces conditions, je vois d'ici qu'une de vos boucles se
'terminera' en boucle infinie. Un petit exemple serais :
Au cas ou un de vos alias, ou remote arrive dans un tel état, utilisez la combinaison de touche Ctrl+Break pour arrêter le processus. Ca vous arrêtera tout très simplement. Fenêtres personnalisés. Depuis la version 5.0 de mIRC, un nouvel outil est ajouté pour vous aider à créer vos propres fenêtres. Cet outil de création/manipulation des fenêtres peut par exemple créer une fenêtre ou vous gardez la trace de ce que vos scripts font. Une fenêtre peut être créée avec la commande /window. Elle peut contenir de nombreux paramètres pour définir le type de fenêtre que mIRC créé, l'état de la fenêtre et le contrôle de son contenu. /window [-abcdelnorsx] @nom [x y [w h]] [/commande] [popup.txt] [police [taille]] paramètres :
b = met à jour la taille de la barre de défilement horizontale pour les listes c = ferme la fenêtre d = ouvre la fenêtre sur le bureau e = Boite d'édition l = liste n = minimise la fenêtre o = si ouverte sur le bureau, la met au premier plan r = restaure la fenêtre s = utilise une liste triée x = maximise la fenêtre @nom = nom de la fenêtre (doit commencer par un @) x,y,w,h = gauche haut largeur hauteur popup.txt = fichier de popup, charge si nécessaire /commande = commande par défaut police/taille = nom de la police et sa taille (la police par défaut est celle de la fenêtre de statuts) vous pouvez aussi utiliser la commande /window pour manipuler les
réglages des fenêtres existantes. Vous pouvez utiliser les commandes suivantes
pour manipuler les lignes :
/dline @nom N supprime la Nième ligne /iline [-cN] @nom N texte insère une ligne a la Nième ligne /rline [-cN] @nom N texte remplace la Nième ligne /sline @nom N sélectionné la Nième ligne ou -cN vous permet de spécifier la couleur de la ligne. Vous pouvez utiliser l'identificateur $window(N/@nom) pour accéder
aux informations suivantes :
$window(N).x gauche $window(N).y haut $window(N).w largeur $window(N).h hauteur $window(N).state minimized/maximized/normal Pour acceder aux lignes de la fenêtre, il est possible d'utiliser
:
$line(@nom,N) retourne la Nième ligne $sline(@nom,N) retourne la Nième ligne sélectionnée (liste seulement) $sline(@nom,N).ln retourne le numéro de la ligne de l'item sélectionné. Ce nouvel outil offre plein de nouvelles possibilités pour créer. Mais vous aurez à tester un peu si vous voulez que ça fasse exactement ce que vous voulez... Amusez-vous bien |
| |||||||||||||||||
|