Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


[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.
#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 }
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#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 
}



Possibly Related Threads…
Thread Author Replies Views Last Post
  [Abandon] devoice auto au bout de X minutes Alucard`68 4 3,962 12/02/2017, 02:46
Last Post: Alucard`68
  voice devoice Romu83 11 6,497 23/02/2012, 13:16
Last Post: BdS

Forum Jump:


Users browsing this thread: 1 Guest(s)