Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Information sur pseudo et channel pour bot

0/5 (17 avis)

Snippet vu 5 102 fois - Téléchargée 17 fois

Contenu du snippet

Salut ,
Je sais qu'il y a beaucoup de sources de ce genre là.
Je sais aussi qu'elle peut etre inutile mais ...
Ce script permet de savoir via la commande !info et avec un pseudo , un nom de chan ou rien du tout , les infos sur les personnes.
Un exemple sera plus explicite ^^
Je tape sur un chan : !info
je vais avoir toutes les informations sur moi meme , c'est a dire , mon heure d'arrivé , le temps que je suis connecté , le temps que j'n'étais pas venu sur le chan, les nombres de fois ou l'ont m'a Opé/Half-opé/Voicé/kické/Banni etc.. et qui a été la derniere personne a l'avoir fait. Je peux savoir aussi qui j'ai Opé/Half-Opé/Voicé/Kické/banni etc.. et qui etait la derniere personne a qui je l'ai fait. Mon dernier message de quit , la derniere raison pour la personne que j'ai kické et banni , la derniere raison pour la fois ou j'aurais été kické et/ou banni. Le dernier pseudo que j'ai utilisé.Le nombre de lignes que j'ai tapé et le nombre d'action que j'ai fait.
Si je tape : !info #qqchose
Je vais avoir les informations sur le chan #qqchose , ca va me dire le nombre de fois qu'on a kické , banni , opé , voicé, half-opé,etc.., le nombre de lignes écrites sur le chan dans la journée et au total, pareil pour les actions, et le mode du chan ainsi que le topic du chan.
Et aussi , chose qui peut etre utile de savoir , le record d'affluence sur le chan et l'heure et la date auquel ca s'est produit.
Si je tape: !info un_pseudo_de_la_liste
j'aurais les meme infos que moi mais pour qq un de la liste.Si je suis OP , la personne ne saura pas que j'ai regardé, si je ne suis que half-op ou voice , la personne sera alerté que j'ai regardé ses infos.
Si je tape: !info un_pseudo_qui_n'est_pas_la
J'aurais les infos de cette personne si elle est deja venue , si elle n'est jamais venue , j'aurais un message comme quoi , soit la personne n'existe pas , soit je me suis peut-etre trompé dans le pseudo .

