; Filename: away-gestures.mrc
; Author: cLx - http://clx.freeshell.org/
; Software: mIRC (i'm sure it's working since the 5.8)
; Date: 30/04/2005
;
; Ce script permet d'améliorer la gestion des "away" sous mIRC, dont la commande /away
; et grise le nom des personnes qui sont justement away dans la nicklist, comme le
; font les clients IRC digne de ce nom, et Xchat notablement. :)
;
; Le script récupére les stats une fois après l'entrée dans chaque canal, puis fait une
; récupération toutes les 30 secondes seulement, un canal à la fois, pour éviter une
; saturation inutile du serveur si on est dans tout plein de canaux en même temps.
;
; Une utilisation silencieuse de la commande away est toujours possible en
; tapant "/raw away".
on 1:CONNECT: {
.timerquietsyncbg 0 30 checkawaystate.nicklist
}
on 1:JOIN:#: {
if (($nick == $me) && ($me ison $chan)) {
.enable #checkawaystate
.raw WHO $chan
}
}
alias checkawaystate.nicklist {
if ($channel(0) != 0) {
inc %checkawaystate.channelnbr
if (%checkawaystate.channelnbr > $channel(0) ) { set %checkawaystate.channelnbr 1 }
.enable #checkawaystate
.raw WHO : $+ $channel(%checkawaystate.channelnbr)
}
}
#checkawaystate off
raw 352:*: {
if ( $left($7,1) = G) { cline 15 $2 $6 }
else { cline $colour(listbox text) $2 $6 }
haltdef
}
raw 315:*: {
.disable #checkawaystate
halt
}
#checkawaystate end
raw 305:*: {
var %i 1
:begin
if ($chan(%i) == $null) { goto end }
cline $colour(listbox text) $chan(%i) $me
inc %i
goto begin
:end
}
raw 306:*: {
var %i 1
:begin
if ($chan(%i) == $null) { goto end }
cline 15 $chan(%i) $me
inc %i
goto begin
:end
}
alias away {
if ($1 != $null) {
.raw away : $+ $1-
set %awaytime $ctime
if ($chan(0) != 0) {
ame is away: $1-
}
}
else {
.raw away
if (($chan(0) != 0) && ($away != $false)) {
ame is back (gone $duration($calc($ctime - %awaytime)) $+ )
}
}
}
; EOF