Rencontres
Meetic.fr

Téléchargements
Bots mIRC
Addons mIRC
Scripts mIRC
Snippets mIRC
Clients IRC
Scripts TCL

Aide IRC & T'chat
Histoire de l'IRC
Définitions
Abréviations
Modes des salons
Les Smileys Java
Aide applet Java
Nétiquette du Chat
Liste des Raws
Les réseaux IRC
Tutorial des Bans
Quizz sur l'IRC
Installer un quizz
Tutorial Ezbounce
Le RFC1459
Messages de quit

Aide IriX (Voila)
Edito
Avoir IriX
Commandes IriX
Commandes CSA
FAQ
La charte

Les Commandes
Bounce/Bnc
NickServ (Jeux.fr)
NickServ (EpiKnet)
NickServ (Voila)
Thema/Metro/Robot
Opérateur
IRCop
Géofront
User
Voila/Wanadoo
Ezbounce

Infos Chat Voila
Présentation
Historique
Le map
Les robots officiels
Détection proxy

Aide Eggdrop
Télécharger
Installez-le
Configurez-le
Les Commandes
Aide TCL
Aide TCL avancée
Scripts TCL
Trivia
Installer Géofront/Eva
Egg sous shell

Aide IRCD/IRCU
Bahamut
Unreal
IRCd Hybrid
IRCoderZ
IRCOxyd
IRCProgs
IRCu de type ancien
IRCu2.10.11.04
CService (IriX)
Services Epona
IRCServices
SCoderZ
UWorld
Entrechat

| Les Liens | Accueil | Annuaire du Chat | Amour et romantisme |
Ajouter en page de démarrage | Ajouter aux favoris | Chat en direct
- Dialoguer en direct !

Google

SECTION III : Construire le Robot

Rubrique I : Matériaux généraux sur la création

            Trois grands matériaux vont vous aider : les variables, les popup, et les remotes. Quelquefois la partie Users peut vous aider pour enregistrer les utilisateurs du Bot, mais il vaut mieux écrire toutes ces données dans un document .txt pour que ce soit plus clair.

            Les variables sont indispensables, vous pourrez enregistrer des données importantes et courtes, telles que le pseudo du Bot par défaut, le pseudo de l’owner, des nombres (par exemple des niveaux d’access, des compteurs, etc.).

            Les popup vous permettent de mettre en place la configuration du Menu Bar par exemple. Vous pouvez ne pas mettre grand’ chose dans votre Menu Bar si vous prévoyez de faire des modules de configuration sous forme de dialogs, mais pour appeler ces dialogs vous pouvez mettre ça dans vos Popup. Par exemple :

|- Menu -|

.Module de configuration:.dialog –m Menu Menu*

.-

.Module de gestion d’access:.dialog –m Access Access*

*Si vous avez appelé vos dialogs ainsi.

            Les remotes sont plusieurs ou un seul fichier selon la taille de vos codes ou les parties que vous souhaiterez leur attribuer. C’est l’essence même de votre Bot et c’est là où vous devrez concentrer vos efforts. Dans ces remotes voici les évènements principaux qui vous seront sans doute utiles :

On Text :

On <niveau>:TEXT:<texte réel>:<lieu où le texte apparaît>: { commandes }

       Par exemple vous souhaitez créer une fermeture automatique du message privé :

On *:TEXT:*:?: .timer 1 2 /closemsg

       Le premier * revoie à tous les types d’utilisateurs, le second * revoie à tous les textes qui seront envoyés en privé, le ? revoie au message privé lui-même (lieu où le texte sera envoyé), le timer permet d’attendre un lapse de temps (en l’occurrence deux secondes ici) avant que le message se ferme de lui-même, les /closemsg est la commande effective qui permet de fermer tous les messages envoyés en privé.

       Par exemple vous voulez que le Robot réagisse à un mot ou à une commande lancée sur un salon :

On *:TEXT:!op:#: {

