Bonjour,
Voila mon Eggdrop ne Dévoice pas quand un Script :
tclcopier
#Logchan = #Staff
#Dans un bind mode - "% -o"
if { [ isvoice $target $ ::logchan ] } {
set salon "0"
if { [ isop $target [ string tolower "#Ados" ] ] } { incr salon }
if { [ isop $target [ string tolower "#Quiz" ] ] } { incr salon }
if { [ isop $target [ string tolower "#testing" ] ] } { incr salon }
if { [ isop $target [ string tolower "#irc" ] ] } { incr salon }
if { $salon == "0" } { pushmode $ ::logchan -v $target }
}
Voila et a chaque fois que je me deop de tout les salon, il ne me devoice pas de #Staff :/ Je ne sais pas pourquoi, il n'y a pas de faute.
Ah aussi, pour évité d’ouvrir un autre sujet comment je peut ajouter un autre user au bot via un Bind pub ?
Merci, Dydouch.
Si je comprends bien, c'est la suite de la discussion
http://www.ircz.fr/viewtopic.php?pid=30878
La bas, je te donnais comme code:
tclcopier
set logchan "#staff"
bind mode - "% +o" opped
bind mode - "% -o" deopped
proc opped { nick uhost handle chan mode target} {
if { [ string tolower $chan ] == [ string tolower $ ::logchan ] } { return 0 ; }
if { ! [ onchan $target $ ::logchan ] } { return 0 ; }
if { ! [ isvoice $target $ ::logchan ] } {
pushmode $ ::logchan +v $target
}
putserv "PRIVMSG $::logchan :$target ([whois $target]) est @ sur $chan"
}
proc deopped { nick uhost handle chan mode target} {
if { [ string tolower $chan ] == [ string tolower $ ::logchan ] } { return 0 ; }
if { ! [ onchan $target $ ::logchan ] } { return 0 ; }
if { [ isvoice $target $ ::logchan ] } {
set op 0
foreach vchan [ chanlist] {
if { [ isop $vchan $target ] } incr op
}
if { $op == 0 } pushmode $ ::logchan -v $target
}
putserv "PRIVMSG $::logchan :$target ([whois $target]) n'est plus @ sur $chan"
}
proc whois { nick } {
set handle [ nick2hand $nick ]
if { $handle == "*" } return "Inconnu"
else return $handle
}
Peut-être le souci vient-il de la différence entre ma variable "op" et ta variable "salon" : je traite en entier (set op 0, if { $op == 0 }), alors que toi tu travailles avec une chaine (set salon "0", if { $salon == "0" }).
Essaye donc de travailler avec des entiers, et au cas où mets un putlog juste avant ton if { $salon == 0 }
Oui c'est ça, voila les modification que j'ai faite: (Petit bug des numero de couleur IRC)
tclcopier
set logchan "#staff"
bind mode - "% +o" opped
bind mode - "% -o" deopped
bind join - * proc :join
bind part - * proc :part
proc proc :join { nick host hand chan} {
set accueil "#Accueil"
if { $chan == "#Accueil" || [ string tolower $chan ] == [ string tolower $ ::logchan ] } {
if { [ isop $ ::botnick $accueil ] } {
if { [ onchan $nick $ ::logchan ] } {
pushmode $accueil +v $nick
}
}
}
if { $chan == "#Staff" && $nick == "Otois" } { putserv "PRIVMSG $chan :\[ Otois\] http://toutestnet.ze.cx/?page=profil&profil=Dydouch " }
}
proc proc :part { nick host hand chan target} {
set accueil "#Accueil"
if { [ isop $ ::botnick $accueil ] && [ onchan $nick $accueil ] } {
if { [ string tolower $chan ] == [ string tolower $ ::logchan ] } { pushmode $accueil -v $nick }
}
if { [ string tolower $chan ] == [ string tolower "#Ados" ] || [ string tolower $chan ] == [ string tolower "#quiz" ] || [ string tolower $chan ] == [ string tolower "#testing" ] || [ string tolower $chan ] == [ string tolower "#irc" ] } {
set op "0"
set users "0"
foreach vchan [ chanlist $chan ] {
if { [ isop $vchan $chan ] && $vchan ! = $ ::botnick && [ whois $vchan ] ! = "Bot" && [ whois $vchan ] ! = "Anope" } { incr op
} elseif { ! [ isop $vchan $chan ] && ! [ ishalfop $vchan $chan ] && $vchan ! = $ ::botnick } { incr users }
}
if { $op == 0 } { set nb_op "Pas d'op"
} elseif { $op == 1 } { set nb_op "$op 2op" } else { set nb_op "$op 2ops" }
if { $users == 0 } { set nb_users "0 2user"
} elseif { $users == 1 } { set nb_users "$users 2user" } else { set nb_users "$users 2users" }
if { [ isop $nick $chan ] } { putserv "PRIVMSG $::logchan :6-2Deop6-12 $nick 10 ([whois $nick]) 12sur3 $chan 12->4 $nb_op 2pour4 $nb_users " }
}
}
proc opped { nick uhost handle chan mode target} {
if { [ string tolower $chan ] == [ string tolower $ ::logchan ] } { return 0 ; }
if { [ string tolower $chan ] == [ string tolower "#Channels" ] } { return 0 ; }
if { [ string tolower $chan ] == [ string tolower "#Services" ] } { return 0 ; }
if { [ string tolower $chan ] == [ string tolower "#Accueil" ] } { return 0 ; }
if { [ string tolower $chan ] == [ string tolower "#Spam" ] } { return 0 ; }
if { [ string tolower $chan ] == [ string tolower "#Ados" ] || [ string tolower $chan ] == [ string tolower "#quiz" ] || [ string tolower $chan ] == [ string tolower "#testing" ] || [ string tolower $chan ] == [ string tolower "#irc" ] } {
if { [ isop $ ::botnick $chan ] } {
if { ! [ onchan $target $ ::logchan ] } {
pushmode $chan -o $target
putserv "PRIVMSG $::logchan :5-4ATTENTION05-3 $nick 12a oper04 $target 12sur6 $chan 2-> 14(Interdit -5)"
}
}
if { ! [ isvoice $target $ ::logchan ] } {
pushmode $ ::logchan +v $target
}
set op "0"
set users "0"
set pseudo "test"
foreach vchan [ chanlist $chan ] {
if { [ isop $vchan $chan ] && $vchan ! = $ ::botnick && [ whois $vchan ] ! = "Bot" && [ whois $vchan ] ! = "Anope" } { incr op
} elseif { ! [ isop $vchan $chan ] && $vchan ! = $ ::botnick && ! [ ishalfop $vchan $chan ] } { incr users }
}
set ados "#Ados"
if { [ mineur $ados ] == "0" && [ whois $target ] ! = "Bot" && [ whois $target ] ! = "Anope" } { putserv "PRIVMSG $::logchan :5-4ATTENTION05-4 [mineur $ados] ops 12sur6 $ados 12contre4 $op ops 12sur6 $chan " }
if { $op == 0 } { set nb_op "Pas d'op"
} elseif { $op == 1 } { set nb_op "$op 2op" } else { set nb_op "$op 2ops" }
if { $users == 0 } { set nb_users "0 2user"
} elseif { $users == 1 } { set nb_users "$users 2user" } else { set nb_users "$users 2users" }
putserv "PRIVMSG $::logchan :6-2Op6-12 $target 10 ([whois $target]) 12sur3 $chan 12->4 $nb_op 2pour4 $nb_users"
}
}
#[whois $ident]
proc deopped { nick uhost handle chan mode target} {
if { [ string tolower $chan ] == [ string tolower $ ::logchan ] } { return 0 ; }
if { [ string tolower $chan ] == [ string tolower "#Channels" ] } { return 0 ; }
if { [ string tolower $chan ] == [ string tolower "#Services" ] } { return 0 ; }
if { [ string tolower $chan ] == [ string tolower "#Accueil" ] } { return 0 ; }
if { [ string tolower $chan ] == [ string tolower "#Spam" ] } { return 0 ; }
if { [ string tolower $chan ] == [ string tolower "#Ados" ] || [ string tolower $chan ] == [ string tolower "#Quiz" ] || [ string tolower $chan ] == [ string tolower "#testing" ] || [ string tolower $chan ] == [ string tolower "#irc" ] } {
set salon ""
if { [ isvoice $target $ ::logchan ] } {
set salon "0"
if { [ isop $target [ string tolower "#Ados" ] ] } { incr salon }
if { [ isop $target [ string tolower "#Quiz" ] ] } { incr salon }
if { [ isop $target [ string tolower "#testing" ] ] } { incr salon }
if { [ isop $target [ string tolower "#irc" ] ] } { incr salon }
if { $salon == "0" } { pushmode $ ::logchan -v $target }
}
set pseudo $target
if { $salon == "0" } { pushmode $ ::logchan -v $pseudo }
set op "0"
set users "0"
foreach vchan [ chanlist $chan ] {
if { [ isop $vchan $chan ] && $vchan ! = $ ::botnick && [ whois $vchan ] ! = "Bot" && [ whois $vchan ] ! = "Anope" } { incr op
} elseif { ! [ isop $vchan $chan ] && ! [ ishalfop $vchan $chan ] && $vchan ! = $ ::botnick } { incr users }
}
if { $op == 0 } { set nb_op "Pas d'op"
} elseif { $op == 1 } { set nb_op "$op 2op" } else { set nb_op "$op 2ops" }
if { $users == 0 } { set nb_users "0 2user"
} elseif { $users == 1 } { set nb_users "$users 2user" } else { set nb_users "$users 2users" }
putserv "PRIVMSG $::logchan :6-2Deop6-12 $target 10 ([whois $target]) 12sur3 $chan 12->4 $nb_op 2pour4 $nb_users === $salon"
}
}
proc whois { nick } {
set handle [ nick2hand $nick ]
if { $handle == "*" } { return "~unknown~"
} else { return $handle }
}
proc mineur { chan } {
set op "0"
foreach vchan [ chanlist $chan ] {
if { [ isop $vchan $chan ] && $vchan ! = $ ::botnick && [ whois $vchan ] ! = "Bot" && [ whois $vchan ] ! = "Anope" } { incr op }
}
return $op
}