Il peut donc servir de seen/tapavu. Bien sur il peut parraitre inutile pour beaucoup. Maintenant on va rechercher des codes pouvant faire un café.... ;) Mais je vois beaucoup de script qui parraissent géniaux mais qui sont que pour les mIRC "client" . Moi je prefere faire pour les Bots, Ca permet aux gens de ne pas etre obligés de télécharger un script pour faire ca, ca marche autant pour les personnes se connectant en Java que pour les autres ^^.
Le systeme est basé sur : 1- l'host de la personne, (c'est pas des plus fiables mais ca l'est plus que de se baser que sur le pseudo (qui lui pourrait changer sans cesse et donc il n'y aurait jamais les bonnes infos) 2- le cryptage de l'host en MD5 , pour une compatibilité au niveau du fichier de sortie et permet de garder l'host secret (ce qui n'est pas très important)

Source / Exemple :


;-------------------------- Mode Info sur pseudo (kick , ban etc..) ------------------------
;Chargement du script
on *:LOAD:{
  /echo -s 4Chargement du Script ©Over The Top Mars 2005
 ;Si le fichier n'existe pas on le créer ^^
  if (!$exist(info.ini)) {
    writeini -n info.ini MAIN CREATE $time
    /echo -s 4Fichiers Créés
  }
}

ON *:TEXT:*:#:{
 ;si !info est le premier token
  if (!info isin $1) {
 ;s'il n'y a pas de second token
    if ( $2 == $null ) {
    ;on creer une variable pour recuperer l'host de la personne
      set %i_host $md5($address($nick,3))
    ;nb: le pseudo pourra etre n'importe lequel tant que l'host correspond
    ;bien sur suite aux problèmes d'ip variable et de connexion Java
    ;on applique le mode 3 qui correspond a : *!ident@*.host
    ;on créer l'host en MD5 pour que ca ne merde pas par rapport aux caracteres spéciaux
    ;c'est pas encore super sécurisé mais c'est que des stats banales
    ;rien d'extremement important ;)
    ;on appelle un alias (permet de réduire ce code)
      infonick
    ;on appelle le second alias qui récuperera les données
      infonick2
    ;les variables toutes entrées on peut afficher le résultat (avec timer ^^ )
      .timer 1 0 .notice $nick 10`-,-`-,- Information sur 2 $nick 10-,-'-,-'
    ;savoir depuis combien de temps tu es connecté
      if (%i_tpsjoin != 0) {
        set %i_tpsduree $calc($ctime - %i_tpsjoin)
      }
      .timer 1 1 .notice $nick 1Tu es connecté depuis4 $duration(%i_tpsduree,1) 1. Tu n'étais pas venu pendant4 $duration(%i_tpsabsent,1)
      .timer 1 1 .notice $nick 1Tu es arrivé sur5 $chan 1le4 $asctime(%i_tpsjoin,dddd dd mmmm yyyy HH:nn) 1.
      .timer 1 1 .notice $nick 1Tu es venu4 %i_nbvenu 1fois pour une durée de4 $duration(%i_tpstotal,1)
      .timer 1 2 .notice $nick 1Opage :4 %i_oper 1de5 %i_lastoper 1Déopage :4 %i_deoper 1de5 %i_lastdeoper
      .timer 1 4 .notice $nick 1Voiçage :4 %i_voicer 1de5 %i_lastvoicer 1Dévoiçage :4 %i_devoicer 1de5 %i_lastdevoicer
      .timer 1 5 .notice $nick 1Half-Opage :4 %i_halfer 1de5 %i_lasthalfer 1Déhalf-Opage :4 %i_dehalfer 1de5 %i_lastdehalfer
      .timer 1 6 .notice $nick 1Kickage :4 %i_kicker 1de5 %i_lastkicker 1Raison :14 %i_raisonkicker
      .timer 1 6 .notice $nick 1Bannissage :4 %i_baner 1de5 %i_lastbaner 1Raison :14 %i_raisonbaner
      .timer 1 6 .notice $nick 1Débannissage :4 %i_debaner 1de5 %i_lastdebaner
      .timer 1 8 .notice $nick 1Opé :4 %i_op 1par5 %i_lastop 1Déopé :4 %i_deop 1par5 %i_lastdeop
      .timer 1 9 .notice $nick 1Voicé :4 %i_voice 1par5 %i_lastvoice 1Dévoicé :4 %i_devoice 1par5 %i_lastdevoice
      .timer 1 10 .notice $nick 1Half-Opé :4 %i_half 1par5 %i_lasthalf 1DéHalf-Opé :4 %i_dehalf 1par5 %i_lastdehalf
      .timer 1 11 .notice $nick 1Kické :4 %i_kick 1par5 %i_lastkick 1Raison :14 %i_raisonkick
      .timer 1 11 .notice $nick 1Banni :4 %i_ban 1par5 %i_lastban 1Raison :14 %i_raisonban
      .timer 1 11 .notice $nick 1Débanni :4 %i_deban 1par5 %i_lastdeban 1. Liens :12 %i_link
      .timer 1 13 .notice $nick 1Dernier Changement de pseudo en 12 %i_lastnick 1. Message de Quit :3 %i_messquit
      .timer 1 15 .notice $nick 1Nombres de Lignes écrites :4 %i_lines 1Lignes.Nombres d'actions : 4 %i_action 1. Noms des chans (avec présence de2 $me 1) : %i_chans
      ;on supprime les variables maintenant
      unset %i_*
      ;sinon si $2 = le nom du chat
    }
    elseif ( $2 == $chan) {
        ;pour que l'alias ne merde pas :p
      set %ichat_name $chan
        ;appel de l'alias
      infochat
        ;on va récup les infos du chat ou l'ont se trouve
        ;nb d'opage,deopage,halfopage,dehalfopage etc.. total
      set %ichat_op $readini(info.ini,$chan,OP)
      set %ichat_deop $readini(info.ini,$chan,DEOP)
      set %ichat_half $readini(info.ini,$chan,HALF)
      set %ichat_dehalf $readini(info.ini,$chan,DEHALF)
      set %ichat_voice $readini(info.ini,$chan,VOICE)
      set %ichat_devoice $readini(info,ini,$chan,DEVOICE)
      set %ichat_kick $readini(info.ini,$chan,KICK)
      set %ichat_ban $readini(info.ini,$chan,BAN)
      set %ichat_deban $readini(info.ini,$chan,DEBAN)
      set %ichat_afflu $readini(info.ini,$chan,AFFLUENCE)
      set %ichat_dateafflu $readini(info.ini,$chan,DATEAFFLUENCE)
      set %ichat_timeafflu $readini(info.ini,$chan,TIMEAFFLUENCE)
      set %ichat_messtotal $readini(info.ini,$chan,MESSTOTAL)
      set %ichat_actiontotal $readini(info.ini,$chan,ACTIONTOTAL)
      set %ichat_topic $chan($chan).topic
      set %ichat_mode $chan($chan).mode
        ;penser a creer pour savoir combien y a eu de messages au total et par jour
        ;penser a creer pour savoir combien y a eu d'action au total et par jour
      .timer 1 0 .notice $chan 10`-,-`-,- Information 6 $chan 1-,-`-,-`
      .timer 1 1 .notice $chan 1Total Opé :4 %ichat_op 1Total Voiçé :4 %ichat_voice 1Total Half-Opé :4 %ichat_half
      .timer 1 1 .notice $chan 1Total Déopé :4 %ichat_deop 1Total Dévoiçé :4 %ichat_devoice 1Total Déhalf-Opé :4 %ichat_dehalf
      .timer 1 2 .notice $chan 1Total Kické :4 %ichat_kick 1Total Banni :4 %ichat_ban 1Total Débanni :4 %ichat_deban
      .timer 1 2 .notice $chan 1Record d'affluence :5 %ichat_afflu 1connectés le14 %ichat_dateafflu 1à14 %ichat_timeafflu
      .timer 1 3 .notice $chan 1Mode du chan : 7 %ichat_mode 1Topic :3 %ichat_topic
      .timer 1 4 .notice $chan 1Total Messages : 4 %ichat_messtotal 1Total Messages du jour :4 %ichat_messtoday. [ $+ [ $chan ] ]
      .timer 1 4 .notice $chan 1Total Actions : 4 %ichat_actiontotal 1Total Actions du jour :4 %ichat_actiontoday. [ $+ [ $chan ] ]
    }
      ;on attaque à si qq un demande les infos de qq un d'autre mais si il est sur le chan
    elseif ( $2 ison $chan ) {
        ;tout d'abord on va récuperer l'host du pseudo dont on recherche les infos
      set %i_host $md5($address($$2,3))
        ;maintenant on va voir si des infos existes si elle n'existe pas on les creer
      infonick
        ;on continue en récuperant chaque info de la personne désirée en appellant l'alias prévu a cette effet
      infonick2
        ;on demande si celui qui demande est Op si oui il continue
      if ( $nick isop $chan ) {
          ;on a tout récuperer on a plus qu'a l'afficher
          ;les variables toutes entrées on peut afficher le résultat (avec timer ^^ )
        .timer 1 0 .notice $nick 10`-,-`-,- Information sur 2 $$2 10-,-'-,-'
          ;savoir depuis combien de temps il est connecté
        if (%i_tpsjoin != 0) {
        set %i_tpsduree $calc($ctime - %i_tpsjoin)
        }
        .timer 1 1 .notice $nick 1 $$2 est connecté depuis4 $duration(%i_tpsduree,1) 1. $$2 n'étais pas venu pendant4 $duration(%i_tpsabsent,1)
        .timer 1 1 .notice $nick 1 $$2 est arrivé sur5 $chan 1le4 $asctime(%i_tpsjoin,dddd dd mmmm yyyy HH:nn) 1.
        .timer 1 1 .notice $nick 1 $$2 es venu4 %i_nbvenu 1fois pour une durée de4 $duration(%i_tpstotal,1)
        .timer 1 2 .notice $nick 1Opage :4 %i_oper 1de5 %i_lastoper 1Déopage :4 %i_deoper 1de5 %i_lastdeoper
        .timer 1 4 .notice $nick 1Voiçage :4 %i_voicer 1de5 %i_lastvoicer 1Dévoiçage :4 %i_devoicer 1de5 %i_lastdevoicer
        .timer 1 5 .notice $nick 1Half-Opage :4 %i_halfer 1de5 %i_lasthalfer 1Déhalf-Opage :4 %i_dehalfer 1de5 %i_lastdehalfer
        .timer 1 6 .notice $nick 1Kickage :4 %i_kicker 1de5 %i_lastkicker 1Raison :14 %i_raisonkicker
        .timer 1 6 .notice $nick 1Bannissage :4 %i_baner 1de5 %i_lastbaner 1Raison :14 %i_raisonbaner
        .timer 1 6 .notice $nick 1Débannissage :4 %i_debaner 1de5 %i_lastdebaner
        .timer 1 8 .notice $nick 1Opé :4 %i_op 1par5 %i_lastop 1Déopé :4 %i_deop 1par5 %i_lastdeop
        .timer 1 9 .notice $nick 1Voicé :4 %i_voice 1par5 %i_lastvoice 1Dévoicé :4 %i_devoice 1par5 %i_lastdevoice
        .timer 1 10 .notice $nick 1Half-Opé :4 %i_half 1par5 %i_lasthalf 1DéHalf-Opé :4 %i_dehalf 1par5 %i_lastdehalf
        .timer 1 11 .notice $nick 1Kické :4 %i_kick 1par5 %i_lastkick 1Raison :14 %i_raisonkick
        .timer 1 11 .notice $nick 1Banni :4 %i_ban 1par5 %i_lastban 1Raison :14 %i_raisonban
        .timer 1 11 .notice $nick 1Débanni :4 %i_deban 1par5 %i_lastdeban 1. Liens :12 %i_link
        .timer 1 13 .notice $nick 1Dernier Changement de pseudo en 12 %i_lastnick 1. Message de Quit :3 %i_messquit
        .timer 1 15 .notice $nick 1Nombres de Lignes écrites :4 %i_lines 1Lignes.Nombres d'actions : 4 %i_action 1. Noms des chans (avec présence de2 $me 1) : %i_chans
      }
        ;si la personne qui veut savoir les infos est un halfop ou alors un voicé ...
      elseif (($nick ishop $chan) || ($nick isvoice $chan)) {
          ;on fait pareil ...
        .timer 1 0 .notice $nick 10`-,-`-,- Information sur 2 $$2 10-,-'-,-'
          ;savoir depuis combien de temps il est connecté
        if (%i_tpsjoin != 0) {
          set %i_tpsduree $calc($ctime - %i_tpsjoin)
        }
        .timer 1 1 .notice $nick 1 $$2 est connecté depuis4 $duration(%i_tpsduree,1) 1. $$2 n'étais pas venu pendant4 $duration(%i_tpsabsent,1)
        .timer 1 1 .notice $nick 1 $$2 est arrivé sur5 $chan 1le4 $asctime(%i_tpsjoin,dddd dd mmmm yyyy HH:nn) 1.
        .timer 1 1 .notice $nick 1 $$2 es venu4 %i_nbvenu 1fois pour une durée de4 $duration(%i_tpstotal,1)
        .timer 1 2 .notice $nick 1Opage :4 %i_oper 1de5 %i_lastoper 1Déopage :4 %i_deoper 1de5 %i_lastdeoper
        .timer 1 4 .notice $nick 1Voiçage :4 %i_voicer 1de5 %i_lastvoicer 1Dévoiçage :4 %i_devoicer 1de5 %i_lastdevoicer
        .timer 1 5 .notice $nick 1Half-Opage :4 %i_halfer 1de5 %i_lasthalfer 1Déhalf-Opage :4 %i_dehalfer 1de5 %i_lastdehalfer
        .timer 1 6 .notice $nick 1Kickage :4 %i_kicker 1de5 %i_lastkicker 1Raison :14 %i_raisonkicker
        .timer 1 6 .notice $nick 1Bannissage :4 %i_baner 1de5 %i_lastbaner 1Raison :14 %i_raisonbaner
        .timer 1 6 .notice $nick 1Débannissage :4 %i_debaner 1de5 %i_lastdebaner
        .timer 1 8 .notice $nick 1Opé :4 %i_op 1par5 %i_lastop 1Déopé :4 %i_deop 1par5 %i_lastdeop
        .timer 1 9 .notice $nick 1Voicé :4 %i_voice 1par5 %i_lastvoice 1Dévoicé :4 %i_devoice 1par5 %i_lastdevoice
        .timer 1 10 .notice $nick 1Half-Opé :4 %i_half 1par5 %i_lasthalf 1DéHalf-Opé :4 %i_dehalf 1par5 %i_lastdehalf
        .timer 1 11 .notice $nick 1Kické :4 %i_kick 1par5 %i_lastkick 1Raison :14 %i_raisonkick
        .timer 1 11 .notice $nick 1Banni :4 %i_ban 1par5 %i_lastban 1Raison :14 %i_raisonban
        .timer 1 11 .notice $nick 1Débanni :4 %i_deban 1par5 %i_lastdeban 1. Liens :12 %i_link
        .timer 1 13 .notice $nick 1Dernier Changement de pseudo en 12 %i_lastnick 1. Message de Quit :3 %i_messquit
        .timer 1 15 .notice $nick 1Nombres de Lignes écrites :4 %i_lines 1Lignes.Nombres d'actions : 4 %i_action 1. Noms des chans (avec présence de2 $me 1) : %i_chans
          ;sauf a la fin , on dit a la personne dont on regarde les infos qu'on est en train de les regarder ^^
        .notice $$2 6 $nick vient de visionner tes infos
      }
      else { .notice $nick Tu n'est pas opérateur/demi-opérateur/voicé sur $chan ! }
        ;on supprime les variables maintenant puisqu'on ne les utilise plus :p
      unset %i_*
    }
      ;maintenant on va demander si la personne recherchée est dans le fichier pseudo.txt.
      ;donc , par rapport au pseudo, on va chercher dans info.ini si son pseudo est égale a un host.
      ;si oui(normalement) , on retourne le host  (chaque pseudo, meme avec changement, aura son host enregistré.
      ;comme ca pas de souci(bien qu'il n'y a rien d'exeptionnel a savoir dans les infos et que tt le monde
      ;peut le faire (sauf les non op/halfop/voice mais ca ...)
    elseif ($2 == $readini(pseudo.txt,PSEUDO,$2)) {
        ;on autorise les ops, half-ops et voice à pouvoir lire les infos des personnes qui ne sont pas là.
        ;celà va servir de Seen/Tapavu (mais plus complet)
      if (($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan)) {
         ;on va récupérer l'host de $2 (puisqu'il existe)
        set %i_host $readini(info.ini,PSEUDO,$2)
         ;maintenant qu'on a le host on peut appeller l'alias pour qu'il vérifie si des infos existes
        infonick
        ;maintenant il faut calculé la durée d'absence si quit n'est pas a 0
        if ($readini(info.ini,%i_host,TPSQUIT) != 0) {
          ;on pourra dire : mais prkoi pas mettre aussi "si TPSJOIN != 0" , et bien
          ;si les infos de la personne sont dans le fichier info.ini,c'est qu'elle est venue :p
          ;mais si elle est venue, si elle est partie y a aussi son heure de départ !
          ;donc si on la cherche est qu'elle n'a pas d'heure de départ, c'est qu'elle est sur le chan
          ;donc ca n'utilise pas ce code elseif mais celui d'avant! Oui mais on le fais car
          ;si le quit merde...(et si le join merde?) généralement le join il est toujours bon mais
          ;comme il y a plusieurs facon de quitter le chan (G-LINE ou chais pas quoi d'autre)
          ;c'est préférable ;)
          set %i_tpsabsent $calc($readini(info.ini,%i_host,TPSJOIN)-$readini(info.ini,%i_host,TPSQUIT))
          writeini -n info.ini %i_host TPSABSENT %i_tpsabsent
        }
         ;on peut appeller l'alias qui va récuperer les infos
        infonick2
         ;on peut afficher le résultat
        .timer 1 0 .notice $nick 10`-,-`-,- Information sur 2 $$2 10-,-'-,-'
          ;savoir depuis combien de temps il est connecté
        set %i_tpsduree $calc($ctime - %i_tpsjoin)
        .timer 1 1 .notice $nick 1 $$2 est connecté depuis4 %i_tpsduree 1. $$2 n'étais pas venu pendant4 $duration(%i_tpsabsent,1)
        .timer 1 1 .notice $nick 1 $$2 est arrivé sur5 $chan 1le4 $asctime(%i_tpsjoin,dddd dd mmmm yyyy HH:nn) 1.
        .timer 1 1 .notice $nick 1 $$2 es venu4 %i_nbvenu 1fois pour une durée de4 $duration(%i_tpstotal,1)
        .timer 1 2 .notice $nick 1Opage :4 %i_oper 1de5 %i_lastoper 1Déopage :4 %i_deoper 1de5 %i_lastdeoper
        .timer 1 4 .notice $nick 1Voiçage :4 %i_voicer 1de5 %i_lastvoicer 1Dévoiçage :4 %i_devoicer 1de5 %i_lastdevoicer
        .timer 1 5 .notice $nick 1Half-Opage :4 %i_halfer 1de5 %i_lasthalfer 1Déhalf-Opage :4 %i_dehalfer 1de5 %i_lastdehalfer
        .timer 1 6 .notice $nick 1Kickage :4 %i_kicker 1de5 %i_lastkicker 1Raison :14 %i_raisonkicker
        .timer 1 6 .notice $nick 1Bannissage :4 %i_baner 1de5 %i_lastbaner 1Raison :14 %i_raisonbaner
        .timer 1 6 .notice $nick 1Débannissage :4 %i_debaner 1de5 %i_lastdebaner
        .timer 1 8 .notice $nick 1Opé :4 %i_op 1par5 %i_lastop 1Déopé :4 %i_deop 1par5 %i_lastdeop
        .timer 1 9 .notice $nick 1Voicé :4 %i_voice 1par5 %i_lastvoice 1Dévoicé :4 %i_devoice 1par5 %i_lastdevoice
        .timer 1 10 .notice $nick 1Half-Opé :4 %i_half 1par5 %i_lasthalf 1DéHalf-Opé :4 %i_dehalf 1par5 %i_lastdehalf
        .timer 1 11 .notice $nick 1Kické :4 %i_kick 1par5 %i_lastkick 1Raison :14 %i_raisonkick
        .timer 1 11 .notice $nick 1Banni :4 %i_ban 1par5 %i_lastban 1Raison :14 %i_raisonban
        .timer 1 11 .notice $nick 1Débanni :4 %i_deban 1par5 %i_lastdeban 1. Liens :12 %i_link
        .timer 1 13 .notice $nick 1Dernier Changement de pseudo en 12 %i_lastnick 1. Message de Quit :3 %i_messquit
        .timer 1 15 .notice $nick 1Nombres de Lignes écrites :4 %i_lines 1Lignes.Nombres d'actions : 4 %i_action 1. Noms des chans (avec présence de2 $me 1) : %i_chans
      }
      else { .notice $nick 4Tu n'as pas le niveau necessaire pour voir les infos de2 $2 sur3 $chan 4! }
      ;on supprime les variables
      unset %i_*
    }
      ;s'il y a un $2 (un $3 etc.. on s'en fout) (s'il n'y a pas de $2 il effectue la premiere commande,si $2 = le nom du chat il execute la seconde) alors
      ;on va dire a la personne que la personne recherchée n'existe pas.
    else { .notice $nick 4La personne recherché n'existe pas. Peut-être $2 a été mal orthographié. }
  }
}

; -------
;On peut attaquer chaques evenements. On va faire dans l'ordre d'arrivée d'une personne sur un chan.
;L'evenement JOIN , puis l'evenement TEXT (on en a deja fait un mais j'prefere espacer pour moins se perdre.
;Ensuite l'evenement OP , HELP, VOICE, DEOP , DEHELP et DEVOICE. On continuera ensuite avec ACTION.
;Et aussi avec NICK . Puis avec les evenements KICK , BAN , UNBAN. et pour finir PART, QUIT, KILL.
;C'est parti...
;--------

On *:JOIN:*:{
 ;on va indiqué que si c'est le bot qui rentre dans un chat il commence les infos.
  set %ichat_name $chan
  infochat
 ;on récupere le host dans tous les cas.
  set %i_host $md5($address($nick,3))
 ;On regarde dans le fichier pseudo.txt si le pseudo n'y est pas sinon on continue
  if ($readini(pseudo.txt,PSEUDO,$nick) != $nick) {
   ;on ecrit le pseudo dans pseudo.txt
    writeini -n pseudo.txt PSEUDO $nick $nick
   ;on ecrit le nom du pseudo et le host a lequel il appartient
    writeini -n info.ini PSEUDO $nick %i_host
   ;on vérifie et créer les infos (si non-existante)
    infonick
  }
 ;on va maintenant regarder si le pseudo correspond au host qui est dans info.ini
  if ($readini(info.ini,PSEUDO,$nick) != %i_host) {
 ;si non, on le change (important qu'en cas d'info quand la personne n'est pas là)
    writeini -n info.ini PSEUDO $nick %i_host
 ;on vérifie et creer si jamais y a pas tout.
    infonick
  }
 ;si le pseudo est bien égale au host on continue
  elseif ($readini(info.ini,PSEUDO,$nick) == %i_host) {
  ;bon sinon si c'est tout bon , on continue. On sait que $nick existe dans la base de donnée(forcément maintenant)
  ;on a plus qu'a changer dans les infos ^^
  ;le nombre de fois venu sur le(s) chat(s) ou il y a le bot
    set %i_nbvenutmp $readini(info.ini,$md5($mask($nick,3)),NBVENU)
    set %i_nbvenu $calc((%i_nbvenutmp) + 1)
    writeini -n info.ini %i_host NBVENU %i_nbvenu
  ;l'heure de connexion :
  ;on l'ajoute au fichier
    writeini -n info.ini %i_host TPSJOIN $ctime
  ;Depuis combien de temps la personne n'était pas venue:
  ;si dans le fichier ce n'est pas égal a 0
    if ($readini(info.ini,%i_host,TPSQUIT) != 0) {
   ;on calcule la durée qu'il y a eu entre(il faudra la recalculé a l'appel des infos quand la personne n'est
   ;pas sur le chat
      set %i_tpsabsent $calc($readini(info.ini,%i_host,TPSJOIN)-$readini(info.ini,%i_host,TPSQUIT))
      writeini -n info.ini %i_host TPSABSENT %i_tpsabsent
    }
  ;sinon on le marque pas , car ca veut dire que la personne n'est jamais venue.
  ;on va maintenant indiquer les chans ou pseudo est (ainsi que le bot)
    writeini -n info.ini %i_host CHANS $comchan($nick,0)
  }
  else { .notice $nick 4Une erreur est survenue dans le script, rapporter l'erreur en pv avec $me | halt }
 ;on peut attaquer les infos pour le chat:
 ;on va vérifié si des infos existent pour le chat:
  set %ichat_name $chan
  infochat
 ;pour l'affluence c simple , on va juste voir combien y a de personnes sur le chan
 ; et si il est plus grand que le nombre entré dans info.ini , alors on rentre le nouveau.
 ;et on y ajoute la date et l'heure , sinon , on laisse tomber ^^
  if ($readini(info.ini,$chan,AFFLUENCE) < $chan(0)) {
    writeini -n info.ini $chan AFFLUENCE $chan(0)
    writeini -n info.ini $chan DATEAFFLUENCE $date
    writeini -n info.ini $chan TIMEAFFLUENCE $time
  }
  ;a chaque chat connecté on lance le timer qui effacera les variables temporaire contenant le nombre de message
  ;et d'action de la journée (on l'indique dans le status mais c'est pas obligatoire)
  if ($me) {
  timermesstoday 00:00 0 1 unset %ichat_*
  /echo -s 4Timer Message $chan R.à.Z et Timer Action $chan R.à.Z
  }
  unset %i_host
}

; on attaque le TEXT
On *:TEXT:*:#:{
  set %i_host $md5($address($nick,3))
 ;on va ajouter +1 a chaque phrase qui sera dites a chaque pseudo et au chan
  set %i_lines $calc($readini(info.ini,%i_host,LINES)+1)
  writeini -n info.ini %i_host LINES %i_lines
  set %ichat_messtotal $calc($readini(info.ini,$chan,MESSTOTAL)+1)
  writeini -n info.ini $chan MESSTOTAL %ichat_messtotal
 ;on va voir maintenant si un lien a été dis , si oui on l'ajoute.
 ;on va dire que si c http le lien on l'ajoute, sinan tant pis
  if (http isin $1-) {
    set %i_linktmp $mid($1-,$pos($1-,http,1),0)
    set %i_link $gettok(%i_linktmp,1,20)
    writeini -n info.ini %i_host LINK %i_link
    unset %i_host
  }
  ;message de la journée
  inc %ichat_messtoday. [ $+ [ $chan ] ] 1
}
;on continue avec les Op, DEOP etc..

on *:OP:#:{
  ;on prend les variables du opeur et du opé
  set %i_host $md5($address($nick,3))
  set %i_host2 $md5($address($opnick,3))
  infonick
  ;on ajoute 1 au nombre d'opage du opeur
  set %i_opertmp $readini(info.ini,%i_host,OPER)
  set %i_oper $calc((%i_opertmp) + 1)
  ;on écrit les infos
  writeini -n info.ini %i_host OPER %i_oper
  writeini -n info.ini %i_host LASTOPER $opnick
  ;on ajoute 1 au nombre fois que l'op a pu etre op par qq un)
  set %i_op $calc($readini(info.ini,%i_host2,OP) + 1)
  ;on ecrit les infos
  writeini -n info.ini %i_host2 OP %i_op
  writeini -n info.ini %i_host2 LASTOP $nick
  ;il faut maintenant ajouter le nombre de opage aux infos du chan
  set %ichat_op $calc($readini(info.ini,$chan,OP) + 1)
  writeini -n info.ini $chan OP %ichat_op
  ;c'est tout bon pour op , on fait pareil pour deop, voice , devoice etc..
}

on *:DEOP:#:{
  ;on prend les variables du deopeur et du deopé
  set %i_host $md5($address($nick,3))
  set %i_host2 $md5($address($opnick,3))
  infonick
  ;on ajoute 1 au nombre de deopage du deopeur
  ;echo -s %i_host - %i_host2
  ;echo -s $readini(info.ini,%i_host,DEOPER)
  ;echo -s $calc($readini(info.ini,%i_host,DEOPER)+1)
  set %i_deoper $calc($readini(info.ini,%i_host,DEOPER)+1)
  ;on écrit les infos
  writeini -n info.ini %i_host DEOPER %i_deoper
  writeini -n info.ini %i_host LASTDEOPER $opnick
  ;on ajoute 1 au nombre fois que le deopé a pu etre deopé par qq un)
  set %i_deop $calc($readini(info.ini,%i_host2,DEOP) + 1)
  ;on ecrit les infos
  writeini -n info.ini %i_host2 DEOP %i_deop
  writeini -n info.ini %i_host2 LASTDEOP $nick
  ;il faut maintenant ajouter le nombre de deopage aux infos du chan
  set %ichat_deop $calc($readini(info.ini,$chan,DEOP)+1)
  writeini -n info.ini $chan DEOP %ichat_deop
}

on *:HELP:#:{
  set %i_host $md5($address($nick,3))
  set %i_host2 $md5($address($hnick,3))
  infonick
  set %i_halfer $calc($readini(info.ini,%i_host,HALFER)+1)
  writeini -n info.ini %i_host HALFER %i_halfer
  writeini -n info.ini %i_host LASTHALFER $hnick
  set %i_half $calc($readini(info.ini,%i_host2,HALF)+1)
  writeini -n info.ini %i_host2 HALF %i_half
  writeini -n info.ini %i_host2 LASTHALF $nick
  set %ichat_half $calc($readini(info.ini,$chan,HALF)+1)
  writeini -n info.ini $chan HALF %ichat_half
}

on *:DEHELP:#:{
  set %i_host $md5($address($nick,3))
  set %i_host2 $md5($address($hnick,3))
  infonick
  set %i_dehalfer $calc($readini(info.ini,%i_host,DEHALFER)+1)
  writeini -n info.ini %i_host DEHALFER %i_dehalfer
  writeini -n info.ini %i_host LASTDEHALFER $hnick
  set %i_dehalf $calc($readini(info.ini,%i_host2,DEHALF)+1)
  writeini -n info.ini %i_host2 DEHALF %i_dehalf
  writeini -n info.ini %i_host2 LASTDEHALF $nick
  set %ichat_dehalf $calc($readini(info.ini,$chan,DEHALF)+1)
  writeini -n info.ini $chan DEHALF %ichat_dehalf
  
}

on *:VOICE:#:{
  set %i_host $md5($address($nick,3))
  set %i_host2 $md5($address($vnick,3))
  infonick
  set %i_voicer $calc($readini(info.ini,%i_host,VOICER)+1)
  writeini -n info.ini %i_host VOICER %i_voicer
  writeini -n info.ini %i_host LASTVOICER $vnick
  set %i_voice $calc($readini(info.ini,%i_host2,VOICE)+1)
  writeini -n info.ini %i_host2 VOICE %i_voice
  writeini -n info.ini %i_host2 LASTVOICE $nick
  set %ichat_voice $calc($readini(info.ini,$chan,VOICE)+1)
  writeini -n info.ini $chan VOICE %ichat_voice
}

on *:DEVOICE:#:{
  set %i_host $md5($address($nick,3))
  set %i_host2 $md5($address($vnick,3))
  infonick
  set %i_devoicer $calc($readini(info.ini,%i_host,DEVOICER)+1)
  writeini -n info.ini %i_host DEVOICER %i_devoicer
  writeini -n info.ini %i_host LASTDEVOICER $vnick
  set %i_devoice $calc($readini(info.ini,%i_host2,DEVOICE)+1)
  writeini -n info.ini %i_host2 DEVOICE %i_devoice
  writeini -n info.ini %i_host2 LASTDEVOICE $nick
  set %ichat_devoice $calc($readini(info.ini,$chan,DEVOICE)+1)
  writeini -n info.ini $chan DEVOICE %ichat_devoice
}
;on attaque ACTION, la mm chose que On TEXT

On *:ACTION:*:#:{
  set %i_host $md5($address($nick,3))
 ;on va ajouter +1 a chaque action qui sera faite au chan et au pseudo
  set %i_action $calc($readini(info.ini,%i_host,LINES)+1)
  writeini -n info.ini %i_host LINES %i_lines
  set %ichat_messtotal $calc($readini(info.ini,$chan,MESSTOTAL)+1)
  writeini -n info.ini $chan MESSTOTAL %ichat_messtotal
  ;action de la journée
  inc %ichat_actiontoday. [ $+ [ $chan ] ]
}
;on continue avec NICK
On *:NICK:{
  set %i_host $md5($address($newnick,3))
 ;on récup l'ancien pseudo et on le met dans les infos :p
  writeini -n info.ini %i_host LASTNICK $nick
}
; on fait KICK , BAN et UNBAN

