Enregistreur de messages pour bot 1.1

Contenu du snippet

Salut , Voila ma deuxième source où j'ai remplacé les variables par des fichiers INI.
Donc en utilisant les commandes /writeini et $readini() . Ceci est vraiment mieux . Merci à Sorn Drixer pour l'idée d'utiliser ces commandes et le mini tutorial .
Merci à Kolibot pour m'avoir indiqué ce que je aurais dü utiliser .
Ancienne source : http://www.ircfr.com/code.aspx?ID=19310
Pour répondre à Kerrigan , J'utilise un autre système qui n'est peut-etre pas mieux ou identique aux notify (je n'ai pas essayé avec les notify).

La source est commentée comme on me l'a demandé .(pas ligne par ligne mais presque)

Que dire de plus que ce n'est qu'une version qui comporte surement des bugs mais dans laquelle j'attends qu'on puisse m'aider à l'améliorer au mieux .

Plus d'info :
Quand quelqu'un se connecte au chan : Le script vérifie si l'host existe déja dans la base et si le pseudo est égale au pseudo enregistré dans le fichier INI.
si l'host n'existe pas , alors il est créé avec le pseudo utilisé .
si l'host existe et le pseudo est identique , alors on indique les messages .
si l'host existe mais le pseudo est différent , alors on indique les messages mais lui dit qu'il faut qu'il change de pseudo pour les voir et on ajoute son nouveau pseudo dans la liste de son pseudo principal.
si il n'a aucun compte , on lui "créé" un compte .
si il y a une erreur un fichier error.log est créé et une ligne désignant pour quel pseudo , quel host la date et l'heure est ajoutée

Quand quelqu'un change de pseudo sur le chan et décide de voir ses messages , le pseudo est ajouté au pseudo principal suivant son host et il vois ses messages.

Evenement ON TEXT : pour les chat en Java , si la personne utilise de la couleur , $1 n'est pas la commande mais c'est $2 . donc sans ON *:TEXT:*!commande*: celà ne marche pas . (l'astérisque avant le point d'exclamation)

Pour le reste ... lire la source :)

Source / Exemple :


;-------------- IN BOX MESSAGE ------------

;------------------------- Refait ---------------------------------------------------

