06/11/2016, 21:20 (Modification du message : 09/11/2016, 16:01 par Alucard`68.)
Bonsoir à tous,
J'ai téléchargé le script join.tcl disponible sur le site pour pouvoir faire joindre ou partir mon bot sans entrer en PL avec lui.
voila mon problème j'ai fait un code avec système de vhost pour qu'il ni ai seulement un groupe de personne précise qui puisse le faire
voila le code:
tcl
set vhostjoinpart {*@domaine.tld
}
bind pubm - !vien vien
bind pubm - !oust oust
proc vien { nick host hand channel arg }{global vhostjoinpart vien
foreach vhost $vhostjoinpart{if[string match -nocase $vhost$host]{
putquick "MSG Thor :join $arg"}0}}proc oust { nick host hand channel arg }{global vhostjoinpart oust
foreach vhost $vhostjoinpart{if[string match -nocase $vhost$host]{
putquick "MSG Thor :part $channel"}0}}
Mon problème c'est que quand je tape une de mes commande que ça soit
!vien #Test
ou
!oust
Rien ne se passe et j'ai aucun message d'erreur en PL avec le bot
set vhostjoinpart {*@domaine.tld
}
bind pubm - !vien vien
bind pubm - !oust oust
proc vien { nick host hand chan arg }{global vhostjoinpart vien
set chan [lindex$arg0]foreach vhost $vhostjoinpart{if[string match -nocase $vhost$host]{
putquick "MSG Thor :join $arg"
channel add $chan
savechannels
}0}}proc oust { nick host hand chan arg }{global vhostjoinpart oust
set chan [lindex$arg0]foreach vhost $vhostjoinpart{if[string match -nocase $vhost$host]{
putquick "MSG Thor :part $channel"
channel remove $chan
savechannels
}0}}
Tu ne faisait rien dans t'es procédures pour que le bot rejoingne un salon.
J'ai rajouter ce qu'ils manquer, par contre je pense tu doit avoir un soucis.
Tu fait un moment donner : }0
Ce qui sert ?
Cordialement
Vous interdisez les erreurs, vous empêchez ainsi la victoire.
Je rejoins ce que dit alias sur les "0" en trop.
Sinon, je pense surtout qu'il aurait mieux valu modifier le tcl initial plutôt que de faire en sorte que l'eggdrop se fasse un message.
07/11/2016, 11:41 (Modification du message : 07/11/2016, 11:43 par Alucard`68.)
Salut,
Merci d'avoir pris le temps pour mon problème
J'ai testé ton code mais sa ne fonctionne pas hélas.
En se qui concerne le }0 oui c'était une erreur de ma part j'ai enlever le 0
j'ai aussi tenté de faire ainsi
tcl
proc vien { nick host hand chan arg }{global vhostjoinpart vien
set chan [lindex$arg0]foreach vhost $vhostjoinpart{if{[validchan $chan]}{if[string match -nocase $vhost$host]{
channel add $chan
putquick "PRIVMSG Thor :join $arg"
putserv "PRIVMSG #LM-Staff :\00312Ok, \0037$nick \00312! je rejoins \0034$chan"return1}else{
putserv "PRIVMSG $chan :\00312Tu as picolé \0037$nick \00312? Je suis déjà sur \0034$chan"}}}}
Mais ne fonctionne pas non plus...
Se que je voudrais c'est que quand je tape !vien #salon sur un salon ou se trouve le bot celui-ci rejoigne le salon en question
Et quand je tape !oust il parte du salon ou j'ai tapé la commande.
Franchement je suis perdu je ne sais pas comment faire pour i arriver...
Merci d'avance.
Oui CrazyCat je vais aussi tenter de modifier le code original
07/11/2016, 13:24 (Modification du message : 07/11/2016, 13:25 par Alucard`68.)
ok aliasangelius je vais me pencher sur ton code pour voir comment je peu faire
Merci je fait un retour dans peu de temps
Comme je suis l'owner de l'eggdrop j'ai pas besoin du flag +o je supose ?
07/11/2016, 13:39 (Modification du message : 07/11/2016, 13:43 par Alucard`68.)
bon étant pas super calé en tcl je doit avouer que je comprend pas ton code a 95%
Donc du coup je suis completement perdu mais je vais quand même tenter quelque chose
Je suppose que les parties dont j'ai besoin sont les suivantes :
tcl
if![string match -nocase $chan]{
putserv "privmsg $::GB::log :\00314Commande \0036\[\0033Add-Chan\0036\]\0031par : \0034$hand"
putserv "notice $nick :$chan Rajouter au Addchan !"
channel add $chan
savechannels
return}
et
if![string match -nocase $chan]{
putserv "privmsg $::GB::log :\00314Commande \0036\[\0033Del-Chan\0036\]\0031par : \0034$hand"
putserv "notice $nick :$chan Retiré des Addchan !"
channel remove $chan
savechannels
return}
Juste cette partie seul, ne te servira pas énorme.
Après faut me recolle dedans, car ya un bail j'ai pas toucher au Eggdrop.
Fait des test et aux pire fournis les erreurs présent en PL, lorsque l'eggdrop va tant donnez une.
Mais il et vrai que nous pouvons partir sur un code TCL beaucoup plus simple.
Fait des test ensuite si tu préfère partir sur du code plus basique, ont changera le code autrement
A chaque problème une solution existe
Vous interdisez les erreurs, vous empêchez ainsi la victoire.
Alors voila j'ai fait des test différent mais rien ne fonctionne et aucun message d'erreur en PL
Je préférais partir sur un code plus simple parce que la je suis complètement perdu dans se que je fait...
Et pour être honnête je ne sais absolument pas par ou commencé...
Dans l'idéal je souhaiterais partir du code que j'ai posté au début.
Premier point: met ton vhost tout en minuscules. Comme de toutes manières tu utilises l'option -nocase sur ton string match, autant ne pas rajouter de sources d'erreurs.
Ensuite, as-tu une erreur ? Passes-tu dans tes conditions ? Mets des putlogs pour voir ce qui se passe.
Dernier point, très important: tu fais un bind pubm. Donc pour ta procédure, $arg reçoit toute la ligne qui contient "!vien" ou "!oust", et pas ce qui suit la commande.