on *:KICK:#:{
;la meme chose qu'OP, DEOP etc.. sauf qu'on y ajoute la raison du Kick ^^
  set %i_host $md5($address($nick,3))
  set %i_host2 $md5($address($knick,3))
  infonick
  set %i_kicker $calc($readini(info.ini,%i_host,KICKER)+1)
  writeini -n info.ini %i_host KICKER %i_kicker
  writeini -n info.ini %i_host LASTKICKER $knick
  set %i_kick $calc($readini(info.ini,%i_host2,KICK)+1)
  writeini -n info.ini %i_host2 KICK %i_kick
  writeini -n info.ini %i_host2 LASTKICK $nick
  writeini -n info.ini %i_host RAISONKICKER $knick $3-
  writeini -n info.ini %i_host2 RAISONKICK $nick $3-
  set %ichat_kick $calc($readini(info.ini,$chan,KICK)+1)
  writeini -n info.ini $chan KICK %ichat_kick
  ;maintenant , apres un kick , la personne n'est plus sur le chan donc on met sa sortie.
  ;un petit peu de sécurité aussi, si jamais qq un est là avant que le bot vienne , ce serai bete de mettre
  ;la sortie avant l'arrivé , donc on gere tout ca
  ;si l'arrivé sur le chan n'est pas = a 0 donc on peut faire sinon on fait rien
  if ($readini(info.ini,%i_host2,TPSJOIN) != 0) {
    ;on calcule le temps connecté depuis l'arrivée (on crée une variable)
    set %i_timetmp $ctime
    set %i_tpsconnect $calc(%i_timetmp - $readini(info.ini,%i_host2,TPSJOIN))
    writeini -n info.ini %i_host2 TPSCONNECT %i_tpsconnect
    ;on calcule maintenant le total des connections
    set %i_tpstotal $calc($readini(info.ini,%i_host2,TPSTOTAL)+%i_tpsconnect)
    writeini -n info.ini %i_host2 TPSTOTAL %i_tpstotal
    ;on indique maintenant quand la personne est partie
    writeini -n info.ini %i_host2 TPSQUIT %i_timetmp
    ;on fait la meme chose que ca pour toutes les autres façons de quitter le chan
  }
  ;on pense a supprimer les variables (elles sont inutiles maintenant)
  unset %i_*
}

