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


TCL Auto-sajoin fonctionne partiellement.
#1
J'avais besoin d'un TCL pour l'autosajoin des anims aux salons staff, donc j'ai pris celui que blacknight avait posté sur le forum, j'ai essayé de le modifier pour le débug, y'a que la 1ère partie qui fonctionne correctement "!addsaj pseudo #salon", le reste déconne....
Je voudrais qu'il liste les pseudos ajoutés avec leurs salons d'autosaj en utilisant la commande !listsaj, et qu'il retire les sajs du nick en tapant !delsaj nick
J'espère que vous pourriez m'aider afin de le corriger. Merci d'avance.

Code :
set vhostkill {
   *@NetAdmin.*****.org
   *@TechAdmin.*****.org
   *@ChanAdmin.*****.org
   *@ChefZone.*****.org
   *@Chanop.*****.org
   *@CoChefZone.*****.org
}

set vhostplus {
   *@NetAdmin.*****.org
   *@TechAdmin.*****.org
   *@ChanAdmin.*****.org
   *@ChefZone.*****.org
   *@Chanop.*****.org
   *@CoChefZone.*****.org

}


set salonstaff {
"#Staff"
"#Staff+"
"#Bureau"
"#Control"
"#Bravo"
"#Tango"
"#plaintes"
}

bind pub - !addsaj add_saj
bind pub - !delsaj del_saj
bind pub - !listsaj list_saj
bind join - "*" auto_saj


# configuration NE PAS EDITER
set sajdb "sajoin.txt"
set sajuse ""



# Les Procs

proc add_saj {nick host hand chan text} {
global vhostkill sajdb sajuse
foreach vhostaddautosaj $vhostkill {
  if [string match -nocase $vhostaddautosaj $host]  {
set victim [lindex $text 0]
set vchan [split $text 1]
set sajt [del_sajuse $nick]
set sajuse "[lrange $sajuse 0 end] $victim $vchan"
set f [open "$sajdb" "a"]
puts $f "$sajuse"
close $f
putquick "PRIVMSG $chan : \002\00303OK.\002\00312 AutoJoin vers $vchan ajouté pour $victim.\003"
}
}
}


proc del_saj {nick host hand chan text} {
global vhostkill sajdb sajuse
foreach vhostdelautosaj $vhostkill {
  if [string match -nocase $vhostdelautosaj $host]  {
set sajuse [del_sajuse [lindex $text 0]]
set f [open "$sajdb" "a"]
puts $f "$sajuse"
close $f
putquick "PRIVMSG $chan : \002\00303OK.\002\00312 [lindex $text 0] n'a plus d'AutoJoin.\003"
}
}
}

proc list_saj {nick host hand chan text} {
global vhostkill sajdb sajuse
foreach vhostshowautosaj $vhostkill {
  if [string match -nocase $vhostshowautosaj $host]  {
set saju [llength $sajuse]
set listsaj ""
set i "0"
putquick "PRIVMSG $chan :\002\00306L\002\00312iste \002D\002es \002\00304A\002uto-\002J\002oin \:"
while { $i <= $saju } {
set saj [lindex $sajuse $i]
set saj [split $saj "@"]
set sajn [lindex $saj 0]
set sajc [lindex $saj 1]
if { $sajn != "" } {
set listsaj "[lrange $listsaj 0 end] \00304$sajn \00312(\00303$sajc\00312), "
}
if { [llength $listsaj] >= "6" } {
putquick "PRIVMSG $chan :$listsaj"
set listsaj ""
}
incr i
}
if { $listsaj != "" } {
putquick "PRIVMSG $chan :$listsaj"
set listsaj ""
}
putquick "PRIVMSG $chan :\002\00306F\002\00312in \002D\002e \002L\002a \002L\002iste."
return
}
}
}

proc del_sajuse { nick } {
global sajuse
set saju [llength $sajuse]
set listsaj ""
set sajx "0"
set i "0"
while { $i <= $saju } {
set sajc [lindex $sajuse $i]
set sajt [split $sajc "@"]
set sajy [lindex $sajt 0]
if {![string match -nocase $nick $sajy]} {
set listsaj "[lrange $listsaj 0 end] $sajc"
} else { set sajx 1 }
incr i
}
return $listsaj
}

proc auto_saj {nick host hand chan} {
global sajuse
set saju [llength $sajuse]
set listsaj ""
set i "0"
while { $i <= $saju } {
set saj [lindex $sajuse $i]
set saj [split $saj "@"]
set sajn [lindex $saj 0]
set sajc [lindex $saj 1]
if {[string match -nocase $nick $sajn]} {
set ::timernick $nick
set ::timerchan $sajc
utimer 5 {
putquick "SAJOIN $::timernick $::timerchan"
set ::timernick ""
set ::timerchan ""
}
}
incr i
}
return
}
  Répondre
#2
Bonjour,

as-tu une erreur en pl ou autre ?
  Répondre
