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
Afin d'améliorer mon codage de gitan pour un tcl, je souhaite qu'un seul user ait acces aux commandes du bot. Je sais que sa se gère via les flags mais je ne sais pas comment le mettre en place...
Si tu ne veut qu'une personne spécifique puisse avoir accès à la commande en la tapant sur un salon par exemple.
Ceci peut-être réalisable autrement, mais c'est une piste pour tu puisse voir plus ou moins.
Sinon en utilisant aussi le système de "setudef flag".
tcl
if![matchattr$handle o|m $chan]{puthelp"notice $nick :Vous n'avez pas le level suffisant dans $::botnick pour utiliser cette commande $nick !"return0}
Vous interdisez les erreurs, vous empêchez ainsi la victoire.
Pour ajouter un user dans la userlist faut tu fasse manuellement, ou via un code..
Prend exemple sur le addop du Gestion.Bot de l'époque j'avais pondu ça :
tcl
proc addop {nick host hand text }{set vhand [lindex[split[lindex$text0] |]0]set chan [lindex$text1]if{[channel get $chan GB]==0}{return;}if{[nick2hand $nick] eq "*"}{puthelp"notice $nick :[subst -nocommands -nobackslashes $::GB::msg(access)]"return0}if![isauth $hand]{puthelp"notice $nick :[subst -nocommands -nobackslashes $::GB::msg(auth)]"return0}if{![string match #* $chan]} {puthelp"notice $nick :Syntaxe incorrecte ! ( /msg $::botnick addop <pseudo> <#salon> ) !"return0}if![validchan$chan]{puthelp"notice $nick :[subst -nocommands -nobackslashes $::GB::msg(salon)]"return0}if![matchattr$hand o|m $chan]{puthelp"notice $nick :[subst -nocommands -nobackslashes $::GB::msg(level)]"return0}if[matchattr$vhand |n $chan]{puthelp"notice $nick :Ce pseudo figure dans l'Access-List Owners sur $chan !"return0}if[matchattr$vhand |m $chan]{puthelp"notice $nick :Ce pseudo figure dans l'Access-List Masters sur $chan !"return0}if[matchattr$vhand |o $chan]{puthelp"notice $nick :Ce pseudo figure dans l'Access-List Opérateurs sur $chan !"return0}if[matchattr$vhand |m $chan]{puthelp"notice $nick :Ce pseudo figure dans l'Access-List Masters sur $chan !"return0}adduser$vhand$vhand*!*@*setuser$vhand HOSTS $vhand!*@*setuser$vhand HOSTS $vhand|*!*@*chattr$vhand -h|+o $chanforeach line [split$::GB::msg(pvmsg)"\n"]{putserv"privmsg $vhand :$line"}puthelp"notice $nick :$vhand a bien été ajouté(e) en tant qu'opérateur sur $chan !"putserv"privmsg $GB::log :\00314Commande \0036\[\0033Add-Op\0036\]\0031par : \0034$hand"save}
regarde la partie : setuser + chattr en bas du code, ça va répondre à ta question.
Bien évidament il existe des moyen plus simple, mais bon la c'est par pur aide et exemple.
Merci pour ton info, j'ai testé ton codage et en PL j'ai juste ça en info "addop NICK #SALON" mais aucune notice pour me prévenir de l'ajout de l'user.
Jusque là, j'avais pas de souci avec le codage du tcl mais maintenant j'ai cette erreur en PL [code]Tcl error [add:pub]: can't read "a": no such varia[code]
Ceci et une fonction avec setudef, c'est à dire le code va vérifié si sur le salon précis le setudef "GB" est actif ou pas. Mais si tu n'as pas activé sa ne fera rien, de plus il faudrait mettre dans le code :
Même erreur cité un peut plus haut faut regarder ou c'est appeler
Ensuite tu cite :
Quote:Jusque là, j'avais pas de souci avec le codage du tcl mais maintenant j'ai cette erreur en PL [code]Tcl error [add:pub]: can't read "a": no such varia[code]
C'est faux ce que tu dis.., car c'est suite à la modification que @CrazyCat ta dit de faire que tu n'as pas modifié partout.
Ton erreur et dans ta source de base ici :
Tu m'explique l'intérêt de ton putspeed appeler nulle par ? Puis pour une notice un simple puthelp et tout aussi éfficace surcharge pas le server pour un bout de code..
Lien wiki : https://wiki.eggdrop.fr/Puthelp
regarde aussi : Voir aussi putserv etc..
La tu as fait des erreurs avec un simple c/c
Essaye d'adapté et de voir les erreurs, te guider pas de soucis mais la franchement..
Après c'est pas méchamment hein, mais plus pour toi, sa peut s'adapté à ta demander mais pas de cette manière ci.
Vous interdisez les erreurs, vous empêchez ainsi la victoire.
En gros, c'est une système d'annonce pour un salon particulier toutes les 20 minutes. Seul d'owner du salon peut ajouter et supprimer les annonces. En gros, !addnews <message> une notice retour, un !delnews pour remettre à zéro. Pour le codage des annonces le code fonctionne, c'est juste la parti, add "securisé" qui me pose souci. Je souhaite lui coller une flag. J'ai repris ça et sa fonctionne :
tcl
bindpub - !newchefdebot dop:chefdebot
proc dop:chefdebot {nick host hand chan arg}{global chanoff botnick
set chefdebot [split[lindex$arg0]"|"]set chefdebot1 [string range [lindex$chefdebot0]08]if{$chefdebot == ""}{puthelp"notice $nick :4Erreur 14=> 3Veuillez préciser un pseudo 6!newchefdebot <Pseudo>";return0}if{![matchattr$hand A]}{puthelp"notice $nick :4Vous n'avez pas les accès requis !";return0}if{[matchattr$hand A]}{adduser$chefdebot1chattr$chefdebot1 +J
setuser$chefdebot1 HOSTS $chefdebot1!*@*setuser$chefdebot1 HOSTS $chefdebot|*!*@*foreach robot [userlist B]{puthelp"privmsg $robot :newchefdebot $chefdebot"}puthelp"notice $nick :14Vous venez d'ajouter 7$chefdebot 14en tant que 10CHEF DE BOT 14sur le réseau"puthelp"notice $chefdebot :14Vous venez d'être ajouter en tant que 10CHEF-DE-BOT 14sur le réseau"}putserv"privmsg #smoothoff :12NEW-CHEF-DE-BOT 14=> 7$chefdebot 14Vient d'être ajouter en tant que 10CHEF-DE-BOT 14sur le réseau"}procscan:chefdebot {}{set num 0foreach users [userlist]{if{[matchattr$users J]}{incr num 1lappend nombre $num}}
If {$nombre == "5"}{putspeed "notice $nick :Access Chef de bot atteint a 5"}}
D'accord je vois le principe, je vais tenter de te faire un exemple..
Ensuite je vais commenter et ont verra aussi un autre point sur la partie optimisation.. Je pense il et faisable de faire un truc sympa.
Par contre ne disposant plus de server dédié tu sera le testeur.
Je regarde ça lorsque je suis dispo
Envoyé de mon Redmi Note 8T en utilisant Tapatalk
Vous interdisez les erreurs, vous empêchez ainsi la victoire.