[Bug] Eggdrop ne devoice pas en TCL
#1
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.
Répondre Avertir
#2
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 }
Répondre
#3
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 
}


Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté