11/11/2011, 21:35
Bonjour djkenny,
Merci encore de ta patience et de ton aide :)
Non j'ai copier coller ton dernier code changer la ligne :
variable salons "#salon1 #salon2 #salon3"
en
variable salons "#teste #uno"
Puis rehash et restart en ctcp eggdrop chat
Et il possible que sa viens qu'il n'est que sur 2 salons pour mes teste ?
J'avoue que je n'est pas testé vue que je viens juste d'y pensé :)
Je mais quand même le code au cas ou mais bon je pense pas que sa va changer grand chose :)
Cordialement Stéphane
Merci encore de ta patience et de ton aide :)
Non j'ai copier coller ton dernier code changer la ligne :
variable salons "#salon1 #salon2 #salon3"
en
variable salons "#teste #uno"
Puis rehash et restart en ctcp eggdrop chat
Et il possible que sa viens qu'il n'est que sur 2 salons pour mes teste ?
J'avoue que je n'est pas testé vue que je viens juste d'y pensé :)
Je mais quand même le code au cas ou mais bon je pense pas que sa va changer grand chose :)
Code :
namespace eval ::av {
variable salons "#teste #uno"
variable time 2
variable lignes 5
bind time - "* * * * *" av::Vvoice
proc Vvoice {1 2 3 4 5} {
variable idle
variable salons
variable time
foreach salon [string tolower $salons] {
if ![validchan $salon] continue
foreach nick [chanlist $salon] {
if {[isbotnick $nick] || [isop $nick $salon]} continue
if {[info exists idle($salon)] && [dict exists $idle($salon) $nick]} {
set n [dict get $idle($salon) $nick]
set t1 [lindex $n 1]
set t [expr [unixtime]-$t1]
if {$t>[expr $time*60] && [isvoice $nick $salon]} {
pushmode $salon -v $nick
}
if {$t>300} {
dict set idle($salon) $nick [list 0 $t1]
}
} else {
dict set idle($salon) $nick [list 0 [unixtime]]
}
}
flushmode $salon
}
}
bind pubm - * av::Pvoice
proc Pvoice {nick host hand chan arg} {
variable lignes
variable salons
variable idle
set chan [string tolower $chan]
if {[lsearch -nocase $salons $chan]==-1 || [isbotnick $nick]} return
if {[info exists idle($chan)] && [dict exists $idle($chan) $nick]} {
set n [dict get $idle($chan) $nick]
set i [lindex $n 0]
dict set idle($chan) $nick [list [incr i] [unixtime]]
if {$i>=$lignes} {pushmode $chan +v $nick}
} else {
dict set idle($chan) $nick [list 1 [unixtime]]
}
}
bind join - * av::joinC
proc joinC {nick host hand chan} {
variable salons
set chan [string tolower $chan]
if {[lsearch -nocase $salons $chan]==-1 || [isbotnick $nick]} return
variable idle
dict set idle($chan) $nick [list 0 [unixtime]]
}
bind nick - * av::chgn
proc chgn {nick host hand chan new} {
variable salons
set chan [string tolower $chan]
if {[lsearch -nocase $salons $chan]==-1 || [isbotnick $nick]} return
variable idle
if {[info exists idle($chan)] && [dict exists $idle($chan) $nick]} {
dict set idle($chan) $new [dict get $idle($chan) $nick]
dict unset idle($chan) $nick
} else {
dict set idle($chan) $new [list 0 [unixtime]]
}
}
}
Cordialement Stéphane