If (($me isop #) && ($nick isin %accessop)) .mode # +o $nick

}

       Le déclencheur de l’action est le texte « !op » il s’exécute sur # (qui symbolise tous les canaux où le Robot sera présent), la condition ne s’exécute que si le Bot est Op sur le canal et que si le pseudo de la personne qui tape cette commande fait partie de la liste d’access telle qu’elle apparaît dans la variables %accessop, ensuite si les deux conditions sont respectées la personne sera oppée sur le canal actif par le Bot là où elle aura tapé la commande.

On Connect :

On <niveau>:CONNECT: { commandes }

        Cet évènement vous permettra de lister toutes les actions que le Bot devra exécuter une fois connecté. Par exemple vous souhaitez que le Robot joigne automatiquement les canaux enregistrés :

On *:CONNECT: {

.j %canal1 | .j %canal2 | .j %canal3

}

       Ici le Bot joindra automatiquement les canaux enregistrés dans les variables %canal1, %canal2, %canal3.

On Kick :

On <niveau>:KICK:<canal>: { commandes }

       Cet évènement permet au Robot de rebondir sur un Kick en exécutant un autre évènement. Les évènements BAN, OP, DEOP, VOICE, DEVOICE, HELP, DEHELP, TOPIC, permettent aussi d’exécuter des commandes lorsqu’ils apparaissent sur le canal spécifié, de plus ils ont la même syntaxe que le On Kick. Par exemple vous voulez que l’owner soit vengé d’un kick de la part d’un Op :

On *:KICK:%canal1: {

If (($me isop %canal1) && ($knick == %owner)) {

.mode %canal1 –o $nick

.kick %canal1 $nick [Vous n’avez pas à kicker cet utilisateur !]

If (%owner isin %canal1) {

.mode %canal1 +o %owner

Else .timer 2 2 /mode %canal1 +o %owner

} } }

       Cette remote kick du canal spécifié dans la variable %canal1 la personne qui a kické l’owner spécifié dans la variable %owner et réop l’owner en cas de rejoin automatique du canal après le kick sinon toutes les deux secondes et à deux reprises le Bot tentera de mettre le mode +o sur l’owner si il est sur le %canal1.

            Voilà quels sont les trois types d’évènements importants que vous aurez sans doute l’occasion d’utiliser.

Prenons un exemple simple qui vous permettra d’intégrer des variables dans vos remotes et de les réutiliser par la suite. Admettons que vous souhaitez enregistrer un nouveau canal avec pseudo de l’owner, description du canal et mot de passe et que vous êtes l’administrateur du bot.

On *:TEXT:REGISTER:?: {

If ($nick == %Admin) {

.set $$1 %canal1

.set $2 %owner1

.set $3 %passowner1

.set $4- %description

Else .msg $nick Vous n’êtes pas autorisé à utiliser cette commande | halt

} }

       La commande va enregistrer les données envoyées par l’administrateur du Robot défini dans la variable %Admin sous la syntaxe /msg <pseudo du Robot> REGISTER #<canal> <pseudo de l’owner> <son mot de passe> <sa description> si la personne n’est pas l’admin le Bot lui renverra un message d’erreur.

       Vous voilà maintenant prêts à construire votre premier Robot.

Rubrique II : Scripting et Méthodes

            Tout d’abord commençons par prendre un exemple de dialog. Un dialog est une boîte, une fenêtre que vous pouvez intégrer dans mIRC et qui peut exécuter des commandes, assigner des variables, etc.

            Voici l’exemple de la construction d’une boîte de dialog que j’ai fait pour un Robot que j’ai appelé Hadès :

Construction pure et simple

Dialog Configuration {

  Title "                   [ .:. Gestion & Configuration de Hadès Version 1.0 .:. ]"

  Size -1 -1 550 600

  Icon 1, -1 -1 551 601, Themes\config.jpg, top

  Box "[Veuillez configurer Hadès en entrant les données qui vous sont demandées]   [Touche raccourci F1]",2,3 90 543 80

  Text ".:. Pseudo du Robot .:.",3,15 115 120 20

  Edit "",4,140 112 110 20

  Text ".:. Deuxième pseudo du bot .:.",5,265 115 160 35

  Edit "",6,420 112 110 20

  Text ".:. Pseudo du Master .:.",7,15 140 120 35

  Edit "",8,140 137 120 20

  Text ".:. Votre Password .:.",9,265 140 110 35

  Edit "",10,420 137 100 20,pass

  Box "[Paramètres du Robot]",11,3 175 543 110

  Text ".:. Protection Anti-Flood .:.",12,15 200 135 35

  Check "",13,160 197 20 18, right

  Text "[On/Off]",14,180 200 60 35

  Check ".:. Hadès utilisé par tous les chatteurs .:.",15,265 197 220 20, left

  Text "[On/Off]",16,490 200 60 35

  Text ".:. Modes du robots .:.",17,15 225 120 35

  Check "+i (invisible)",18,140 222 75 20,right

  Check "+x (host masqué)",19,225 222 110 20,right

  Check "+z (secure connexion)",20,337 222 125 20,right

  Check "+b (bot)",21,472 222 100 20,right

  Text ".:. ColorStyle Texte du Robot .:.",22,15 252 165 35

  Radio "Bleu",23,185 249 40 20,push,group

  Radio "Rouge",24,236 249 48 20,push

  Radio "Gris",25,296 249 40 20,push

  Radio "Vert",26,347 249 40 20,push

  Radio "Marron",27,398 249 50 20,push

  Radio "Aucune",28,460 249 60 20,push

  Box "[Gestion du Robot et des scripts]",29,3 292 543 200

  Box "[Crédits]",36,3 498 543 97         

  Link "http://www.magician-mIRC.fr.st",30,400 579 200 20

  Text "Module de Gestion de Hadès© conçu par Nessy",31,315 565 250 15

  Text ".:. Effacer tous les logs .:.",32,15 317 150 20

  Check "Ok",33,162 315 30 20

  Text ".:. Remettre les stats à 0 .:.",34,265 317 150 20

  Check "Ok",35,423 315 30 20

  Text ".:. Réinitialiser la base de données concernant les différents access bot/users .:.",37,15 345 390 20

  Check "Valider",38,423 343 100 20

  Text ".:. Niveau de Lamering*  .:.",39,15 375 150 20

  List 40,162 372 200 80

  Text "*Cette liste vous permet d'évaluer la",41,365 372 200 15

  Text "'méchanceté' des 'délits' que le Robot",42,370 385 200 15

  Text "va commettre pour vous =D.",43,370 398 200 15

  Text ".:. Reconnaissance entre les Hades² .:.",44,15 440 200 15

  Radio "Activer",45,215 437 50 20,group

  Radio "Désactiver",46,275 437 70 20

  Button "Annuler",47,310 520 70 20,cancel

  Button "Initialiser",48,390 520 70 20

  Button "Enregistrer",49,470 520 70 20

  Icon 50,7 536 50 50, Themes\slurp.jpg

  Text "[Menu Accessible aussi via la touche .:F1:.]",51,334 550 220 15

  Text ".:. Serveur sur lequel Hades va opérer .:.",52,15 465 200 15

  Edit "",53,225 462 310 20

  Text "Hades est un Lamer Bot qui fait tout ce qui",54,80 520 220 15

  Text "vous est interdit de faire sur un serveur IRC!",55,70 535 220 15

  Text "Spam, Floodnotice, Take-Over, Flood msg, et",56,70 550 240 15

  Text "Dns Site Ip Adresses, Quotes, etc.",57,70 565 220 15

}

Aspect initial selon les valeurs des variables

On *:DIALOG:Configuration:init:*: {

  if (!%botnick) did -ra Configuration 4 (Entrez un nick)

  else did -ra Configuration 4 %botnick

  if (!%botnick2) did -ra Configuration 6 (Pseudo alternatif)

  else did -ra Configuration 6 %botnick2

  if (!%owner) did -ra Configuration 8 (Votre Nick)

  else did -ra Configuration 8 %owner

  if (%password != $null) did -ra Configuration 10 %password

  did -a Configuration 40 Options Attaques Zéro

  did -a Configuration 40 Options Attaques Réduites

  did -a Configuration 40 Options Attaques Normales

  did -a Configuration 40 Options Attaques Elevées

  if (!%server) did -ra Configuration 53 Adresse du serveur sans /server devant exemple: irc.voila.fr

  else did -ra Configuration 53 %server

  if (%Attaques == 0) did -c Configuration 40 Options Attaques Zéro

}

On *:DIALOG:Configuration:sclick:40: {

  if ($did(Configuration,40,1).seltext == Options Attaques Zéro) set %Attaques 0

  if ($did(Configuration,40,2).seltext == Options Attaques Réduites) set %Attaques 1

  if ($did(Configuration,40,3).seltext == Options Attaques Normales) set %Attaques 2

  if ($did(Configuration,40,4).seltext == Options Attaques Elevées) set %Attaques 3

}

Etc.

       Maintenant regardez le résultat, vous comprendrez par vous-même comment créer votre propre boîte de dialog.

            Voilà, je n’ai pas pris l’exemple de dialog le plus simple mais celui-ci regroupe un peu tout ce que vous pouvez faire sous mIRC et sans .dll. Il faut se mettre en tête qu’un dialog comme celui-ci représente à peu prêt deux ou trois heures de boulot rien que dans sa conception graphique, le reste, notamment le traitement des données est pire encore puisqu’il vous faudra tester chaque parcelle de vos codes, en faire de très longs, et parfois vous planter et tout recommencer.

            De plus l’exemple est mauvais puisqu’il s’agit d’un Bot qui doit se charger de spammer et de flooder sur un serveur =). Et faire un dialog aussi énorme est déconseillé pour la bonne raison qu’il n’est pas très pratique, mieux vaut le faire en plusieurs parties.

            Concernant les méthodes de scripting il suffit que vous soyez très rigoureux et normalement tout devrait bien fonctionner. N’hésitez pas à enregistrer vos codes avec des noms de fichiers multiples pour vous y retrouver plus facilement. Travaillez bout à bout et évitez de commencer quinze choses à la fois (débuter un dialog, ensuite faire un groupe d’alias, puis commencer des remotes qui n’ont rien à voir avec le dialog), c’est le meilleur moyen pour n’en finir aucune.

            A propos des alias. Vous avez la possibilité de réduire considérablement vos longues commandes avec des alias qui sont en fait des raccourcis.

            Au lieu d’écrire 20 fois les mêmes codes longs vous pouvez l’écrire une fois pour toutes dans vos alias sous la forme :

