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


Un welcome Gardé en mémoire
#1
Bonjour voila j'ai un soucis car je veux configurer un Welcome pour que quand chaque users rentre sur le salon ca lui envoi un Welcome que moi ou quelqu'un qui a acces au bot puisse configurer ce Welcome avec la commande !welcome.

J'ai bien quelque chose qui fonctionne, mais pour que cela fonctionne il me faut mettre deux code TCL different car l'un sans l'autre ca ne fonctionne pas.

Et le principal probleme c'est que je voudrais que ce Welcome soit gardé en Memoire car là à chaque .rehash et bien le Welcome disparait.
Voici les deux TCL


tcl
set onjoin_msg {
 {
  "Welcome to Channel \$chan \$nick"
 }
}
set onjoin_chans "#BG® #eg-lovech"
 
bind join - * join_onjoin
 
putlog "Onjoin.tcl 0.1 by Banned loaded"
 
proc join_onjoin {nick uhost hand chan} { 
global onjoin_msg onjoin_chans botnick 
if {([lsearch -exact [string tolower $onjoin_chans] [string tolower $chan]] != -1) && (![matchattr $hand b]) && ($nick != $botnick)} { 
puthelp "NOTICE $nick :[subst $onjoin_msg]" 
} 
}

Le deuxieme

tcl
bind pub - !welcome pub:welcome 
proc pub:welcome {nick uhost hand channel text} { 
global onjoin_msg 
      if {[validuser $hand] && ($text != "")} { 
         set onjoin_msg "$text" 
        putserv "NOTICE $nick :Nouveau message d'acceuil -> $text" 
      } else { 
        putserv "NOTICE $nick :Erreur..." 
   } 
}


Voila donc je Récap , je veux qu'en tapant !welcome moi ou les gens qui ont acces sur le bot puisse configuré un Welcome et qu'il soit gardé en mémoire.

Merci d'avance
#2
Bon, le soucis est essentiellement qu'un rehash vide les variables, tu dois donc stocker le message dans un fichier ou dans une variable qui sera sauvegardée automatiquement.

Cette deuxième solution pourrait être intéressante, en utilisant setudef qui permet d'enregistrer une donnée dans les paramètres de canal.

Voila ce que je te propose:

tcl
setudef str welcomemsg
 
bind pub -|o "!welcome" welcome:set
proc welcome:set {nick uhost handle chan text} {
   channel set $chan welcomemsg [join [split $text]]
   putserv "PRIVMSG $nick :Nouveau message d'accueil pour $chan: $text"
}
 
bind join - "*" welcome:join
proc welcome:join {nick uhost handle chan} {
   if {[channel get $chan welcomemsg]!=""} {
      puthelp "NOTICE $nick :[channel get $chan welcomemsg]"
   }
}

Bon, c'est pas testé mais ça doit fonctionner à peu près.
Et l'avantage est que tu enregistres dans les paramètres de chaque canal son message d'accueil.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#3
Merci pour le code, mais je voulais savoir, comment faire car la j'ai donc enlevé les deuc que j'avais avant, j'ai mis le tient, mais quand je tape !welcome MESSAGE bin rien ne se passe .

Y a t'il quelque chose qu'il faut je fasse d'autre ?

Merci de me renseigner
#4
Comme dit sur IRC (ou sur ircz.fr?), il faut que tu sois déclaré opérateur sur le canal (dans l'eggdrop)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#5
donc cela veux dire que moi je ne peux pas le faire car je suis Admin du bot ???
#6
Autrement, tu change -|o par A|A et ensuite en party line tu tape: .chattr tonpseudo +A et la tu poura t'en servire.
#7
Ok donc à tous ceux que je ferais un acces sur mon bot je leur mets le Flag +a pour qu'il puissent s'en servir aussi ?

Merci de la reponse
#8
loulou7593 Wrote:donc cela veux dire que moi je ne peux pas le faire car je suis Admin du bot ???
Non, ça veut dire que tu ne peux pas parce que tu ne t'es pas déclaré opérateur du canal (chattr loulou +o #canal)

NuNuX Wrote:Autrement, tu change -|o par A|A et ensuite en party line tu tape: .chattr tonpseudo +A et la tu poura t'en servire.
Ou juste -|A
loulou7593 Wrote:Ok donc à tous ceux que je ferais un acces sur mon bot je leur mets le Flag +a pour qu'il puissent s'en servir aussi ?
Tout d'abord, c'est +A, pas +a
Mais là ça n'agit que sur un canal donné.
Il faudrait peut-être que tu te renseignes plus sur les flags des utilisateurs (http://www.eggdrop.fr/Flags)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#9
Ok je vais jeter un petit coup d'oeil sur les Flags.

Merci de vos réponses
#10
Bonjour
j'ai bien regarder le site avec les Flags, il y a bien des +a mais aucun +A

+a correspondrais à auto-op

alors que là on me demande de mettre +A ??
#11
Oui, c'est le principe: tu assignes un flag qui n'est pas utilisé et tu t'en sers comme tu veux.
Les flags qui sont dans la liste sont réservés, c'est donc ceux que tu ne peux pas utiliser à ton bon vouloir.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  [à intégrer au wiki] Les listes par l'exemple : aide-mémoire, astuces. MenzAgitat 0 2,735 23/08/2009, 18:39
Last Post: MenzAgitat

Forum Jump:


Users browsing this thread: 1 Guest(s)