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


Activation
#1
Coucou tous le monde,

je viens car je rencontre un souci,en faite j'aimerais faire que lors un users (flag m) tape !bl on ça ajoute un flag et si il retape la meme commande sa lui indique que c'est deja activer ou désactiver :x j'espere avoir bien expliquer .


tcl
setudef flag SalonProtect
 
bind pub m !bl SalonBL
proc SalonBL{nick host hand chan arg} {
set flag "SalonProtect"
set Activation [lindex [split $arg] 0]
if {$Activation == "" } { puthelp "PRIVMSG $chan :Merci d'utiliser la Commande !bl on/off"
return 0
}
if {$Activation == "on"} {
channel set $chan +$flag
puthelp "PRIVMSG $chan :Activation de la blackliste pour le salon ($chan)"
return 0
}
if {$Activation == "off"} {
channel set $chan -$flag
puthelp "PRIVMSG $chan :Désactivation de la blackliste"
return 0
}
}


j'ai essayer avec else mais rien y fait sa m'avais retourner des erreurs
:(
merci de votre aide
#2
Perso je vois qu'un problème, il manque un espace à la première ligne :s

tcl
proc SalonBL{nick host hand chan arg} {


tcl
proc SalonBL {nick host hand chan arg} {


Sinon heu.... quelle est l'erreur ^^' ?
#3
bonsoir

j'ai cette erreur

tcl
[22:18] wrong # args: should be "proc name args body"


et qd j'ajoute else

tcl
bind pub m !bl SalonBL
proc SalonBL {nick host hand chan arg} {
set flag "SalonProtect"
set Activation [lindex [split $arg] 0]
if {$Activation == "" } { puthelp "PRIVMSG $chan :Merci d'utiliser la Commande !bl on/off"
return 0
}
if {$Activation == "on"} {
channel set $chan +$flag
puthelp "PRIVMSG $chan :Activation de la blackliste pour le salon ($chan)"
return 0
} else {
puthelp "PRIVMSG $chan :c'est deja activer"
}


j'ai toujours la premier phrase qui s'affiche "Activation de la blackliste pour le salon ($chan)"
#4
C'est normal tu ne vérifies pas que si le flag est activé ou pas.
A chaque passage dans:

tcl
if {$Activation == "on"} {

tu vérifies si l'argument est bien "on" et non s'il a été activé auparavant, du coup il te balancera a chaque fois la phrase "Activation de la blackliste pour le salon ($chan)" si tu as tapé: "!bl on".
#5
re coucou à tous,

voila j'aimerais savoir comment je peut faire pour savoir quand je tape &status sa me dise quel flag sont activer et sur quel salon donc j'ai fait un p'tit truc comme ça mais quandd je tape &status sa me dit que seulement sur le salon ou j'ai taper la commande. j'aimerais que sa me dise ou les flags sont activer.


tcl
bind pub n &status status
proc status { nick host hand chan arg } {
global botnick 
if {[channel get $chan "SalonAntiClone"]} {
putserv "privmsg $chan :Anti-Clone Activer sur $chan."
}
if {[channel get $chan "SalonProtect"]} {
putserv "privmsg $chan :Vip'S est Activer sur $chan."
	} 
}


y aurais 'til une ame charitable parmis vous pour m'aider svp ?

merci beaucoup
#6

tcl
# Mieux vaut ne pas cumuler les noms génériques
bind pub n &status pub:flagsStatus
 
#Oué, mettre arg cay le mal
proc pub:flagsStatus {nick uhost hand chan text} {
# On initialise les variables pour Tcl 8.4
set anticloneChans {}
set protectChans {}
 
# On vérifie chaque canal...
foreach channel [channels] { 
# Si le bot est pas dessus, osef
if ![onchan $channel] continue
# On ajoute le chan si les flags sont bons
if [channel get $channel "SalonAntiClone"] { lappend anticloneChans $channel }
if [channel get $channel "SalonProtect"] { lappend protectChans $channel }
# Fin du foreach..
}
 
# On a plus qu'a afficher
if [llength $protectChans] { putserv [concat PRIVMSG $chan :Vip'S activé sur les canaux : [join $protectChans ", "] }
if [llength $anticloneChans] { putserv [concat PRIVMSG $chan :Anti-clone activé sur les canaux : [join $anticloneChans ", "] }
 
# Cay fini !
return }


Non testé :s
#7
merci Artix pour ta réponse j'ai tester ta version et aucune erreur en pl mais il indique rien sur le salon lol.
#8
Ca pourrait signifier que tu n'as activé ton script sur aucun chan.

pour l'activer sur #monchan, tu dois taper :
Code:
.chanset #monchan +SalonAntiClone
.chanset #monchan +SalonProtect
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#9
bonsoir, merci beaucoup de vos reponse rapide

il sont bien ajouter

en pl j'ai ceci :
Quote:|21:06:20| <Nvidia> [21:06]UDEF: SalonAntiClone defined
|21:06:20| <Nvidia> [21:06] Anti-Clone.tcl 1.9 béta chargé.
|21:06:20| <Nvidia> [21:06]UDEF: blacklist defined
|21:06:20| <Nvidia> [21:06] BlackList.tcl charger...
|21:06:20| <Nvidia> [21:06] UDEF: SalonProtect defined
|21:06:20| <Nvidia> [21:06] Autorise.tcl 2.1 chargé....

et j'avais fait ceci en code

tcl
bind pub n &status status
proc status { nick host hand chan arg } {
global botnick 
if {[channel get $chan "SalonAntiClone"]} {
putserv "privmsg $chan :Anti-Clone Activer sur $chan."
}
if {[channel get $chan "SalonProtect"]} {
putserv "privmsg $chan :Vip'S est Activer sur $chan."
}
if {[channel get $chan "blacklist"]} {
putserv "privmsg $chan :La Blackliste est Activer sur $chan." 
}	
}


et donc Quand je tape &status ça m'affiche bien si l'anti clone et activer ect ..mais sa veut pas me dire si il est activer sur d'autre chan
#10
Il ne faut pas trop demander.
Prend exemple sur les TCL d'Artix et regarde les tuto sur le site même !

Il faut apprendre aussi et non rien faire Smile
#11
apres chercher un peut partout j'ai réussi à faire fonctionner la version de ArtiX


tcl
# Mieux vaut ne pas cumuler les noms génériques
bind pub n &status pub:flagsStatus
 
#Oué, mettre arg cay le mal
proc pub:flagsStatus {nick uhost hand chan text} {
# On initialise les variables pour Tcl 8.4
set anticloneChans {}
set protectChans {}
 
# On vérifie chaque canal...
foreach channel [channels] {
# Si le bot est pas dessus, osef
if [onchan $channel] continue
# On ajoute le chan si les flags sont bons
if [channel get $channel "SalonAntiClone"] { lappend anticloneChans $channel }
if [channel get $channel "SalonProtect"] { lappend protectChans $channel }
# Fin du foreach..
}
 
# On a plus qu'a afficher
if [llength $protectChans] { putserv [concat PRIVMSG $chan :Vip'S activé sur les canaux : [join $protectChans ", "]] }
if [llength $anticloneChans] { putserv [concat PRIVMSG $chan :Anti-clone activé sur les canaux : [join $anticloneChans ", "] ]}
 
# Cay fini !
return }


il manquais " ] "


Possibly Related Threads…
Thread Author Replies Views Last Post
  Activation Action Replier dsa 5 3,562 28/11/2017, 19:27
Last Post: dsa

Forum Jump:


Users browsing this thread: 1 Guest(s)