/<raccourci> {

<commandes exécutées>

}

            Par exemple si vous souhaitez que le Bot déop la personne qui vous a banni, le kickban, vous deban, vous invite, et vous réop vous pouvez faire :

/furie {

.set %banowner $bnick

.mode $chan –o $nick

.msg $chan $nick L’heure de la vengeance vient de sonner !

.mode $chan +b $address($nick,2)

.kick $chan $nick Ainsi parla le Dieu $me $+ , $knick l’a appris à ses dépends

.mode $chan –b %banowner

.invite %banowner $chan

.timer 1 5 /mode $chan +o %banowner

.timer 1 6 /msg $chan %banowner $+ , te voilà vengé =]

.unset %banowner

}

       Voilà les nombreuses lignes de codes que vous éviterez de retaper en utilisant seulement la commande /furie.

            Vous êtes maintenant bien renseigné nous allons voir maintenant comment rendre vos évènements crédibles, vous économiserez ainsi, peut être, du temps.

Rubrique III : Coïncidence des évènements et crédibilité

            Afin d’éviter les mauvaises surprises, évitez d’écrire deux fois le même code, sinon les commandes s’exécuteront deux fois, ça peut sembler crétin comme remarque mais il arrive parfois que l’on écrive deux fois les mêmes choses sans s’en rendre compte ou pour être sûr qu’une des deux fonctionne. De plus lors des évènements On Text préférez l’écriture des répliques du Robots (si vous en prévoyez) sur un document .txt. Nous allons voir un exemple simple de lecture aléatoire d’une réplique que le Bot lancera en appelant le fichier .txt que vous créez.

            Par exemple si vous souhaitez que le Bot lance une réflexion aléatoire sur le canal actif lors d’un opage :

