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