Memoire pour bot anim

4/5 (10 avis)

Snippet vu 6 375 fois - Téléchargée 27 fois

Contenu du snippet

Ce code crée un fichier memory.ini qui répertorie les allées et venues des user. Ainsi, le bot est capable de savoir lorsque c'est la premiere fois qu'un user arrive sur tel salon ou s'il est venu plusieurs fois dans la journée. Il peut ainsi dire "bonjour" ou "re". ce fichier memory.ini est effacé tous les jours.
de plus le bot ne flood pas en disant bonjour a tout le monde s'il y a une attaque de clone (je n'ai pas eu l'occasion de tester cette protection) et si le bot a beaucoup de chan en commun avec quelqun qui vient de se connecter, il prend en compte l'autojoin et ne lui dira pas bonjour sur tous les chan.
autre option, si l'user ne parle pas durant la premiere minute où il arrive, le bot tente de lancer la conversation
enfin lorsqu'un user part, une notice lui est envoyé. une notice différente est envoyée en cas de join/part
Le bonjour automatique, la relance et la notice de part peuvent etre désactivées dans le menubar

Source / Exemple :


On 1:start:{
  if (%dernier == $null) {
    /set %bonjour active
    /set %relance active
    /set %noticepart active
  }
  /timer $+ reset 00:00 1 1 /remove memory
  /echo Dernière utilisation le %dernier à cet heure : %temps 
  if (%dernier != $date) {
    /remove memory
  }
  /set %dernier $date
  /set %temps $time
}

On 1:join:#:{
  if ($nick != $me) {
    if (%bonjour == active) {
      inc %arrivant
      /timer $+ $chan $+ . $+ %arrivant 1 10 dec %arrivant
      /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ notice off
      if !$timer($+ $gettok($nick,1,124) $+ . $+ autojoin) {
        if (%arrivant < 5) {
          if ($readini(memory,$gettok($nick,1,124),$chan) != kické) {
            if ($readini(memory,$gettok($nick,1,124),$chan) == parti) {
              /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ re 1 03 msg $chan  12 $+ $read(re.txt) $+  
              /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ anti-double-joinpart 1 30 /echo anti-double-joinpart désactivé pour $nick 
            }
            elseif ($readini(memory,$gettok($nick,1,124),etat) == déconnecté) { 
              /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ re 1 03 msg $chan 12 $+ $read(re.txt) $+  
            }
            else {
              if ($comchan($nick,0) == 1) {  
                /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ bonjour 1 03 msg $chan 12 $+ $read(bonjour.txt) $+ 
                if (%relance == active) {
                  /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ join 1 90 msg $chan 12 $+ $read(suite.txt) $+ 
                }
                /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ anti-joinpart 1 40 /echo anti join-part désactivé pour $nick
              }
              else {
                /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ re 1 03 msg $chan 12 $+ re $nick $+ 
              }
            }
          }
        }
      }
    }
    /writeini -n memory $gettok($nick,1,124) $chan présent
    /timer $+ $gettok($nick,1,124) $+ . $+ autojoin 1 30 /echo Temps de protection autojoin terminé pour $nick
  }
}
On *:text:*:#:{
  /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ join off
}
On *:PART:#:{
  if (($nick != $me ) && (%noticepart == active)) {
    if $timer($+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ anti-joinpart) { 
      /timer $+ $chan $+. $+ $gettok($nick,1,124) $+ . $+ notice 1 05 /notice $nick 12Honte aux join-part !! Pourquoi tu es venu pour repartir tout de suite après ? 
    }      
    /writeini -n memory $gettok($nick,1,124) $chan parti
  }
  elseif $timer($+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ anti-double-joinpart) {
    /timer $+ $chan $+. $+ $gettok($nick,1,124) $+ . $+ notice 1 05 /notice $nick 12Tu viens, tu pars, tu reviens, tu repars... Mais reste donc un peu ! allez reviens et reste cette fois  
    /writeini -n memory $gettok($nick,1,124) $chan parti
  }
  else {
    if !$timer($+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ kick-reviens) { 
      /writeini -n memory $gettok($nick,1,124) $chan parti
      /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ notice 1 05 /notice $nick 12 Tu es sur que tu veux pas rester un peu plus longtemps sur $chan ? 
    }
  }
  /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ join off 
  /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ bonjour off
  /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ re off 
}
On *:KICK:#:{ 
  /timer $+ $chan $+ . $+ $gettok($knick,1,124) $+ . $+ join off 
  /timer $+ $chan $+ . $+ $gettok($knick,1,124) $+ . $+ bonjour off 
  /timer $+ $chan $+ . $+ $gettok($knick,1,124) $+ . $+ re off
  /writeini -n memory $gettok($nick,1,124) $chan kické
}
On *:QUIT:{
  /writeini -n memory $gettok($nick,1,124) etat déconnecté
  /timer $+ $chan $+ $gettok($nick,1,124) $+ . $+ join off 
  /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ bonjour off 
  /timer $+ $chan $+ . $+ $gettok($nick,1,124) $+ . $+ re off 
}
menu menubar {
  Bonjour auto
  .Bonjour
  ..$iif(%bonjour == desactive, Activer):{
    /set %bonjour active
    /echo L'option bonjour est activée
  }
  ..$iif(%bonjour == active, Desactiver):{
    /set %bonjour desactive
    /set %relance desactive
    /echo L'option bonjour est désactivée, ainsi que l'option relance qui va ensemble
  }
  .Relance si l'arrivant ne parle pas
  ..$iif(%relance == desactive, Activer):{
    if (%bonjour == active) {
      /set %relance active
      /echo L'option relance est activée, c'est à dire que le bot envoie un message si les nouveau arrivant ne se décident pas à parler
    }
    else {
      /echo L'option relance ne peut pas être activée si l'option bonjour ne l'est pas
    }
  }
  ..$iif(%relance == active, Desactiver):{
    /set %relance desactive
    /echo L'option relance est désactivée
  }
  .Notice de part
  ..$iif(%noticepart == desactive, Activer):{
    /set %noticepart active
    /echo Le bot envoie désormais des notice lorsque les user quittent le salon 
  }
  ..$iif(%noticepart == active, Desactiver):{
    /set %noticepart desactive
    /echo Le bot n'enverra plus de notice lorsqu'un user quitte le salon
  }
}

