Top10 - stats

Contenu du snippet

un !top10 pour irc - facile et tout ca dans les remotes

Source / Exemple :


#KnoxTop
on *:load: {
  mkdir knoxtop
  mkdir knoxtop\mots
  mkdir knoxtop\lettres
  mkdir knoxtop\sourires
  mkdir knoxtop\rang
}
on *:text:*:#: {
  writeini -n $+(knoxtop\rang\,$chan,.ini) $nick rang $calc($readini($+(knoxtop\rang\,$chan,.ini),$nick,rang) + $numtok($1-,32))
  writeini -n $+(knoxtop\mots\,$chan,.ini) $nick mots $calc($readini($+(knoxtop\mots\,$chan,.ini),$nick,mots) + $numtok($1-,32))
  writeini -n $+(knoxtop\lettres\,$chan,.ini) $nick lettres $calc($readini($+(knoxtop\lettres\,$chan,.ini),$nick,lettres) + $len($remove($1-,$chr(32)))) 
  writeini -n $+(knoxtop\sourires\,$chan,.ini) $nick sourires $calc($readini($+(knoxtop\sourires\,$chan,.ini),$nick,sourires) + $regex($1-,/(\:|;)(-)?(P|X|D|\/|\\|\[|\])/ig) + $count($1-,: $+ $chr(40),:- $+ $chr(40),: $+ $chr(41),:- $+ $chr(41),; $+ $chr(40),;- $+ $chr(40),; $+ $chr(41),;- $+ $chr(41)))
  if ($1- = !top10 || ($1 = !top10 && $2- = mots)) {
    msg $chan $knoxtop($chan,mots)
  }
  elseif ($1 = !top10 && $2- = sourires) {
    msg $chan $knoxtop($chan,sourires)
  }
  elseif ($1 = !top10 && $2- = lettres) {
    msg $chan $knoxtop($chan,lettres)
  }
  elseif ($1- = !stat) {
    msg $chan $statlist($chan,$nick)
  }
  elseif ($1 = !stat && $numtok($2-,32) = 1) {
    msg $chan $statlist($chan,$2-)
  }
  elseif ($1- = !rang) {
    msg $chan $ranglist($chan,$nick)
  }
  elseif ($1 = !rang && $numtok($2-,32) = 1) {
    msg $chan $ranglist($chan,$2-)
  }
  elseif ($1 = !aide) {
    notice $nick commandes de knox top; !top10 °mots°lettres°sourires°, !stat °nick°, !rang °nick°
  }
}
on *:join:#: {
  .timer $+ $+($chan,$nick) 0 1 inc % [ $+ [ $chan ] [ $+ . $+ [ $nick ] ] ]
}
on *:part:#: {
  .timer $+ $+($chan,$nick) off
}
on *:quit: {
  var %x = 1
  while ($comchan($nick,%x)) {
    .timer $+ $+($ifmatch,$nick) off
    inc %x
  }
}
on *:kick:#: {
  .timer $+ $+($chan,$nick) off
}
alias knoxtop {
  var %.h = $iif($2 = mots,mots,$iif($2 = lettres,lettres,$iif($2 = sourires,sourires))), %.a = $+(knoxtop\,%.h,\,$1,.ini), %.b = 1, %.c = $readini(%.a,$ini(%.a,%.b),$2), %.d = 1, %.e = $ini(%.a,%.b), %.f = 1
  :loop
  while (%.b <= $ini(%.a,0)) {
    if ($readini(%.a,$ini(%.a,$calc(%.b + 1)),$2) > %.c) {
      var %.c = $ifmatch, %.e = $ini(%.a,$calc(%.b + 1))
    }
    inc %.b
  }
  var %.g = $addtok(%.g,$+($ord(%.f),.,$chr(32),%.e,$chr(40),%.c,$chr(41)),32) 
  writeini -n $+(temp,%.h,.ini) %.e %.h %.c
  remini %.a %.e
  if ($ini(%.a,0) > 0 && %.f < 10) {
    var %.b = 1, %.c = $readini(%.a,$ini(%.a,%.b),$2), %.e = $ini(%.a,%.b)
    inc %.f    
    goto loop
  }
  while (%.d <= $ini($+(temp,%.h,.ini),0)) {
    writeini -n %.a $ini($+(temp,%.h,.ini),%.d) %.h $readini($+(temp,%.h,.ini),$ini($+(temp,%.h,.ini),%.d),%.h)
    inc %.d
  }
  .remove $+(temp,%.h,.ini)
  return $+(Top10,$chr(40),$upper($left($2,1)),$lower($right($2,-1)),$chr(41),:) %.g
}
alias ranglist {
  .remove knoxnicks.txt
  var %.a = $+(knoxtop\rang\,$1,.ini), %.b = 1, %.c = $readini(%.a,$ini(%.a,%.b),rang), %.d = 1, %.e = $ini(%.a,%.b), %.f = 1
  :loop
  while (%.b <= $ini(%.a,0)) {
    if ($readini(%.a,$ini(%.a,$calc(%.b + 1)),rang) > %.c) {
      var %.c = $readini(%.a,$ini(%.a,$calc(%.b + 1)),rang), %.e = $ini(%.a,$calc(%.b + 1))
    }
    inc %.b
  }
  write knoxnicks.txt %.e
  writeini -n temp.ini %.e rang %.c
  remini %.a %.e
  if ($ini(%.a,0) > 0) {
    var %.b = 1, %.c = $readini(%.a,$ini(%.a,%.b),rang), %.e = $ini(%.a,%.b)
    inc %.f    
    goto loop
  }
  while (%.d <= $ini(temp.ini,0)) {
    writeini -n %.a $ini(temp.ini,%.d) rang $readini(temp.ini,$ini(temp.ini,%.d),rang)
    inc %.d
  }
  .remove temp.ini
  var %x = 1
  while (%x <= $lines(sortnicks.txt)) {
    if ($2 = $read(sortnicks.txt,%x)) {
      return $2 votre rang est $chr(35) $+ $readn de $ini(%.a,0) personnes ! bravo Lâche pas :P
    }
    inc %x
  }
  return Knoxtop, n'as aucune information au sujet de $2 sur $1
}
alias statlist {
  if ($readini($+(knoxtop\mots\,$1,.ini),$2,mots)) {
    return $2 $+ : $readini($+(knoxtop\mots\,$1,.ini),$2,mots) mots, $readini($+(knoxtop\lettres\,$1,.ini),$2,lettres) lettres, $readini($+(knoxtop\sourires\,$1,.ini),$2,sourires) sourires, temps passé: $rerang($duration(% [ $+ [ $1 ] [ $+ . $+ [ $2 ] ] ]),sec,$chr(32) $+ seconde,min,$chr(32) $+ minute,hr,$chr(32) $+ heures,jour,$chr(32) $+ jour,wk,$chr(32) $+ semaines) $iif(!% [ $+ [ $1 ] [ $+ . $+ [ $2 ] ] ],0 secondes)
  }
  else {
    return Knoxtop, n'as aucune information au sujet de $2 sur $1
  }
}
#KnoxTop END

Conclusion :


!top10 mots
!top10 lettres
!top10 sourires
!stat nick
!rang nick
!aide

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.