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
Se code est fonctionnel. j'aimerais rajouter une liste de pseudo qui n'auront pas l'autovoice (les personnes ayant un statut sur le salon) j'ai donc tenté ainsi
Celui ci fonctionne partiellement si dans le "set exemptnick" je met un pseudo ça fonctionne par contre si je rajoute un 2ème pseudo ça ne fonctionne plus. j'avoue ne pas savoir comment faire pour résoudre se problème.
Je n'ai aucun message d'erreur en PL avec le bot.
Et dans un 2eme temps j'aimerais aussi rajouter une option pour que l'autovoice ne soit actif que sur certain salon mais la je ne sais pas comme m'y prendre.
05/07/2018, 14:54 (This post was last modified: 05/07/2018, 15:05 by MenzAgitat.)
Attention à $::botnick, il s'agit du nick que l'eggdrop "devrait" avoir en temps normal, mais il ne correspondra pas forcément à la réalité s'il s'est renommé à cause d'un ghost ou s'il est renommé en AnonymeXXXX par les services suite à un problème d'authentification.
$::nick en revanche, correspond au nick actuel de l'eggdrop quel qu'il soit.
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.
mais du coup ais-je encore besoin de la variable "botnick" dans le "global" ?
Je vais aller voir au niveau des SETUDEF FLAG et CHANNEL GET pour que mon autovoice ne soit actif que sur certain salon.
Mais je ne suis pas contre un petit aiguillage lol.
Alucard`68 Wrote:Je vais aller voir au niveau des SETUDEF FLAG et CHANNEL GET pour que mon autovoice ne soit actif que sur certain salon. Mais je ne suis pas contre un petit aiguillage lol.
Un petit aiguillage avant même d'avoir pris la peine d'aller voir ?... Je veux bien donner un coup de main mais c'est un coup de pied au cul qu'il te faut là :D
Les exemples d'utilisation ne manquent pas dans mes scripts.
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.
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.
Merci pour vos réponses :)
Par contre concernant SETUDEF FLAG et CHANNEL GET j'ai regardé au niveau de tes sources MenzAgitat et j'avoue ne pas avoir compris grand chose même voir rien lol.
J'ai évidement recherché sur le wiki mais soit j'ai mal vue (ce qui est fort probable) soit il y a pas d'aide à se sujet lol.
Auriez vous un lien ou deux pour m'aiguiller avec des explications et si possible exemple simple ?
Je continue à mes recherches sur le wiki bien entendu.
Merci CrazyCat pour l'info j'ai modifié ma proc et du coup supprimé le global.
cestlemien les services utilisés n'ont pas la possibilité de mettre un autovoice à tous les utilisateurs.
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.
D'apres se que j'ai pu trouver comme info ca doit etre dans un namespace.
Je ne suis pas encore à se niveau la codage lol.
je vais continuer a etudier la question
(06/07/2018, 22:23)Alucard`68 Wrote: D'apres se que j'ai pu trouver comme info ca doit etre dans un namespace.
Je ne suis pas encore à se niveau la codage lol.
je vais continuer a etudier la question
Description: initializes a user defined channel flag, string or integer
setting. You can use it like any other flag/setting. IMPORTANT: Don't
forget to reinitialize your flags/settings after a restart, or it'll be
lost.
Returns: nothing
Module: channels
D'accord CrazyCat j'ai supposé ça car tout les setudef que j'ai pu voir sont dans un namespaces.
Donc j'ai continué à me renseigner chercher des exemples etc mais je galère vraiment.
J'ai donc fait ça:
j'en ai aussi profité pour remplacer le putserv par un pushmode ça fait mieux lol.
Je n'ai pas tester le code j'aimerais savoir si je suis sur la bonne voix ou alors pas du tout.
De cette manière je validerais bien les salons en pl via la commande :
09/07/2018, 12:22 (This post was last modified: 09/07/2018, 12:24 by aliasangelius.)
Salut,
si c'est pour un salon, j'avais fait un truc pour quelqu'un ya un moment de ça.
Mais c'est par traitement de fichier, si ça peut t'aider tiens :
tcl
#**********## Vip V1.0 ##**********## Description du code TCL.#***************************************## TCL en NameSpace. ## Utilisation de msgcat. ##***************************************#namespaceeval ::vip{# Salon back ou va se situé l'autorise.variable salons "#informatique"# Nom du fichier ou seront les pseudos autorisé.variable fichiers "vip.db"# Procédure de création du fichier Vip.if{![file exists $fichiers]}{setload[open$fichiers w+]close$loadputlog"\2Je crée le fichier $fichiers\2"}proc filtout {chan text}{if[string match "*c*"[getchanmode$chan]]{return[stripcodes abcgru $text]}else{return$text}}# Procédure de join.bindjoin - "$::vip::salons *"[namespace current]::joinautoproc joinauto {nick host hand chan}{variable salons
if[isbotnick$nick]returnif{[acceesalon $nick]}{setmsg[filtout $salons"\0031\[\0033Mode Vip Automatique\0033 \0031\] Comportement exemplaire récompensé pour \002$nick\002 qui est automatiquement VIP ce mois ci sur \002$salons\002"]putquick"PRIVMSG $salons :$msg"putserv"MODE $salons +v $nick"return0}}# Procédure d'ajout de pseudo Vip.bindpub o ".+vip"[namespace current]::+ajout
proc +ajout {nick host hand chan arg }{variable fichiers
variable salons
set temp [lindex$arg0]if{$temp == ""}{putserv"NOTICE $nick :Utilisation: .+vip <pseudo>"putserv"NOTICE $nick :Exemple .+vip $nick"return0}set lis "[fread $fichiers]"if{[lsearch -exact "x $fichiers""$temp"]!="0"}{lappend lis $temp
fwrite $fichiers$tempputserv"NOTICE $nick :\002$temp\002 \0034a été ajouté\0034"putserv"NOTICE $nick :\002$temp\002 \0034est ajouté au pseudos vip\0034"return0}putserv"NOTICE $nick :\002Erreur:\002$temp\002 \0034est déjà vip\0034"return0}# Procédure de suppression de pseudo vip.bindpub o ".-vip"[namespace current]::-ajout
proc -ajout {nick host hand chan arg }{variable fichiers
variable salons
set temp [lindex$arg0]if{$temp == ""}{putserv"NOTICE $nick :Utilisation: .-vip <pseudo>"putserv"NOTICE $nick :Exemple: .-vip $nick"return0}set autoajout "[fread $fichiers]"set tmp ""foreach bb $autoajout{if{![string match $temp$bb]}{lappend tmp $bb}}
fdel $fichiers$tmpputserv"NOTICE $nick :\002$temp\002 \0034supprimé des vip\0034"putserv"NOTICE $nick :\002$temp\002 \0034est supprimé des pseudo vip\0034"return0}# Procédure pour voir la liste des vip.bindpub o ".vip"[namespace current]::autoproc auto {nick host hand chan arg }{variable fichiers
variable salons
set fp [open$fichiers"r"]set fc -1putserv"notice $nick :\037\00300,01 -> Liste des vip. <-\037\003"while{![eof$fp]}{set data [gets$fp]incr fc
if{$data!=""}{putserv"notice $nick :\0031\[\0034$data\0031\0031 ]\0031"}
unset data
}close$fpputserv"notice $nick :\037\00300,01 -> Fin de la liste des vip. <-\037\003"}# Ne pas toucher Systeme Proc !!proc acceesalon {nick}{variable fichiers
set fa [open$fichiers r]set access 0while{![eof$fa]}{set ligne [gets$fa]if{[string tolower $nick] == [string tolower $ligne]}{set access 1}}close$fareturn$access}# Procédure d'écriture de fichier.proc fwrite {fi arg}{set f [open$fi a]puts$f$argclose$f}# Procédure de suppression de fichier.proc fdel {fi arg}{set f [open$fi w]puts$f$argclose$f}# Procédure de lecture de fichier.proc fread {fi}{set f [open$fi r]set t [gets$f]close$freturn$t}}putlog"\002\0034Chargement.. \002\037\0031Vip.tcl\037\0031"
EDIT : J'devais modifié pour faire passer les messages en msgcat, mais j'ai eut un poil la flemme, mais tu à de quoi faire pour ton exemple je suppose.
Vous interdisez les erreurs, vous empêchez ainsi la victoire.