on *:BAN:#:{
  set %i_host $md5($address($nick,3))
  set %i_host2 $md5($address($bnick,3))
  infonick
  set %i_baner $calc($readini(info.ini,%i_host,BANER)+1)
  writeini -n info.ini %i_host BANER %i_baner
  writeini -n info.ini %i_host LASTBANER $bnick
  set %i_ban $calc($readini(info.ini,%i_host2,BAN)+1)
  writeini -n info.ini %i_host2 KICK %i_ban
  writeini -n info.ini %i_host2 LASTBAN $nick
  writeini -n info.ini %i_host RAISONBANER $bnick $3-
  writeini -n info.ini %i_host2 RAISONBAN $nick $3-
  set %ichat_ban $calc($readini(info.ini,$chan,BAN)+1)
  writeini -n info.ini $chan BAN %ichat_ban
}
;une erreur la dedans , vu que le banni n'est pas forcement sur le chan (apres kick)
on *:DEBAN:#:{
  set %i_host $md5($address($nick,3))
  set %i_host2 $md5($address($bnick,3))
  infonick
  set %i_debaner $calc($readini(info.ini,%i_host,DEBANER)+1)
  writeini -n info.ini %i_host DEBANER %i_debaner
  writeini -n info.ini %i_host LASTDEBANER $bnick
  set %i_deban $calc($readini(info.ini,%i_host2,DEBAN)+1)
  writeini -n info.ini %i_host2 KICK %i_ban
  writeini -n info.ini %i_host2 LASTDEBAN $nick
  set %ichat_deban $calc($readini(info.ini,$chan,DEBAN)+1)
  writeini -n info.ini $chan DEBAN %ichat_deban
}

