Communauté Eggdrop

Version complète : Eggdrop ne devoice pas en TCL
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonjour,

Voila mon Eggdrop ne Dévoice pas quand un Script :

tcl
#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:
tcl
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)

tcl
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 
}