;on va commencer par enregistrer les pseudos des gens qui se connecteront et leur afficher leur nouveaux messages si ils en ont .
ON *:JOIN:*:{
 ;si le mask et le pseudo n'est pas dans la liste des pseudos on l'ajoute
 if ( $readini(nick.ini,PSEUDO,$address($nick,3)) == $null) {
   .writeini -n nick.ini PSEUDO $address($nick,3) $nick
  if (!$readini(nick.ini,PSEUDO,TOTAL)) {
   .writeini -n nick.ini PSEUDO TOTAL 1
  }
  elseif ( $readini(nick.ini,PSEUDO,$address($nick,3)) != $null) {
   .set %total.nick $readini(nick.ini,PSEUDO,TOTAL)
   .inc %total.nick 1
   .writeini -n nick.ini PSEUDO TOTAL %total.nick
   .unset %total.nick
  }
 }
 ;ensuite on vérifie que le mask et le pseudo sois identique a celui de liste
 if ( $readini(nick.ini,PSEUDO,$address($nick,3)) != $null) {
  ;si le pseudo n'est pas indentique au mask dans la liste
  if ( $readini(nick.ini,PSEUDO,$address($nick,3)) != $nick) {
  ;on crée une variable temporaire contenant le vrai nick
  .set %true.nick $readini(nick.ini,PSEUDO,$address($nick,3))
  ;---on va chercher si son pseudo est déja dans la liste ^^ ---
    ;si il n'y a aucun autre pseudo d'inscrit dans le nombre de pseudo du vrai nick on y met 0
    if ( !$readini(nick.ini,%true.nick,NBNICK)) { .writeini -n nick.ini %true.nick NBNICK 0 }
    ;puis
    if ($readini(nick.ini,%true.nick,NBNICK)) {
     ;on recupere le nombre d'entrée
     .set %nb.pseudo $readini(nick.ini,%true.nick,NBNICK)
    }
   ;on va faire un while qui retournera toutes les entrées pour tester
   while (%nb.pseudo >= 1) {
    ;on va tester chaque entrée pour savoir si le pseudo existe
    if ( $readini(nick.ini,%true.nick,%nb.pseudo) == $nick) { .set %exist.nick %nb.pseudo | .break }
    ;on décremente jusqu'a tous les faire
    .dec %nb.pseudo 1
   }
   ;on peut supprimer la variable
   .unset %nb.pseudo
   ;on vérifie que %exist.nick existe (ce qui voudrait dire que le pseudo existe )
   ;si il n'existe pas on va créer une nouvelle entrée
   if (!%exist.nick) {
     ;on récupere le nombre d'entrée
     .set %nbnick $readini(nick.ini,%true.nick,NBNICK)
     ;on ajoute une entrée
     .inc %nbnick 1
     ;on met a jour le nombre d'entrée
     .writeini -n nick.ini %true.nick NBNICK %nbnick
     ;on ajoute le pseudo a la liste
     .writeini -n nick.ini %true.nick %nbnick $nick
     ;on vire la variable
     .unset %nbnick
   }
   ;on vire l'autre aussi
   .unset %exist.nick
   ;on lui demande de prendre son vrai pseudo pour voir ses messages
   .notice $nick 1Pour consulter vos messages identifiez vous avec votre pseudo6 %true.nick 1. Commande 5 /nick %true.nick
   ;si cette personne n'a pas encore eu de message , on lui crée son "compte" a partir de son vrai nick
   if ($readini(inbox.ini,MESSAGE,%true.nick)) == $null {
    ;on inscrit 0 message et 0 nouveau message (evidemment)
    .writeini -n inbox.ini NEWMESSAGE %true.nick 0
    .writeini -n inbox.ini MESSAGE %true.nick 0
    ;on lui dit qu'il n'a pas de message
    .notice $nick 1Vous avez4 $readini(inbox.ini,NEWMESSAGE,%true.nick) 1nouveaux messages (4 $readini(inbox.ini,MESSAGE,%true.nick) 1messages ) ! Tapez 4!efface 6aide 1 pour plus d'info
   }
   ;sinon si cette personne a déja un compte , on vérifie ses messages
   elseif ($readini(inbox.ini,MESSAGE,%true.nick) {
    ;on lui affiche ses infos
    .notice $nick 1Vous avez4 $readini(inbox.ini,NEWMESSAGE,%true.nick) 1nouveaux messages (4 $readini(inbox.ini,MESSAGE,%true.nick) 1messages ) ! Tapez 4!efface 6aide 1 pour plus d'info
   }
   ;on peut supprimer la variable du vrai nick
   .unset %true.nick
  }
  ;sinon si le pseudo est identique au mask dans la liste
  elseif ( $readini(nick.ini,PSEUDO,$address($nick,3)) == $nick) {
   ;si cette personne n'a pas encore eu de message , on lui crée son "compte"
   if ($readini(inbox.ini,MESSAGE,$nick)) == $null {
    ;on inscrit 0 message et 0 nouveau message (evidemment)
    .writeini -n inbox.ini NEWMESSAGE $nick 0
    .writeini -n inbox.ini MESSAGE $nick 0
    ;on lui dit qu'il n'a pas de message
    .notice $nick 1Vous avez4 $readini(inbox.ini,NEWMESSAGE,$nick) 1nouveaux messages (4 $readini(inbox.ini,MESSAGE,$nick) 1messages ) ! Tapez 4!efface 6aide 1 pour plus d'info
   }
   ;sinon si cette personne a déja un compte , on vérifie ses messages
   elseif ($readini(inbox.ini,MESSAGE,$nick) {
    ;on lui affiche ses infos
    .notice $nick 1Vous avez4 $readini(inbox.ini,NEWMESSAGE,$nick) 1nouveaux messages (4 $readini(inbox.ini,MESSAGE,$nick) 1messages ) ! Tapez 4!efface 6aide 1 pour plus d'info
   }
  }
 ;sinon , un petit message dans l'error.log ^^
 else { .write error.log Le $date à $time : Erreur dans le script $script : Causé par $nick sur $chan (Addr : $fulladdress }
 }
;sinon , un petit message dans l'error.log ^^
 else { .write error.log Le $date à $time : Erreur dans le script $script : Causé par $nick sur $chan (Addr : $fulladdress }
}

;Maintenant La suite ^^

;----------------------------------- Commande sur le chan --------------------------------------------

ON *:TEXT:*:#:{
;on commence par le plus simple ^^
; isin $1- parce qu'a cause des chat en java , la couleur , les token $1 $2 etc.. ne passe pas correctement
if ( !mess isin $1-) { .notice $nick 1Tapez4 !mess 6pseudo 12message 1dans un message privé de10 $me }
;on recommence mais la c'est plus compliqué
elseif ( !voir isin $1-) {
 ;on commence par identifier de qui il s'agit
 ;si c'est le bon pseudo
 if ( $readini(nick.ini,PSEUDO,$address($nick,3)) == $nick) {
  ;on lui indique ses messages
  .notice $nick 1Vous avez4 $readini(inbox.ini,NEWMESSAGE,$nick) 1nouveaux messages (4 $readini(inbox.ini,MESSAGE,$nick) 1messages ) ! Tapez 4!efface 6aide 1 pour plus d'info
 }
 ;si ce n'est pas le bon pseudo
 elseif ( $readini(nick.ini,PSEUDO,$address($nick,3)) != $nick) {
  ;on crée une variable temporaire contenant le vrai nick
  .set %true.nick $readini(nick.ini,PSEUDO,$address($nick,3))
  ;---on va chercher si son pseudo est déja dans la liste ^^ ---
   ;si il n'y a aucun autre pseudo d'inscrit dans le nombre de pseudo du vrai nick on y met 0
    if ( !$readini(nick.ini,%true.nick,NBNICK)) { .writeini -n nick.ini %true.nick NBNICK 0 }
    ;puis
    if ($readini(nick.ini,%true.nick,NBNICK)) {
     ;on recupere le nombre d'entrée
     .set %nb.pseudo $readini(nick.ini,%true.nick,NBNICK)
    }
   ;on va faire un while qui retournera toutes les entrées pour tester
   while (%nb.pseudo >= 1) {
    ;on va tester chaque entrée pour savoir si le pseudo existe
    if ( $readini(nick.ini,%true.nick,%nb.pseudo) == $nick) { .set %exist.nick %nb.pseudo | .break }
    ;on décremente jusqu'a tous les faire
    .dec %nb.pseudo 1
   }
   ;on peut supprimer la variable
   .unset %nb.pseudo
   ;on vérifie que %exist.nick existe (ce qui voudrait dire que le pseudo existe )
   ;si il n'existe pas on va créer une nouvelle entrée (tant qu'a faire)
   if (!%exist.nick) {
     ;on récupere le nombre d'entrée
     .set %nbnick $readini(nick.ini,%true.nick,NBNICK)
     ;on ajoute une entrée
     .inc %nbnick 1
     ;on met a jour le nombre d'entrée
     .writeini -n nick.ini %true.nick NBNICK %nbnick
     ;on ajoute le pseudo a la liste
     .writeini -n nick.ini %true.nick %nbnick $nick
     ;on vire la variable
     .unset %nbnick
   }
   ;on vire l'autre aussi
   .unset %exist.nick
   ;on lui demande de prendre son vrai pseudo pour voir ses messages
   .notice $nick 1Pour consulter vos messages identifiez vous avec votre pseudo6 %true.nick 1. Commande 5 /nick %true.nick
   ;on peut lui indiquer ses messages
   .notice $nick 1Vous avez4 $readini(inbox.ini,NEWMESSAGE,%true.nick) 1nouveaux messages (4 $readini(inbox.ini,MESSAGE,%true.nick) 1messages ) ! Tapez 4!efface 6aide 1 pour plus d'info
   ;on peut supprimer la variable
   .unset %true.nick
 }
 ;sinon , un petit message dans l'error.log ^^
 else { .write error.log Le $date à $time : Erreur dans le script $script : Causé par $nick sur $chan (Addr : $fulladdress }
}
}
;on attaque la suite ^^

;----------------------- Commande Sur PV du BOT -----------------------------------------

;Ecrire un message a qq un
ON *:TEXT:*!mess*:?:{
 ;si $2 est vide (evidement que $2 est vide aussi :S ) on indique comment il faut proceder !
 if ( $2 == $null ) { .msg $nick 1Il faut indiquer le pseudo 4EXACT 1(celui le plus utilisé) de la personne qui doit recevoir le message ainsi que le message }
 ;si $2 est egale a celui qui tape le message on lui dit qu'il faut pas prendre le BOT pour un céohenne
 elseif ( $2 == $nick ) { .msg $nick 1Pourquoi ne pas utiliser le bloc-note ? Ou une feuille , un stylo... }
 ;si $2 est egale au BOT on lui demande ce qu'il fait ....
 elseif ( $2 == $me ) { .msg $nick 1Que veux tu que je fasse de ton message ? Je ne suis qu'un Robot ! }
 ;si $2 est sur le chan avec le pseudo qu'on a taper
 elseif ( $2 ison # ) { .msg $nick 1Inutile de laisser un message car $$2 est déja sur # }
 ;si $2 est sur le chan alors on lui dit que ca ne sert a rien d'envoyer un message a $2 (mais pour faire simple on va chercher si le pseudo n'est pas connecter sous un autre pseudo ^^)
 elseif ($readini(nick.ini,PSEUDO,$address($$2,3)) ison # ) {
  ;on va indiquer que $2 est bien sur le chan et avec quel pseudo ^^
  ;on compte le nombre de chatteur et le met dans une variable
  .set %total.nick $nick(#,0)
  ;on fait une boucle pour savoir quel pseudo est egale au mask
  while ( %total.nick >= 1 ) {
  if ($address($$2,3) == $nick(#,%total.nick) { .set %other.nick $nick(#,%total.nick) | .break }
  .dec %total.nick 1
  }
  .msg $nick 1Inutile de laisser un message car $$2 est là 1Son pseudo est 13 %other.nick
 }
 ;sinon on regarde si un message a été tapé et si ce n'est pas le cas on envoie un message l'indiquant
 elseif ( $3 == $null ) { .msg $nick Aucun message tapé ! Le message ne sera délivré }
 ;sinon on envoie le message
 else {
  ;si le nombre de message pour $$2 n'existe pas il est creer et pour les nouveaux messages aussi
  if (!$readini(inbox.ini,MESSAGE,$$2)) {
   .writeini -n inbox.ini MESSAGE $$2 1
   .writeini -n inbox.ini NEWMESSAGE $$2 1
   }
  ;sinon on ajoute le message
  else {
  ;on créé une variable pour le nombre de messages
  .set %tempo.mess $readini(inbox.ini,MESSAGE,$$2)
  ;on lui ajoute 1
  .inc %tempo.mess 1
  ;on crée une variable pour le nombre de nouveaux messages
  .set %tempo.new.mess $readini(inbox.ini,NEWMESSAGE,$$2)
  ;on ajoute 1
  .inc %tempo.new.mess 1
  ;on remplace les valeurs précedentes par les nouvelles
  .writeini -n inbox.ini NEWMESSAGE $$2 %tempo.new.mess
  .writeini -n inbox.ini MESSAGE $$2 %tempo.mess
  ;on créé une variable avec le message (coloré en plus :p )
  .write -c tempmess.tmp 1Message de6 $nick 1le2 $date 1à2 $time 1:5 $3-
  ;on l'ajoute dans le fichier
  .writeini -n inbox.ini $$2 %tempo.mess $read(tempmess.tmp,n)
  ;on supprime les variables temporaires
  .unset %tempo.new.mess
  ;on affiche le message pour confirmé la facon qu'il sera présenté
  .msg $nick 4Message enregistré ! Le Message : $readini(inbox.ini,n,$$2,%tempo.mess)
  ;on supprime la derniere variable
  .unset %tempo.mess
  }
 }
}

;on attaque la suite !!

ON *:TEXT:*!efface*:?:{
 ;si il n'y a pas $2
 if ( $2 == $null ) {
  ;on commence par identifier de qui il s'agit
 ;si c'est le bon pseudo
 if ( $readini(nick.ini,PSEUDO,$address($nick,3)) == $nick) {
  ;on lui indique ses messages
  .notice $nick 1Vous avez4 $readini(inbox.ini,NEWMESSAGE,$nick) 1nouveaux messages (4 $readini(inbox.ini,MESSAGE,$nick) 1messages ) ! Tapez 4!efface 6aide 1 pour plus d'info
 }
 ;si ce n'est pas le bon pseudo
 elseif ( $readini(nick.ini,PSEUDO,$address($nick,3)) != $nick) {
  ;on crée une variable temporaire contenant le vrai nick
  .set %true.nick $readini(nick.ini,PSEUDO,$mask($nick,3))
  ;---on va chercher si son pseudo est déja dans la liste ^^ ---
   ;si il n'y a aucun autre pseudo d'inscrit dans le nombre de pseudo du vrai nick on y met 0
    if ( !$readini(nick.ini,%true.nick,NBNICK)) { .writeini -n nick.ini %true.nick NBNICK 0 }
    ;puis
    if ($readini(nick.ini,%true.nick,NBNICK) {
     ;on recupere le nombre d'entrée
     .set %nb.pseudo $readini(nick.ini,%true.nick,NBNICK)
    }
   ;on va faire un while qui retournera toutes les entrées pour tester
   while (%nb.pseudo >= 1) {
    ;on va tester chaque entrée pour savoir si le pseudo existe
    if ( $readini(nick.ini,%true.nick,%nb.pseudo) == $nick) { .set %exist.nick %nb.pseudo | .break }
    ;on décremente jusqu'a tous les faire
    .dec %nb.pseudo 1
   }
   ;on peut supprimer la variable
   .unset %nb.pseudo
   ;on vérifie que %exist.nick existe (ce qui voudrait dire que le pseudo existe )
   ;si il n'existe pas on va créer une nouvelle entrée (tant qu'a faire)
   if (!%exist.nick) {
     ;on récupere le nombre d'entrée
     .set %nbnick $readini(nick.ini,%true.nick,NBNICK)
     ;on ajoute une entrée
     .inc %nbnick 1
     ;on met a jour le nombre d'entrée
     .writeini -n nick.ini %true.nick NBNICK %nbnick
     ;on ajoute le pseudo a la liste
     .writeini -n nick.ini %true.nick %nbnick $nick
     ;on vire la variable
     .unset %nbnick
   }
   ;on vire l'autre aussi
   .unset %exist.nick
   ;on lui demande de prendre son vrai pseudo pour voir ses messages
   .notice $nick 1Pour consulter vos messages identifiez vous avec votre pseudo6 %true.nick 1. Commande 5 /nick %true.nick
   ;on peut lui indiquer ses messages
   .notice $nick 1Vous avez4 $readini(inbox.ini,NEWMESSAGE,%true.nick) 1nouveaux messages (4 $readini(inbox.ini,MESSAGE,%true.nick) 1messages ) ! Tapez 4!efface 6aide 1 pour plus d'info
   ;on peut supprimer la variable
   .unset %true.nick
  }
 }
 ;si on tape aide , on a de l'aide ^^
 elseif ( $2 == aide ) {
 .msg $nick 1Pour effacer vos messages tapez 4!efface 6chiffre 1 pour effacer le message . 3Exemple : !efface 1 14Permet d"effacer le premier message .
 }
 ;si on a taper un chiffre (je ferais la suite plus tard -_-
 elseif ( $2 isnum $readini(inbox.ini,MESSAGE,$nick) ) {
 ;on commence par identifier de qui il s'agit
 ;si c'est le bon pseudo
 if ( $readini(nick.ini,PSEUDO,$address($nick,3)) == $nick) {
  ;on lui indique ses messages
 .set %tempo.rem.mess $readini(inbox.ini,MESSAGE,$nick)
 .dec %tempo.rem.mess 1
 .writeini -n inbox.ini MESSAGE $nick %tempo.rem.mess
 .unset %tempo.rem.mess
 .remini inbox.ini $nick $$2
 }
 ;si ce n'est pas le bon pseudo
 elseif ( $readini(nick.ini,PSEUDO,$address($nick,3)) != $nick) {
  ;on crée une variable temporaire contenant le vrai nick
  .set %true.nick $readini(nick.ini,PSEUDO,$address($nick,3))
  ;---on va chercher si son pseudo est déja dans la liste ^^ ---
   ;si il n'y a aucun autre pseudo d'inscrit dans le nombre de pseudo du vrai nick on y met 0
    if ( !$readini(nick.ini,%true.nick,NBNICK)) { .writeini -n nick.ini %true.nick NBNICK 0 }
    ;puis
    if ($readini(nick.ini,%true.nick,NBNICK) {
     ;on recupere le nombre d'entrée
     .set %nb.pseudo $readini(nick.ini,%true.nick,NBNICK)
    }
   ;on va faire un while qui retournera toutes les entrées pour tester
   while (%nb.pseudo >= 1) {
    ;on va tester chaque entrée pour savoir si le pseudo existe
    if ( $readini(nick.ini,%true.nick,%nb.pseudo) == $nick) { .set %exist.nick %nb.pseudo | .break }
    ;on décremente jusqu'a tous les faire
    .dec %nb.pseudo 1
   }
   ;on peut supprimer la variable
   .unset %nb.pseudo
   ;on vérifie que %exist.nick existe (ce qui voudrait dire que le pseudo existe )
   ;si il n'existe pas on va créer une nouvelle entrée (tant qu'a faire)
   if (!%exist.nick) {
     ;on récupere le nombre d'entrée
     .set %nbnick $readini(nick.ini,%true.nick,NBNICK)
     ;on ajoute une entrée
     .inc %nbnick 1
     ;on met a jour le nombre d'entrée
     .writeini -n nick.ini %true.nick NBNICK %nbnick
     ;on ajoute le pseudo a la liste
     .writeini -n nick.ini %true.nick %nbnick $nick
     ;on vire la variable
     .unset %nbnick
   }
   ;on vire l'autre aussi
   .unset %exist.nick
   ;on lui demande de prendre son vrai pseudo pour voir ses messages
   .notice $nick 1Pour consulter vos messages identifiez vous avec votre pseudo6 %true.nick 1. Commande 5 /nick %true.nick
   ;on peut lui indiquer ses messages
   .set %tempo.rem.mess $readini(inbox.ini,MESSAGE,%true.nick)
   .dec %tempo.rem.mess 1
   .writeini -n inbox.ini MESSAGE %true.nick %tempo.rem.mess
   .unset %tempo.rem.mess
   .remini inbox.ini %true.nick $$2
   ;on peut supprimer la variable
   .unset %true.nick
  }
 }
 else { .msg $nick Aucun Message correspondant !  }
}

ON *:TEXT:*!voir*:?:{
 if ( $2 == $null ) {
 ;on commence par identifier de qui il s'agit
 ;si c'est le bon pseudo
 if ( $readini(nick.ini,PSEUDO,$address($nick,3)) == $nick) {
  ;on lui indique ses messages
  .notice $nick 1Vous avez4 $readini(inbox.ini,NEWMESSAGE,$nick) 1nouveaux messages (4 $readini(inbox.ini,MESSAGE,$nick) 1messages ) ! Tapez 4!efface 6aide 1 pour plus d'info
 }
 ;si ce n'est pas le bon pseudo
 elseif ( $readini(nick.ini,PSEUDO,$address($nick,3)) != $nick) {
  ;on crée une variable temporaire contenant le vrai nick
  .set %true.nick $readini(nick.ini,PSEUDO,$address($nick,3))
  ;---on va chercher si son pseudo est déja dans la liste ^^ ---
   ;si il n'y a aucun autre pseudo d'inscrit dans le nombre de pseudo du vrai nick on y met 0
    if ($readini(nick.ini,%true.nick,NBNICK) == $null ) { .writeini -n nick.ini %true.nick NBNICK 0 }
    .unset %valeurnulle
    ;puis
    if ($readini(nick.ini,%true.nick,NBNICK)) {
     ;on recupere le nombre d'entrée
     .set %nb.pseudo $readini(nick.ini,%true.nick,NBNICK)
    }
   ;on va faire un while qui retournera toutes les entrées pour tester
   while (%nb.pseudo >= 1) {
    ;on va tester chaque entrée pour savoir si le pseudo existe
    if ( $readini(nick.ini,%true.nick,%nb.pseudo) == $nick) { .set %exist.nick %nb.pseudo | .break }
    ;on décremente jusqu'a tous les faire
    .dec %nb.pseudo 1
   }
   ;on peut supprimer la variable
   .unset %nb.pseudo
   ;on vérifie que %exist.nick existe (ce qui voudrait dire que le pseudo existe )
   ;si il n'existe pas on va créer une nouvelle entrée (tant qu'a faire)
   if (!%exist.nick) {
     ;on récupere le nombre d'entrée
     .set %nbnick $readini(nick.ini,%true.nick,NBNICK)
     ;on ajoute une entrée
     .inc %nbnick 1
     ;on met a jour le nombre d'entrée
     .writeini -n nick.ini %true.nick NBNICK %nbnick
     ;on ajoute le pseudo a la liste
     .writeini -n nick.ini %true.nick %nbnick $nick
     ;on vire la variable
     .unset %nbnick
   }
   ;on vire l'autre aussi
   .unset %exist.nick
   ;on lui demande de prendre son vrai pseudo pour voir ses messages
   .notice $nick 1Pour consulter vos messages identifiez vous avec votre pseudo6 %true.nick 1. Commande 5 /nick %true.nick
   ;on peut lui indiquer ses messages
   .notice $nick 1Vous avez4 $readini(inbox.ini,NEWMESSAGE,%true.nick) 1nouveaux messages (4 $readini(inbox.ini,MESSAGE,%true.nick) 1messages ) ! Tapez 4!efface 6aide 1 pour plus d'info
   ;on peut supprimer la variable
   .unset %true.nick
  }
 }
 elseif ( $2 == aide ) {
 .msg $nick 1Pour voir vos messages tapez 4!voir 6chiffre 1 pour voir le message . 3Exemple : !voir 1 14Permet de voir le premier message .
 }
 elseif ( $2 isnum $readini(inbox.ini,MESSAGE,$nick) ) {
 ;on commence par identifier de qui il s'agit
 ;si c'est le bon pseudo
 if ( $readini(nick.ini,PSEUDO,$address($nick,3)) == $nick) {
  ;on lui indique ses messages
 .msg $nick $readini(inbox.ini,$nick,$2)
 .set %tempo.mess.lu $readini(inbox.ini,NEWMESSAGE,$nick)
 if ( $readini(inbox.ini,NEWMESSAGE,$nick) != 0 ) {
 .dec %tempo.mess.lu 1
 .writeini -n inbox.ini NEWMESSAGE $nick %tempo.mess.lu
 }
 .unset %tempo.mess.lu
 .msg $nick Message Lu ! Pour effacer le message tapez 4!efface 1Pour plus d'info .
 }
 ;si ce n'est pas le bon pseudo
 elseif ( $readini(nick.ini,PSEUDO,$address($nick,3)) != $nick) {
  ;on crée une variable temporaire contenant le vrai nick
  .set %true.nick $readini(nick.ini,PSEUDO,$address($nick,3))
  ;---on va chercher si son pseudo est déja dans la liste ^^ ---
   ;si il n'y a aucun autre pseudo d'inscrit dans le nombre de pseudo du vrai nick on y met 0
    if ( !$readini(nick.ini,%true.nick,NBNICK)) { .writeini -n nick.ini %true.nick NBNICK 0 }
    ;puis
    if ($readini(nick.ini,%true.nick,NBNICK) {
     ;on recupere le nombre d'entrée
     .set %nb.pseudo $readini(nick.ini,%true.nick,NBNICK)
    }
   ;on va faire un while qui retournera toutes les entrées pour tester
   while (%nb.pseudo >= 1) {
    ;on va tester chaque entrée pour savoir si le pseudo existe
    if ( $readini(nick.ini,%true.nick,%nb.pseudo) == $nick) { .set %exist.nick %nb.pseudo | .break }
    ;on décremente jusqu'a tous les faire
    .dec %nb.pseudo 1
   }
   ;on peut supprimer la variable
   .unset %nb.pseudo
   ;on vérifie que %exist.nick existe (ce qui voudrait dire que le pseudo existe )
   ;si il n'existe pas on va créer une nouvelle entrée (tant qu'a faire)
   if (!%exist.nick) {
     ;on récupere le nombre d'entrée
     .set %nbnick $readini(nick.ini,%true.nick,NBNICK)
     ;on ajoute une entrée
     .inc %nbnick 1
     ;on met a jour le nombre d'entrée
     .writeini -n nick.ini %true.nick NBNICK %nbnick
     ;on ajoute le pseudo a la liste
     .writeini -n nick.ini %true.nick %nbnick $nick
     ;on vire la variable
     .unset %nbnick
   }
   ;on vire l'autre aussi
   .unset %exist.nick
   ;on lui demande de prendre son vrai pseudo pour voir ses messages
   .notice $nick 1Pour consulter vos messages identifiez vous avec votre pseudo6 %true.nick 1. Commande 5 /nick %true.nick
   .msg $nick $readini(inbox.ini,%true.nick,$$2)
 .set %tempo.mess.lu $readini(inbox.ini,NEWMESSAGE,%true.nick)
 .dec %tempo.mess.lu 1
 .writeini -n inbox.ini NEWMESSAGE %true.nick %tempo.mess.lu
 .unset %tempo.mess.lu
 .msg $nick Message Lu ! Pour effacer le message tapez 4!efface 1Pour plus d'info .
   ;on peut supprimer la variable
   .unset %true.nick
  }
 }
 else { .msg $nick Aucun Message correspondant !  }
}

Conclusion :


Cette version , comme je le disais , contient des bugs .J'attends toutes suggestions pour l'améliorer . Merci

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.