On *:OP:#: {

.msg $chan $read –smirc Op.txt

}

       Vous devez écrire les répliques dans le fichier Op.txt qui se situera dans le même répertoire de mIRC.exe sinon vous devez spécifier le chemin d’accès du fichier.

       Vous pouvez aussi ordonner l’écriture de données lourdes ou nombreuses sur un fichier .txt pour éviter de surcharger les variables avec la commande write <fichier>.txt <donnée(s) à insérer>.

            Enfin, notez bien que vous pouvez parfois arriver aux mêmes résultats avec des codes complètement différents, le tout c’est d’y arriver et si possible, avec le moins de codes et le moins de variables à faire travailler pour éviter d’engorger le scripts de variables inutiles et qu’il fasse des opérations trop complexes si plus simple est possible. Pour que votre Bot soit crédible il faut qu’il soit le plus rapide possible pour exécuter les tâches simples, qu’il ne soit pas bourré de bugs et de fautes d’orthographe, et qu’il soit le plus intuitif possible pour les personnes qui voudront l’utiliser.

            Prenez le temps de bien travailler sur la configuration du Bot, il faut que toutes ses fonctions soient accessibles le plus rapidement possible par l’utilisateur. Ainsi, il vous faudra parfois viser plus l’efficacité que le superflu.

            Vous avez maintenant conçu le Robot de vos rêves, mais tout n’est pas encore terminé.

Rubrique IV : Finalisation de la conception

            Voici quelques conseils pour la route pour bien clôturer tout ça. Vous êtes à deux doigts de la gloire et il vous reste encore un peu de temps pour faire dans le détail ?

            Vous pouvez alors par exemple améliorer le design de votre Bot. Par exemple en utilisant l’évènement On Start vous pouvez vous faire une présentation sympa que l’utilisateur verra à chaque lancement du Robot.

       Vous voulez qu’un message s’affiche dans la barre de status du Bot lors du lancement avec le nombre de fois que le script a été lancé et lancer un dialog de configuration si le script est lancé pour la première fois, ce qui va permettre à l’utilisateur de configurer les options nécessaires au bon fonctionnement du Bot.

On *:START: {

if (%utilisation == $null) {

echo -s 5 .:. Bonjour à toi ! Tu viens de télécharger <nom du bot> et tu le lances pour la première fois !! .:.    
echo
-s 0 -

echo -s 5 .:. Concernant les détails et le fonctionnement du bot n'hésites pas à lire le Lisez-moi.txt il a été créé pour ça .:.
   
echo
-s 0 -
   
echo
-s 5 .:. 0,0 --- 5 Le scripting, les thèmes et les fichiers .txt ont été conçus par <pseudo de l’auteur> 0,0 ---- 5 .:.
   
echo
-s 0 -
   
echo
-s 5 .:. Pour tous renseignements, réclamations, insultes, envois de virus pour me montrer votre gratitude entre autres choses : <e-mail de l’auteur> .:.
   
echo
-s 0 -
   
echo
-s 5 .:. Merci d'avoir choisi <bot et sa version> ! N'oubliez pas que vous pouvez toujours télécharger <petit coup de pub pour un autre bot ou script au passage…> sur <URL du Robot> ! .:.
   
echo
-s 0 -
   
echo
-s 5 .:. Tu vas accéder au @dialog de configuration afin de rentrer les données nécessaires au bon fonctionnement du bot .:.
   
echo
-s 0 -
   
echo
-s 5 .:. ­Chargement des scripts en cours...­
.:.

    set %utilisation 1

    load -rs <script d’initialisation>.mrc

    echo -s 5 .:. ­Scripts loadés avec succès­ .:.

    .timer1 1 3 /dialog -m <nom du dialog> <nom du dialog>

  }

  if (%utilisation > 0) {

    inc %utilisation 1

echo -s 5 .:. <pseudo du bot> a été lancé $+ %utilisation fois .:.    
echo
-s 0 -
   
echo
-s 5 .:. De plus nous vous rappelons que des mises à jour sont disponibles sur <URL du site officiel> .:.
echo -s 0 -    
echo -s 5 .:.
0,0 ----- 5 Scripté par <pseudo de l’auteur> 0,0 ------ 5 .:.    
echo
-s 0 -
   
echo
-s 5 .:. Pour tous renseignements, réclamations, insultes, envois de virus pour me montrer votre gratitude entre autres choses : <e-mail de l’auteur> .:.
   
echo
-s 0 -
   
echo
-s 5 .:. Merci d'avoir choisi <Bot et version> ! .:.
   
echo
-s 0 -
   
echo
-s 5 .:. Vous allez maintenant vous connecter automatiquement à votre serveur préféré .:.
echo -s 0 -    
echo -s 0 --------------------------------------------------- 5 .:. ­Bon t'chat !­ .:.

    nick %botnick

}

}

       Le code a été coupé en deux. La première partie s’exécute si c’est la première utilisation du Robot, c'est-à-dire si la variable %utilisation n’a pas été créée. Ce qui va déclencher un message dans le status du Bot grâce à l’utilisation des ECHO (le –s exécute l’ECHO dans le status), à la fin du message la variable %utilisation est assignée pour qu’au prochain démarrage ce soit la deuxième condition qui soit exécutée. Vous pouvez par la même occasion en profiter pour charger le ou les scripts qui sont dans votre dossier mIRC pour être bien certains que les commandes d’initialisation (création de dossiers, de fichiers, mise en place de variables, etc.) soient bien effectuées au premier démarrage du Bot, ensuite vous pouvez charger le dialog de configuration pour que l’utilisateur rentre les données nécessaires au bon démarrage du Bot.

       La deuxième partie s’exécute si ce n’est pas le premier démarrage du Bot, il s’agit d’un simple message d’accueil indiquant que le script a été lancé X fois en incrémentant à chaque lancement la variable %utilisation de 1. Vous pouvez ajouter, à la fin du code, une commande pour que le Bot prenne bien le pseudo qui a été enregistré dans la variable %botnick.

       Ce système vous permet d’envoyer systématiquement le message d’accueil, vous pouvez donc rappeler vos coordonnées, demander de visiter votre site, ou de lire les fichiers d’aide si l’utilisateur a besoin d’informations complémentaires.

            De plus vous avez parfaitement le droit d’inclure un autojoin sur votre salon perso pour que le bot, lorsqu’il sera téléchargé, le joigne à la connexion, utilisez l’évènement On Connect pour cela.

Une fois que vous avez réglé tous les petits détails que vous vouliez régler nous allons voir ce qui va se passer après la conception effective de votre Robot.

©2002 - Nessy
www.magician-mIRC.org

Au Ciné : News
Contrebande
Je te promets
De rouille et d'os
Moonrise Kingdom
Mille Mots
Mr Foster
On est là !
The Day He Arrives
La Belle et la Bête 3D

Newsletter
Restez informé de l'actualité du cinéma avec Nord-Cinéma

Services IRC
T'chat sur votre site
Cinéma sur votre site
Module T'chat Voila

Aide bot mIRC
CService
Faire son bot



Aide mIRC
Alias
Popup
Remotes
Variables
Cours de scripting

Partenaires
Home cinéma
Cinema
Nouveautes DVD
Location dvd
Forum de l'IRC

©2002-2004 CSAdmin.net Liens | Faites de csadmin.net votre page d'accueil
CSAdmin.net est déclaré à la CNIL sous le numéro 856687
Google