;on peut maintenant faire les QUIT , PART , KILL dans le mm sens que KICK

On *:QUIT:{
  set %i_host $md5($address($nick,3))
  if (($readini(info.ini,%i_host,TPSJOIN) != 0) || ($readini(info.ini,%i_host,TPSJOIN) !isalpha)) {
    set %i_timetmp $ctime
    set %i_tpsconnect $calc((%i_timetmp) - $readini(info.ini,%i_host,TPSJOIN))
    writeini -n info.ini %i_host TPSCONNECT %i_tpsconnect
    set %i_tpstotal $calc($readini(info.ini,%i_host,TPSTOTAL)+%i_tpsconnect)
    writeini -n info.ini %i_host TPSTOTAL %i_tpstotal
    writeini -n info.ini %i_host TPSQUIT %i_timetmp
  }
  ;une chose a rajouter ici c'est le message de QUIT de la personne ^^
  writeini -n info.ini %i_host MESSQUIT $1-
  unset %i_*
}

On *:PART:#:{
  set %i_host $md5($address($nick,3))
  if ($readini(info.ini,%i_host,TPSJOIN) != 0) {
    set %i_timetmp $ctime
    set %i_tpsconnect $calc(%i_timetmp - $readini(info.ini,%i_host,TPSJOIN))
    writeini info.ini %i_host TPSCONNECT %i_tpsconnect
    set %i_tpstotal $calc($readini(info.ini,%i_host,TPSTOTAL)+%i_tpsconnect)
    writeini info.ini %i_host TPSTOTAL %i_tpstotal
    writeini info.ini %i_host TPSQUIT %i_timetmp
  }
  unset %i_*
}

