Communauté Eggdrop
auto op - Version imprimable

+- Communauté Eggdrop (https://forum.eggdrop.fr)
+-- Forum : Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum : Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Sujet : auto op (/showthread.php?tid=331)

Pages : 1 2


auto op - fedora - 29/01/2009

bonsoir ,
je voudrais savoir comment faire pour que mon code autop puisse géré les pseudo des bots et channel dans la variable
ex:
tcl
set botsalon "#channel #chanel2 ect..." 
set botniu "niubot1 niubot2 ect..."



voici mon code :
tcl
#-//-/-//-//-//-//-#
#-Auto -Op Niubot--#
#-//-/-//-//-//-//-#

#Configuration de l'auto Op Salon et pass NiubOt#
set botniu "Niubot"
set botsalon "#chan"
set botpass "MON PASS"

#---------------------------------#
bind join - "* *" autoop
proc autoop { nick uhost hand chan } {
global botnick 
 if {$nick == "$::botnick"} {
putquick "PRIVMSG $::botniu :op $::botpass $::botsalon"
putquick "PRIVMSG $::botniu :voice $::botpass $::botsalon"
}
}



cordialement


RE: auto op - CrazyCat - 30/01/2009

Tout d'abord, il vaut mieux utiliser une liste qu'une chaine:
tcl
set botsalon { "#channel" "#chanel2" "..." }
set botniu {"niubot1" "niubot2" "..."}
set botpass {"pass1" "pass2" "..."}


Ou:
tcl
set botsalon [split "#channel #chanel2 ..."]
set botniu [split "niubot1 niubot2 ..."]
set botpass [split "pass1 pass2 ..."]



Et ensuite, tu peux utiliser lsearch:
tcl
bind join - "* *" autoop
   proc autoop { nick uhost hand chan } {
   if {$nick != $::botnick} {
      return 0
   }
   set idt [lsearch $::botsalon [string tolower $chan]]
   if { $idt eq -1 } {
      # ce canal n'est pas géré
      return 0
   } else {
      putserv "PRIVMSG [lindex $::botniu $idt] :op [lindex $::botpass $idt] $chan"
      putserv "PRIVMSG [lindex $::botniu $idt] :voice [lindex $::botpass $idt] $chan"
   }
}





RE: auto op - fedora - 30/01/2009

merci CraZyCat

aprés avoir testé ta modification le bot n'envoi pas le putserv pour ce opé je n'est pas de message d'erreur en pl


RE: auto op - CrazyCat - 30/01/2009

C'est qu'il n'y a pas d'erreur structurelle.
Ajoute donc des putlog pour savoir dans quelles conditions tu passes.


RE: auto op - fedora - 30/01/2009

j'ai mit des putlogs et aparament il prend pas en compte
tcl
[lindex $::botniu $idt] :op [lindex $::botpass $idt] 
[lindex $::botniu $idt] :voice [lindex $::botpass $idt]





RE: auto op - fedora - 30/01/2009

j'ai mit un putlog sur "ce canal n'est pas géré"
et à chaque joins de salon il m'indique cela en party line


RE: auto op - CrazyCat - 30/01/2009

Conclusion: est-ce que l'eggdrop rejoint un canal qui est dans la liste? le nom du canal (dans la liste) doit être en minuscules.
Tu peux essayer aussi un putlog de $chan pour voir ce que l'eggdrop voit.


RE: auto op - fedora - 30/01/2009

il rejoin bien les chans ds la liste qui sont en majuscule et m'indique seulment en pl " ce canal n'est pas géré "


RE: auto op - CrazyCat - 30/01/2009

tcl
set idt [lsearch $::botsalon [string tolower $chan]]


tolower signifie que les noms sont passés en minuscule.
Pour l'anecdote, que le nom du canal soit en majuscules ou en minuscules, c'est pareil pour le serveur IRC, mais pas pour le tcl. Donc, ta liste de canaux doit être tout en minuscule.


RE: auto op - fedora - 31/01/2009

maintenant il ne prend que le premier salon de la liste mais pas les suivants


RE: auto op - CrazyCat - 31/01/2009

Peut tu faire un putlog de $idt ?
Est-ce que la procédure est bien appelée à chaque join ?


RE: auto op - fedora - 31/01/2009

uand il joint un salon qu'il y a pas dans la liste il me met en pl "-1"
et pour ceux qui y sont 0 1 2 et s'identifi tjr au premier de la liste


RE: auto op - fedora - 01/02/2009

bonsoir,
apres avoir fait plusieurs test il ce auto op pas sr les salons genre : #test-1
il prend juste les salons en un seul mots.

j'trouve pas comment faire pour qu'il accepte toute sorte de salon :

#test-1 #test_1 ect ..

j'ai essayé de comprendre un peut avec ce tuto http://www.eggdrop-fr.org/initiation.php#7cond mais j'avoue étant debutant j'y arrive pas trop :/

cordialement


RE: auto op - fedora - 01/02/2009

merci CrazyCat tout fonctionne nikel maintenant.
j'avais totalement Zapé de mettre 5 fois le mot de pass :s

cordialement


RE: auto op - CrazyCat - 01/02/2009

si ton mot de passe est unique sur tous les salons, tu peux modifier comme ça:

tcl
set botpass "pass"
...
putserv "PRIVMSG [lindex $::botniu $idt] :op $::botpass $chan"
putserv "PRIVMSG [lindex $::botniu $idt] :voice $::botpass $chan"