Conclusion :


j'ai fait quelques modifications juste avant de poster la sources, et il est possible qu'elles fassent capoter tout le reste (on sait jamais, certains cotés de l'irc restent obscurs pour moi), dans ce cas je ferai des mises a jour.
je pense avoir envisagé tous les cas de figures, que le bot dit bonjour ou re comme un etre humain meme si on a plusieur salon en commun avec lui. mais il est possible que son comportement soit quelquefois incohérent : dans ce cas j'aimerai bien qu'on me le signale, pour ceux qui le testetont peut etre

Il faut également créer trois fichier txt :
bonjour.txt :
souhaitons la bienvenue à $nick !
bonjour $nick
salut $nick comment sa va ??
yo $nick sa va bien ?
kikoo $nick !
hello $nick
slt $nick
Salutations, ô grand $nick !

re.txt :
Merci d'être revenu $nick
Merci d'être revenu $nick
C'est cool que tu soit revenu $nick
$nick est de nouveau parmi nous !
re $nick 
re $nick 
re $nick 
re $nick 
tiens revoila $nick

suite.txt :
hého $nick c'est pas interdit de causer ici
on t'a coupé la langue $nick ?
tes pas du genre bavard toi $nick
t'as le droit de discuter $nick
ben dis quelquechose $nick , par exemple "bonjour"
move your body $nick et parle donc un peu
la causerie c pas ton truc à ce que je vois $nick
tu racontes quoi de beau $nick alors

A voir également

Ajouter un commentaire Commentaires
jeanbart1
Messages postés
8
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
15 septembre 2007
1
22 sept. 2007 à 10:04
Bonjour ..

Idem pour moi BERNI cela fonctionne pendant environ deux jours et puis plus rien ?????

Si quelqu'un trouve la solution merci de poster ici..........

A bientôt et merci a tous pour vos sources..... :-D
cs_berni13
Messages postés
2
Date d'inscription
samedi 10 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2007

27 juin 2007 à 23:14
ça marche bien environ deux jours , puis plus rien , j'ai cherché un peu partout pourquoi sans trouver . Si quelqu'un a une idée merci !
bilou89
Messages postés
1
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
19 octobre 2006

19 oct. 2006 à 22:41
Super je viens de le mettre en marche, j'ai pas encore vu tous ce qu'il fait mais pour le moment génial.
J'ai juste changé quelque chose dans ton code car j'ai mis les 3 fichier .txt dans un dossier donc j'ai rajouté le nom du dossier pour qu'il retrouve leur chemin (memorytxt/bonjour.txt)etc...
S'il y a quoi que se soit somme problème je te le fais savoir.
Merci!
ZeDaHu
Messages postés
19
Date d'inscription
vendredi 1 avril 2005
Statut
Membre
Dernière intervention
6 janvier 2006

18 juin 2006 à 10:44
bien sur que si ça fonctionne
as tu bien mis le code dans une nouvelle page de ton mirc, et n'a tu pas oublié de créer les trois fichier texte et de les mettres dans le dossier où se situe ton mirc ?
mec_tendre91
Messages postés
22
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
6 mars 2007

17 juin 2006 à 00:50
Ca fonctionne pas !!!
Qui a dit 9/10
oO
bref sans commentaire
Afficher les 10 commentaires

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.

Du même auteur (ZeDaHu)