;alias qui va servir a savoir si les lignes dans le fichier info.ini sont vides
;si elles sont vides on les remplis
alias infonick {
  if (!$readini(info.ini,%i_host,OPER)) { writeini -n info.ini %i_host OPER 0 }
  if (!$readini(info.ini,%i_host,LASTOPER)) { writeini -n info.ini %i_host LASTOPER Aucun }
  if (!$readini(info.ini,%i_host,DEOPER)) { writeini -n info.ini %i_host DEOPER 0 }
  if (!$readini(info.ini,%i_host,LASTDEOPER)) { writeini -n info.ini %i_host LASTDEOPER Aucun }
  if (!$readini(info.ini,%i_host,VOICER)) { writeini -n info.ini %i_host VOICER 0 }
  if (!$readini(info.ini,%i_host,LASTVOICER)) { writeini -n info.ini %i_host LASTVOICER Aucun }
  if (!$readini(info.ini,%i_host,DEVOICER)) { writeini -n info.ini %i_host DEVOICER 0 }
  if (!$readini(info.ini,%i_host,LASTDEVOICER)) { writeini -n info.ini %i_host LASTDEVOICER Aucun }
  if (!$readini(info.ini,%i_host,HALFER)) { writeini -n info.ini %i_host HALFER 0 }
  if (!$readini(info.ini,%i_host,LASTHALFER)) { writeini -n info.ini %i_host LASTHALFER Aucun }
  if (!$readini(info.ini,%i_host,DEHALFER)) { writeini -n info.ini %i_host DEHALFER 0 }
  if (!$readini(info.ini,%i_host,LASTDEHALFER)) { writeini -n info.ini %i_host LASTDEHALFER Aucun }
  if (!$readini(info.ini,%i_host,KICKER)) { writeini -n info.ini %i_host KICKER 0 }
  if (!$readini(info.ini,%i_host,LASTKICKER)) { writeini -n info.ini %i_host LASTKICKER Aucun }
  if (!$readini(info.ini,%i_host,KICK)) { writeini -n info.ini %i_host KICK 0 }
  if (!$readini(info.ini,%i_host,LASTKICK)) { writeini -n info.ini %i_host LASTKICK Aucun }
  if (!$readini(info.ini,%i_host,BANER)) { writeini -n info.ini %i_host BANER 0 }
  if (!$readini(info.ini,%i_host,LASTBANER)) { writeini -n info.ini %i_host LASTBANER Aucun }
  if (!$readini(info.ini,%i_host,BAN)) { writeini -n info.ini %i_host BAN 0 }
  if (!$readini(info.ini,%i_host,LASTBAN)) { writeini -n info.ini %i_host LASTBAN Aucun }
  if (!$readini(info.ini,%i_host,DEBANER)) { writeini -n info.ini %i_host DEBANER 0 }
  if (!$readini(info.ini,%i_host,LASTDEBANER)) { writeini -n info.ini %i_host LASTDEBANER Aucun }
  if (!$readini(info.ini,%i_host,DEBAN)) { writeini -n info.ini %i_host DEBAN 0 }
  if (!$readini(info.ini,%i_host,LASTDEBAN)) { writeini -n info.ini %i_host LASTDEBAN Aucun }
  if (!$readini(info.ini,%i_host,OP)) { writeini -n info.ini %i_host OP 0 }
  if (!$readini(info.ini,%i_host,LASTOP)) { writeini -n info.ini %i_host LASTOP Aucun }
  if (!$readini(info.ini,%i_host,VOICE)) { writeini -n info.ini %i_host VOICE 0 }
  if (!$readini(info.ini,%i_host,LASTVOICE)) { writeini -n info.ini %i_host LASTVOICE Aucun }
  if (!$readini(info.ini,%i_host,HALF)) { writeini -n info.ini %i_host HALF 0 }
  if (!$readini(info.ini,%i_host,LASTHALF)) { writeini -n info.ini %i_host LASTHALF Aucun }
  if (!$readini(info.ini,%i_host,DEOP)) { writeini -n info.ini %i_host DEOP 0 }
  if (!$readini(info.ini,%i_host,LASTDEOP)) { writeini -n info.ini %i_host LASTDEOP Aucun }
  if (!$readini(info.ini,%i_host,DEVOICE)) { writeini -n info.ini %i_host DEVOICE 0 }
  if (!$readini(info.ini,%i_host,LASTDEVOICE)) { writeini -n info.ini %i_host LASTDEVOICE Aucun }
  if (!$readini(info.ini,%i_host,DEHALF)) { writeini -n info.ini %i_host DEHALF 0 }
  if (!$readini(info.ini,%i_host,LASTDEHALF)) { writeini -n info.ini %i_host LASTDEHALF Aucun }
  if (!$readini(info.ini,%i_host,LASTNICK)) { writeini -n info.ini %i_host LASTNICK Aucun }
  if (!$readini(info.ini,%i_host,RAISONKICK)) { writeini -n info.ini %i_host RAISONKICK Aucun }
  if (!$readini(info.ini,%i_host,RAISONKICKER)) { writeini -n info.ini %i_host RAISONKICKER Aucun }
  if (!$readini(info.ini,%i_host,RAISONBAN)) { writeini -n info.ini %i_host RAISONBAN Aucun }
  if (!$readini(info.ini,%i_host,RAISONBANER)) { writeini -n info.ini %i_host RAISONBANER Aucun }
  if (!$readini(info.ini,%i_host,TPSCONNECT)) { writeini -n info.ini %i_host TPSCONNECT 0 }
  if (!$readini(info.ini,%i_host,TPSTOTAL)) { writeini -n info.ini %i_host TPSTOTAL 0 }
  if (!$readini(info.ini,%i_host,NBVENU)) { writeini -n info.ini %i_host NBVENU 0 }
  if (!$readini(info.ini,%i_host,CHANS)) { writeini -n info.ini %i_host CHANS Aucun }
  if (!$readini(info.ini,%i_host,LINES)) { writeini -n info.ini %i_host LINES 0 }
  if (!$readini(info.ini,%i_host,LINK)) { writeini -n info.ini %i_host LINK Aucun }
  if (!$readini(info.ini,%i_host,TPSJOIN)) { writeini -n info.ini %i_host TPSJOIN 0 }
  if (!$readini(info.ini,%i_host,TPSQUIT)) { writeini -n info.ini %i_host TPSQUIT 0 }
  if (!$readini(info.ini,%i_host,TPSABSENT)) { writeini -n info.ini %i_host TPSABSENT 0 }
  if (!$readini(info.ini,%i_host,ACTION)) { writeini -n info.ini %i_host ACTION 0 }
  if (!$readini(info.ini,%i_host,MESSQUIT)) { writeini -n info.ini %i_host MESSQUIT Aucun }
}

;alias qui va servir a savoir si les données sur le chat existe ou pas
;si elle n'existe pas on les créer (evite d'avoir des variables vides)
Alias infochat {
  if (!$readini(info.ini,%ichat_name,OP)) { writeini -n info.ini %ichat_name OP 0 }
  if (!$readini(info.ini,%ichat_name,DEOP)) { writeini -n info.ini %ichat_name DEOP 0 }
  if (!$readini(info.ini,%ichat_name,HALF)) { writeini -n info.ini %ichat_name HALF 0 }
  if (!$readini(info.ini,%ichat_name,DEHALF)) { writeini -n info.ini %ichat_name DEHALF 0 }
  if (!$readini(info.ini,%ichat_name,VOICE)) { writeini -n info.ini %ichat_name VOICE 0 }
  if (!$readini(info,ini,%ichat_name,DEVOICE)) { writeini -n info.ini %ichat_name DEVOICE 0 }
  if (!$readini(info.ini,%ichat_name,KICK)) { writeini -n info.ini %ichat_name KICK 0 }
  if (!$readini(info.ini,%ichat_name,BAN)) { writeini -n info.ini %ichat_name BAN 0 }
  if (!$readini(info.ini,%ichat_name,DEBAN)) { writeini -n info.ini %ichat_name DEBAN 0 }
  if (!$readini(info.ini,%ichat_name,AFFLUENCE)) { writeini -n info.ini %ichat_name AFFLUENCE 0 }
  if (!$readini(info.ini,%ichat_name,DATEAFFLUENCE)) { writeini -n info.ini %ichat_name DATEAFFLUENCE 0 }
  if (!$readini(info.ini,%ichat_name,TIMEAFFLUENCE)) { writeini -n info.ini %ichat_name TIMEAFFLUENCE 0 }
  if (!$readini(info.ini,%ichat_name,MESSTOTAL)) { writeini -n info.ini %ichat_name MESSTOTAL 0 }
  if (!$readini(info.ini,%ichat_name,ACTIONTOTAL)) { writeini -n info.ini %ichat_name ACTIONTOTAL 0 }
  unset %ichat_name
}