#3
Bonjour alias_angelius,

Non, je n'ai pas de message d'erreur en party-line, mais le soucis c'est que quand j'ajoute un pseudo pour que le bot l'autosaj à un salon précis, le bot ne saj pas le nick vers le salon en question, de plus quand je fais !listsaj pour consulter la liste des nicks ajoutés dans l'autosaj après un rehash, je n'ai rien comme si la liste est vide.
Avec la commande !delsaj nick pour retirer l'autosaj d'un nick, le bot l'a prenne en considération même si je ne précise pas le nick, je sais pas ce qu'il va virer lol.
Code :
.[16:50:28] <~Ryan> !addsaj Ryan #aide
.[16:50:28] <Aristide>  OK. AutoJoin vers {Ryan #aide} ajouté pour Ryan .
.[16:50:34] <~Ryan> Listsaj
.[16:50:42] <~Ryan> !listsaj
.[16:50:42] <Aristide> Liste Des Auto-Join :
.[16:50:42] <Aristide> Ryan (), Ryan #aide (),
.[16:50:42] <Aristide> Fin De La Liste.
.[16:50:59] <~Ryan> !delsaj Ryan
.[16:50:59] <Aristide>  OK. Ryan n'a plus d'AutoJoin.
.[16:51:17] <~Ryan> !listsaj
.[16:51:17] <Aristide> Liste Des Auto-Join :
.[16:51:17] <Aristide> Ryan (), #aide (),
.[16:51:17] <Aristide> Fin De La Liste.
  Répondre
#4
si tu fait !delsaj Ryan #aide
sa donne ?
  Répondre
#5
Déjà on voit des erreurs sur les arguments (OK. AutoJoin vers {Ryan #aide} ajouté pour Ryan .)
Je regarde ça tranquillement.
  Répondre
#6
salut,

voila le tcl corrigé

utilisation:
!addsaj pseudo #salon
!delsaj pseudo #salon
!listsaj ?#salon?

sajoin.tcl
C'est en reconnaissant ses erreurs que l'on progresse ;)
Absent
  Répondre
#7
Bonjour tout le monde !

@djkenny: Merci pour le temps que tu as consacré afin de corriger ce TCL, c'est vraiment sympa de ta part, mais juste une chose j'ai mis le TCL corrigé et puis le bot ne réagis à aucune action. Je n'ai aucune erreur en party-line.
  Répondre
#8
es tu sûr de l'avoir correctement chargé?
C'est en reconnaissant ses erreurs que l'on progresse ;)
Absent
  Répondre
#9
Bonjour djkenny :)

Oui, je l'ai correctement chargé, et je n'ai pas un message d'erreur lors du démarrage. Est ce normale cela ?
  Répondre
#10
as tu le bon host?
tcl
	variable vhostkill {
		*@NetAdmin.*****.org
		*@TechAdmin.*****.org
		*@ChanAdmin.*****.org
		*@ChefZone.*****.org
		*@Chanop.*****.org
		*@CoChefZone.*****.org
	}
 
.....
 
if {[lsearch -nocase $vhostkill $host]==-1} return
....


C'est en reconnaissant ses erreurs que l'on progresse ;)
Absent
  Répondre
#11
salut :)

question conne peut etre mais je la pose . le bot a-il les flags adequat ?

Cordialement.
  Répondre
#12
Oui djkenny ma vHost est bien activée, NetAdmin.*****.org
  Répondre
#13
Bonjour cestlemien

Oui, le bot a bien une O-line (IrcOp)
  Répondre
#14
Au moins, il devait répondre au requête !addsaj Nick #salon, mais là il n'est même pas synchro avec mes commandes
  Répondre
#15
si tu n'as pas un des hosts configuré dans la variable, le bot ne répondra à rien du tout
C'est en reconnaissant ses erreurs que l'on progresse ;)
Absent
  Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  [Résolu] Youtube tcl (Zurl.tcl) ne fonctionne plus Krypte 23 9,984 28/04/2017, 18:22
Dernier message: Alucard`68
Sad [Résolu] Aucune commande ne fonctionne Alucard`68 4 2,611 25/08/2016, 18:28
Dernier message: Alucard`68
  Soucis avec un tcl de sajoin KeeViiNou 15 8,247 14/03/2014, 10:51
Dernier message: KeeViiNou
Sad Problème sajoin sur un salon. Alucard`68 1 2,746 22/04/2012, 16:58
Dernier message: CrazyCat
  Sajoin automatique - Probleme de pseudonyme heretoc 3 2,686 01/06/2010, 15:50
Dernier message: heretoc
  Sajoin automatique avec une database heretoc 5 3,205 07/05/2010, 22:51
Dernier message: heretoc
  Sajoin Par Vhost Babytigrou16 10 5,757 25/06/2009, 17:41
Dernier message: BlackNight
  SAJOIN: pas bien CrazyCat 0 2,906 30/10/2008, 17:52
Dernier message: CrazyCat

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)