Record affluence multi-salon

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 030 fois - Téléchargée 13 fois

Contenu du snippet

Bon, je poste maintenant a 1ere source :

Un Compteur d'affluence de salon, avec record ; avec des commandes pour voir le record actuel et pour réinitialiser les records.

Commandes :

!record : donne le record du salon actuel
!record <salon> : donne le record du salon donné
!recoreboot : réinitialise tous les records (op seulement)
!recoreboot <salon> : réinitialise le record du salon donné. (op seulement)
!recoroff : Désactive le record sur le chan ou vous etes (op seulement)
!recoron : Active le record sur le salon ou vous etes (op uniquement)

Voila

PS : Je n'ai pas mis de couleurs, a vous de les mettres si vous en avez envie
PS² : A la base, cette source est pour un bot, mais rien ne vous empeche de l'intégrer a votre script.

Edit : Mise a jour 07/05

Sourve venant de FreeBoT (de moi) visible sur irc.tchat-cool.fr #freebot

Source / Exemple :


on 1!:JOIN:#:{ 
  if (%recordoff [ $+ [ $chan ] ] != off) { 
    if ( %user.record [ $+ [ $chan ] ] == $null ) { 
      set %user.record [ $+ [ $chan ] ] $nick($chan, 0)
      timer 1 2 msg # Record créé, il est actuellement de %user.record [ $+ [ $chan ] ] personnes.
    }
    set %user.courant [ $+ [ $chan ] ] $nick($chan, 0)
    notice $nick Bienvenue $nick ! Avec ton entrée, nous sommes %user.courant [ $+ [ $chan ] ] personnes sur # $+ , le record du salon est de %user.record [ $+ [ $chan ] ] personnes, plus que $calc( %user.record [ $+ [ $chan ] ] - %user.courant [ $+ [ $chan ] ] ) personnes pour battre ce record ! 
    if ( %user.courant [ $+ [ $chan ] ] > %user.record [ $+ [ $chan ] ] ) {
      set %user.record [ $+ [ $chan ] ] %user.courant [ $+ [ $chan ] ]
      msg # 8,4/!\9,1 RECORD BATTU 8,4/!\1,0 : Le canal $chan vient de passer à %user.record [ $+ [ $chan ] ] user ! Ce qui en fait un nouveau record !! Merci $nick !
    }
  }
  else { notice $nick Bienvenue $nick ! Avec ton entrée, nous sommes $nick(#,0) personnes sur # $+ , le record du compte d'user est désactivé, si tu est OP (4@) et que tu souhiate l'activer, tape 4!recoron  }
}

on *:text:*:#:{
  if (!record == $strip($1-)) {
    if (%recordoff [ $+ [ $chan ] ] != off) { 
      if (!$2) {
        if ( %user.record [ $+ [ $chan ] ] != $null ) { msg # Le record de ce salon ( $+ $chan $+ ) est de %user.record [ $+ [ $chan ] ] personnes ! }
        else { msg # Je n'ai trouvé aucun record pour $chan $+ , peut-être qu'il a été réinitialisé, tape4 /hop pour en créer un. }
      }
      if ($2) {
        if ( %user.record [ $+ [ $2 ] ] != $null ) { msg # Le record du salon $2 est de %user.record [ $+ [ $2 ] ] personnes ! }
        else { msg # Je n'ai trouvé aucun record pour $2 $+ , peut-être que je ne suis pas sur ce salon, ou alors que le record a été réinitialisé ! }
      }
    }
    else { notice $nick Les records sont désactivés sur7 # }
  }
  if ($nick isop $chan) && (!recoreboot == $strip($1-)) { 
    if (%recordoff [ $+ [ $chan ] ] != off) {
      if (!$2) {
        unset %user.courant* %user.record* 
        msg # Tous les records ont été réinitialisés.
      }
      if ($2) {
        unset %user.record [ $+ [ $2 ] ] %user.courant [ $+ [ $2 ] ] 
        msg # Les records de7 $2 3ont été réinitialisés.
      }
    }
    else { notice $nick Les records sont désactivés sur # $+ , donc pas besoin de reboot :)  }
  }
  else { notice $nick Il faut etre OP (4@3) sur le salon pour utiliser cette commande. }
  if ($nick isop $chan) && (!recoroff == $strip($1-)) {
    if (%recordoff [ $+ [ $chan ] ] != off) {
      set %recordoff [ $+ [ $chan ] ] off
      msg # Le compteur d'utilisateur est maintenant OFF sur # (ainsi que le record)
    }
    else { notice $nick  Les compteurs sont déjà OFF sur # }
  }
  else { notice $nick Il faut etre OP (4@) sur le salon pour utiliser cette commande. }
  if ($nick isop $chan) && (!recoron == $strip($1-)) {
    if (%recordoff [ $+ [ $chan ] ] == off) {
      unset %recordoff [ $+ [ $chan ] ]
      msg # Le compteur d'utilisateur est à nouveau ON sur # (ainsi que le record) 
    }
    else { notice $nick Le compteur et le record sont déjà actifs sur # }
  }
  else { notice $nick Il faut etre OP (4@) sur le salon pour utiliser cette commande. }
}

Conclusion :


Je conçois que ce code est loin d'etre parfait, qu'il peut être amélioré, mais tant qu'il marche, je m'en fout :). Et je tiens a dire que je ne suis ni un pro dans la catégorie, ni du genre a me prendre la tete pour ça. Si j'ai mis cette source, c'est pour rendre service a certains et non pour faire un concours avec d'autres.

A voir également

Ajouter un commentaire

Commentaires

extarsik
Messages postés
5
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
29 mai 2009
-
Voila, j'ai mis 20 jours, mais au moins c'est fait, la modif est faite.
WorldDMT
Messages postés
882
Date d'inscription
jeudi 6 juillet 2006
Statut
Membre
Dernière intervention
6 janvier 2012
1 -
et a propos de la mise a jour

je vois tjr

on *:text:*!record*:#:{
if (!record isin $strip($1)) {

c'est plutot

on *:text:*:#:{
if (!record == $strip($1)) {
WorldDMT
Messages postés
882
Date d'inscription
jeudi 6 juillet 2006
Statut
Membre
Dernière intervention
6 janvier 2012
1 -
moi j'avais rien testé j'avais bien dis voilà une idée donc a lui de voir la suite

d'apres ce que tu m'a dis j'ai testé et le probleme n'est pas sur le "!" mais sur la variable meme

donc %user.record $+ # returne tjr le "#" donc dans les condition il va falloir faire ceci

if ($($+(%,recordoff,#),2) != off) {


if (!$($+(%,user.record,#),2)) set %user.record $+ # %nicks

ect..
uaip
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011
-
Ok, je n'ai rien dit pour la variable, j'ai confondu courant et record :)
(mais bon, je reste sur le même avis que == $null dans ce cas n'est pas plus mal que !)
uaip
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011
-
Salut,Non WorldDMT, imagine que tu sois seul dans le chan, la variable sera à 1. Mais avec ton évévenemnt part (qui s'applique à tout le monde), quand tu partiras, elle sera à zéro. Ca c'est un exemple, même minime, il y en a sans doute d'autres. Donc autant mettre $null, surtout que ! n'est pas forcément plus optimisé que $null (c'est pas parce-qu'on économise 7 caractères, que le code sera mieux).
Il y a aussi d'autres erreurs dans ta correction :

else notice $nick Bienvenue $nick ! Avec ton entrée, nous sommes %user.courant $+ #.......
-> le # ne sera pas évalué (à moins que les "..." doivent être remplacés par du texte ^^)

if (!%user.record $+ #)
-> d'après mes tests, retournera toujours $false, car le ! semble être pris en compte avant le $+
j'ai testé avec ceci : //set %a $+ $me 1 | echo -a $iif(!%a $+ $me,non,oui)
ca retourne 'non' à l'inverse de ceci : //set %a $+ $me 1 | echo -a $iif(!$+(%a,$me),non,oui)
Et puis même, tu cherches à optimiser le plus possible, en utilisant par exemple var %nicks $nick(#,0) ce qui est une très bonne ideé, mais alors autant faire pareil avec les autres variables... (%user.record $+ #, %user.courant $+ #, etc)

Yep yep.

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 (extarsik)