;on aurait pu tout mettre dans l'alias infonick mais pour "eclaircir" j'prefere prendre un autre alias
;en meme temps c'est pas génant ;) (ca peut réduire de qq lignes de codes en mettant tout dans infonick mais qu'importe
alias infonick2 {
 ;on récupere les infos dans des variables
    ;nb d'opage
  set %i_oper $readini(info.ini,%i_host,OPER)
    ;derniere personne opée
  set %i_lastoper $readini(info.ini,%i_host,LASTOPER)
    ;nb déopage
  set %i_deoper $readini(info.ini,%i_host,DEOPER)
    ;derniere personne deopée
  set %i_lastdeoper $readini(info.ini,%i_host,LASTDEOPER)
    ;nb voicage
  set %i_voicer $readini(info.ini,%i_host,VOICER)
    ;derniere personne voicée
  set %i_lastvoicer $readini(info.ini,%i_host,LASTVOICER)
    ;nb dévoicage
  set %i_devoicer $readini(info.ini,%i_host,DEVOICER)
    ;derniere personne dévoicée
  set %i_lastdevoicer $readini(info.ini,%i_host,LASTDEVOICER)
    ;nb halfopage
  set %i_halfer $readini(info.ini,%i_host,HALFER)
    ;derniere personne halfopée
  set %i_lasthalfer $readini(info.ini,%i_host,LASTHALFER)
    ;nb déhalfopage
  set %i_dehalfer $readini(info.ini,%i_host,DEHALFER)
    ;derniere personne déhalfopée
  set %i_lastdehalfer $readini(info.ini,%i_host,LASTDEHALFER)
    ;nb kickage
  set %i_kicker $readini(info.ini,%i_host,KICKER)
    ;derniere personne kickée
  set %i_lastkicker $readini(info.ini,%i_host,LASTKICKER)
    ;nb kické
  set %i_kick $readini(info.ini,%i_host,KICK)
    ;derniere personne qui t'a kické
  set %i_lastkick $readini(info.ini,%i_host,LASTKICK)
    ;nb bannissage
  set %i_baner $readini(info.ini,%i_host,BANER)
    ;derniere personne bannie
  set %i_lastbaner $readini(info.ini,%i_host,LASTBANER)
    ;nb banni
  set %i_ban $readini(info.ini,%i_host,BAN)
    ;derniere personne qui t'a banni
  set %i_lastban $readini(info.ini,%i_host,LASTBAN)
    ;nb débannissage
  set %i_debaner $readini(info.ini,%i_host,DEBANER)
    ;derniere personne débannie
  set %i_lastdebaner $readini(info.ini,%i_host,LASTDEBANER)
    ;nb débanni
  set %i_deban $readini(info.ini,%i_host,DEBAN)
    ;derniere personne qui t'a débanni
  set %i_lastdeban $readini(info.ini,%i_host,LASTDEBAN)
    ;nb OP
  set %i_op $readini(info.ini,%i_host,OP)
    ;derniere personne qui t'a opé
  set %i_lastop $readini(info.ini,%i_host,LASTOP)
    ;nb déop
  set %i_deop $readini(info.ini,%i_host,DEOP)
    ;derniere personne qui t'a déopé
  set %i_lastdeop $readini(info.ini,%i_host,LASTDEOP)
    ;nb voicé
  set %i_voice $readini(info.ini,%i_host,VOICE)
    ;derniere personne qui t'a voicé
  set %i_lastvoice $readini(info.ini,%i_host,LASTVOICE)
    ;nb dévoicé
  set %i_devoice $readini(info.ini,%i_host,DEVOICE)
    ;derniere personne qui t'a dévoicé
  set %i_lastdevoice $readini(info.ini,%i_host,LASTDEVOICE)
    ;nb halfopé
  set %i_half $readini(info.ini,%i_host,HALF)
    ;derniere personne qui t'a halfopé
  set %i_lasthalf $readini(info.ini,%i_host,LASTHALF)
    ;nb déhalfopé
  set %i_dehalf $readini(info.ini,%i_host,DEHALF)
    ;derniere personne qui t'a déhalfopé
  set %i_lastdehalf $readini(info.ini,%i_host,LASTDEHALF)
    ;dernier pseudo utilisé
  set %i_lastnick $readini(info.ini,%i_host,LASTNICK)
    ;raison du dernier kick
  set %i_raisonkick $readini(info.ini,%i_host,RAISONKICK)
    ;raison du dernier kické
  set %i_raisonkicker $readini(info.ini,%i_host,RAISONKICKER)
    ;raison du dernier ban
  set %i_raisonban $readini(info.ini,%i_host,RAISONBAN)
    ;raison du dernier banni
  set %i_raisonbaner $readini(info.ini,%i_host,RAISONBANER)
    ;temps connecté depuis heure d'arrivé sur le chan
  set %i_tpsconnect $readini(info.ini,%i_host,TPSCONNECT)
    ;temps total des connections sur le chan
  set %i_tpstotal $readini(info.ini,%i_host,TPSTOTAL)
    ;nombre de fois venu sur le(s) chan(s) ou se trouve le bot
  set %i_nbvenu $readini(info.ini,%i_host,NBVENU)
    ;Liste des chans (ou se trouve le bot) fréquentés
  set %i_chans $readini(info.ini,%i_host,CHANS)
    ;nb de lignes tapés sur le(s) chan(s) ou se trouve le bot
  set %i_lines $readini(info.ini,%i_host,LINES)
    ;dernier lien cité sur un chan ou se trouve le bot
  set %i_link $readini(info.ini,%i_host,LINK)
    ;dernier message de quit
  set %i_messquit $readini(info.ini,%i_host,MESSQUIT)
    ;heure d'arrivé sur le chat
  set %i_tpsjoin $readini(info.ini,%i_host,TPSJOIN)
    ;heure parti du chat
  set %i_tpsquit $readini(info.ini,%i_host,TPSQUIT)
    ;durée d'absence
  set %i_tpsabsent $readini(info.ini,%i_host,TPSABSENT)
}

Conclusion :


Il suffit de le charger dans mIRC pour qu'il créer automatiquement les fichiers qu'il a besoin.
Il peut comporter des bugs , merci de me les reporter ^^.
beaucoup d'utilisation de "set " au lieu de "var" (var provoquait des erreurs et j'ai pas vraiment compris pourquoi , mais j'ai vu que ca se reglait très bien en mettant set, donc je laisse comme ca ^^ )
S'il y a des erreurs au niveau du temps (exemple : la personne est connectée depuis le 01/01/1970 à 1h00 , c'est normal , c'est que le code a été mis apres que les personnes soit sur le chan. dès qu'ils seront partis et revenu , le code donnera la bonne date ^^.
(Les bots , ne quittant jamais le chan , auront surement cette date , ce n'est pas important car les bots de salon (ceux donnés par le serveur) n'ont pas d'importance au niveau de la date d'arrivé etc.. (mais si il plante , au moins dès qu'il revient on peut allez se plaindre en disant : tiens mon bot de salon ca fait xx temps qu'il était pas là ;) )

Rien à télécharger

NB: Niveau Initié malgré que ce ne soit pas très très dur , mais facilement chiant a faire quand meme ^^

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.