auto op
#1
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
Répondre Avertir
#2
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"
   }
}


Répondre
#3
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
Répondre Avertir
#4
C'est qu'il n'y a pas d'erreur structurelle.
Ajoute donc des putlog pour savoir dans quelles conditions tu passes.
Répondre
#5
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]


Répondre Avertir
#6
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
Répondre Avertir
#7
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.
Répondre
#8
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é "
Répondre Avertir
#9
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.
Répondre
#10
maintenant il ne prend que le premier salon de la liste mais pas les suivants
Répondre Avertir
#11
Peut tu faire un putlog de $idt ?
Est-ce que la procédure est bien appelée à chaque join ?
Répondre
#12
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
Répondre Avertir
#13
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
Répondre Avertir
#14
merci CrazyCat tout fonctionne nikel maintenant.
j'avais totalement Zapé de mettre 5 fois le mot de pass :s

cordialement
Répondre Avertir
#15
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"


Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté