begin process at 2010 02 09 15:10:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Bots

 > RECORD AFFLUENCE MULTI-SALON

RECORD AFFLUENCE MULTI-SALON


 Information sur la source

Note :
Aucune note
Catégorie :Bots Classé sous :Compteur, user, record, affluence, salon Niveau :Débutant Date de création :06/05/2009 Date de mise à jour :29/05/2009 21:55:46 Vu :939

Auteur : extarsik

Ecrire un message privé
Site perso
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

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

  • 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. }
  • }
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.


 Historique

07 mai 2009 10:16:34 :
Ajout de 2 commandes
07 mai 2009 10:23:42 :
Ajout des new commandes dans la desc
09 mai 2009 07:55:36 :
Modif $1/$strip($1)
29 mai 2009 21:55:46 :
Voila, modif ce qui a été mis dans les commentaires.

 Sources du même auteur

LAG EN ECHO, SANS BAR

 Sources de la même categorie

ANIMATION POUR BOT par michounou
Source avec Zip Source avec une capture LOGCHAN BY DIIMS :: POUR BOT :: TOTALEMENT CONFIGURABLE par sodims
SALON TRADUCTION par CsDarkman
BOT DE SUPPORT (HELPSERV) par Maxou1012
BOT DE LIASON DE CHANS par Maxou1012

 Sources en rapport avec celle ci

LAG EN ECHO, SANS BAR par extarsik
REMOTES DE MON BOT [AUTH/OP/KICK/WELCOME/TEXTE] par indaweed
Source avec Zip BIOTECH [V1.0] par kassak1
SALON TRADUCTION par CsDarkman
Source avec Zip Source avec une capture WHOIS CHAN SÉQUENTIEL par watchmeimfamous

Commentaires et avis

Commentaire de WorldDMT le 07/05/2009 11:25:16

salut

j'ai vu vite ton code ce qui m'a attiré c'est

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

c'est un double emploi ça

utilise

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

je reviendrai pour voir le reste

@+

Commentaire de WorldDMT le 07/05/2009 18:34:13

re

pour ton ON JOIN

utilise une variable globale pour $nick(#,0) pour ne pas effectué des calcules a chaque commande

tu n'a pas d'event ON PART ce qui n'est pas normal tu peux te trouvé avec 3 personne sur le chan et la %user.courant $+ # est de 20

il sont sortis sans qu'une personne n'entre, ça arrive

alors utilise /inc et /dec dans ce cas

et enleve le "!" sur le level et utilise if $nick == $me set %var

pour la notice du nick entrant il faut qu'elle soit apres la condition

si le reccord n'est pas batu le code envoi la notice si non il msg le chan que le reccord a été batu

pour la condition %user.record $+ # == $null ici tu peut utilisé "!" donc !%user.record $+ #

voilà ton code selon mon propre avis (qui explique mon commentaire en haut) tu peux prendre des idées si tu veux

on *:join:#:{
  var %nicks $nick(#,0)
  if (%recordoff $+ # != off) {
    if ($nick == $me) {
      if (!%user.record $+ #) set %user.record $+ # %nicks
      set %user.courant $+ # %nicks
      timer 1 2 msg # Record créé, il est actuellement de %user.record $+ # personnes.
    }
    else inc %user.courant $+ #
    if (%user.courant $+ # > %user.record $+ #) {
      set %user.record $+ # $v1
      msg # 8,4/!\9,1 RECORD BATTU 8,4/!\1,0 : Le canal # vient de passer à %user.record $+ # user.........
    }
    else notice $nick Bienvenue $nick ! Avec ton entrée, nous sommes %user.courant $+ #.......
    ....
  }
  else notice $nick Bienvenue $nick ! Avec ton entrée, nous sommes %nicks personnes .......
}
on *:part:#:dec %user.courant $+ #



comme j'avais dis dans mon premier commantaire
pour le double emploi
place la condition qui verifie si le record foctionne ou pas pour ne pas faire 2 calcules pour rien
donc selon moi

on *:text:*:#:{
  if (%recordoff $+ # != off) {
    if (!record == $strip($1)) {
      if (!$2) {
        if (%user.record $+ #) msg # Le record de ce salon ( $+ # $+ ) est de $v1 personnes !
        else msg # Je n'ai trouvé aucun record pour # $+ , .......
      }
      elseif (%user.record $+ $2) msg # Le record du salon $2 est de $v1 personnes !
      else msg # Je n'ai trouvé aucun record pour $2 $+ , ......
    }
    else notice $nick Les records sont désactivés sur7 #
  }
}

comme les autres event ON TEXT ont if isop on les regroupe avec "@" dans le level
et pour le reboot au lieu d'un unset fait plutot set %user.record $+ # $nick(#,0)
et utilisé !recoreboot, !recoreboot #chan, et !recoreboot all et si le $2 est all
tu unset le tout et grace a une loop tu réinitialise tout les chans dont t'es present avec un set %var $nick(#,0)
et puisque tu n'utilise, pour la variable %reccordoff, que le "off" et tu l'unset
utilise plutot 1 dans ce cas au lieu de mettre if (%reccordoff $+ # == off) tu met simplement if (%reccordoff $+ #) retourne positif ou (!%reccordoff $+ #) retourne negatif

selon moi pour le reboot je fais

if (!recoreboot == $strip($1)) {
  if (!$2) {
    set %user.record $+ # $nick(#,0)
    msg # Les records de7 $2 3ont été réinitialisés.
  }
  elseif ($2 == all) {
    unset %user.*
    var %x $chan(0)
    while %x {
      var %c $chan(%x),%n $nick($chan(%x),0)
      set %user.record $+ %c %n
      set %user.courant $+ %c %n
      dec %x
    }
    msg # Tous les records ont été réinitialisés.
  }
  elseif (%user.record $+ $2) {
    set %user.record $+ $2 $nick(#,0)
    msg # Les records de7 $2 3ont été réinitialisés.
  }
}


pour le reste

if (!recoroff == $strip($1)) {
  set %recordoff $+ # 1
  msg # Le compteur d'utilisateur est maintenant OFF sur # (ainsi que le record)
}

dans ce cas au debut au lieu de

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

tu met

if (%recordoff $+ #) {

voilà essaye de voir si ces idée pourron t'aider

@+

Commentaire de extarsik le 08/05/2009 11:50:34

Quand je dis que je débute ^^, merci pour le :

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

Je cherchais a faire en sorte qu'il prenait les couleurs, car sur applet il y a les couleurs mais aussi un espace avant, mais merci :), je vais revoir tous mes codes x)

Commentaire de uaip le 08/05/2009 20:30:10

Salut,
J'ai regardé en speed le code, sans détail, je trouve ça pas mal pour une première source, et ce que je trouve bien, c'est l'orthographe :)

WorldDMT je ne suis pas d'accord avec toi. D'après mes brefs coups d'oeil, je me suis dit que %user.courant $+ # pouvait être égal à zéro, donc dans son cas il est obligé d'utiliser == $null, et pas !
!%var returne $true (même) si %var = 0, or lui, il cherche à savoir si la variable existe ou non.

Commentaire de WorldDMT le 09/05/2009 10:18:22

@Uaip "je me suis dit que %user.courant $+ # pouvait être égal à zéro"

non mon ami tu te trompe :)
dans ce cas on peut utiliser "!" parceque le %user.courant $+ # est = a $nick(#,0) donc tant qu'il est present il y aura tjr 1

Commentaire de uaip le 09/05/2009 10:40:45

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.

Commentaire de uaip le 09/05/2009 10:42:11

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 !)

Commentaire de WorldDMT le 09/05/2009 11:36:26

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..

Commentaire de WorldDMT le 09/05/2009 11:54:28

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)) {

Commentaire de extarsik le 29/05/2009 21:59:54

Voila, j'ai mis 20 jours, mais au moins c'est fait, la modif est faite.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Explication de la plupart des failles des channel service version 5,5.1 [ par taye ] WarninG - WG (wanadoo/voila chat | Undernet)---------- ----Liste de quelques bugs assez vieux des Channel Service (CS5, CS5.1):Déconnecter le servic compteur de ligne ou mot pour autovoice [ par speeder ] Soriez-vous comment faire un auto voice sous mirc a partir du moment ou un user a entré un certain nombre de lignes, mots, ou phrase svp ??Par exemple /ctcp ??="marche pô :/" [ par CoolWave ] /ctcp pseudo /msg #chan coucou $$?="Heu"An fait, je voudrais pourvoir ouvrir une boite de requete de texte chez un user par /ctcp.En fait toutes les c aider moi !!!! :( [ par jujuquatre ] salut a tous je cree un bot mirc et j'ai un probleme pour les systeme d'accessquand je m'identifie je fait " login &lt;mon user&gt; &lt;mon mot de pas Problème droit user [ par dridri ] Bonsoir,Voila j'ai installé unreal ircd + epona sur un serveur internet. J'ai tout compilé et tout configuré et ca marche ( oufe ... ) Par contre j'ai Ouverture d'un Chan IrC [ par Nancy ] Allo!Je veux juste vous dire qu'un nouveau chan ouvrira bientôt ses portes! Je vous incite à venir faire un tour! J'espère que le salon prendra de plu joindre tous les salon dun whois [ par HatMan ] svpjaimeradre par une seul actiontous les salon dun whois dune personnemerci de maider urgeament Salon PROG Voila/wanadoo [ par HatMan ] un salon de programatoin vien douvrire ces porte sur le serveur voila/wanadoo ( chat9.x-echo.com:6667 )il sapelle #adDictmerci de venir et de faire pa Nombre d'user sur le chan [ par jimmyv ] Bonjour à tousJ'aimerai ssavoir s'il y à une variable qui retourne directement le nombre d'user connecté au chan ?? et si oui, laquelle sinon, comment Messages user [ par jimmyv ] Bonjour tt le mondeVoila j'aimerai enregistrer tt les messages d'un user particulier sur mon chan, la procédure d'enregistrement fonctionne bien, le s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales