Poster une réponse  Créer un sujet 
problème sur un principe de tcl [résolu]
Auteur Message
systak
Junior Member
**


Messages : 5
Groupe : Registered
Inscription : Apr 2009
Statut : Hors ligne
Message : #1
problème sur un principe de tcl [résolu]

bonjour tout le monde donc voilà le morceau de code qui va suivre est juste un petit exercice pour moi pour comprendre bien proprement comment fonctionne une exception dans un bind donc voilà le bind que je test de faire

principe une liste de nick admin a ne pas pouvoir kick ou meme de host
problème aucune réaction

Code :
set nadmin "Orion,systak,test"


bind pub - !xkick kick

proc kick {nick uhost hand chan arg} {
    global nadmin hadmin
    set n0 [lindex $arg 1]
    set c0 [lindex $arg 2]
        foreach nadmin $nadmin {
        if {[string match -nocase $nadmin]}  {
  putquick "kick $c0 $n0 kicked"
  }
}
}


je précise oui je débute vraiment sur ce sujet xD

merci de votre aide

Ce message a été modifié le: 27/05/2009 11:51 par MenzAgitat.

13/05/2009 10:51
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
CrazyCat
Administrator
*******


Messages : 1,344
Groupe : Administrators
Inscription : Apr 2004
Statut : Hors ligne
Message : #2
RE: problème sur un principe de tcl

Le but est donc, si je comprends bien, de kicker une personne sauf si elle est dans la liste ?

Le parcours du tableau est un peu excessif alors que tu peux rechercher directement dans la liste, et en plus il est faux: tu ne compares rien dans ton "string match", et il y a un problème de logique.
Imaginons que tu fasses !xkick systak, lorsque tu vas parcourir ton tableau, le premier item rencontré sera Orion, donc rien n'interdit (à ce moment) de kicker systak, ce qui sera fait. Le second bloquera (mais trop tard) et le troisième autorisera (et un kick sera fait sur un utilisateur déjà absent).

Voici plutôt ce que j'imagine:

TCL :
set nadmin "Orion,systak,test"
bind pub - !xkick kick
proc kick {nick uhost hand chan arg} {
   set n0 [string tolower [lindex $arg 0]]
   set protected [split [string tolower $::nadmin] ","]
   if {[lsearch $protected $n0] == -1} {
      putquick "kick $chan $n0 kicked"
   }
}


Trucs et astuces en programmation

Ce message a été modifié le: 13/05/2009 22:33 par CrazyCat.

13/05/2009 12:30
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
systak
Junior Member
**


Messages : 5
Groupe : Registered
Inscription : Apr 2009
Statut : Hors ligne
Message : #3
RE: problème sur un principe de tcl

merci bien pour les explications Smile je vais m exerce a tout sa Smile

13/05/2009 13:27
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
systak
Junior Member
**


Messages : 5
Groupe : Registered
Inscription : Apr 2009
Statut : Hors ligne
Message : #4
RE: problème sur un principe de tcl

j'ai essayer avec ce que tu a mis la j'ai une réponse en pl

[19:41] Tcl error [kick]: wrong # args: no script following "{[lsearch $protected $n0] == -1}" argument

de plus en regardant le code tout a l'heure a la fin tu met

}
} tu a donc un } en trop ou bien tu a oublie il ligne xD lol et la je doit dire que je comprend pas le retour en pl :s

13/05/2009 18:45
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
heretoc
Member
***


Messages : 184
Groupe : Registered
Inscription : Mar 2008
Statut : Hors ligne
Message : #5
RE: problème sur un principe de tcl

Comme il ta dit ces comme il l'imagine donc ce n'est pas forcement un code fonctionnel juste de quoi te permettre de te debrouiller.


Jeux video ne veut pas forcement dire NO LIFE - Facebook fan page
13/05/2009 19:04
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
MenzAgitat
Moderator ou à raison
*****


Messages : 498
Groupe : Moderators
Inscription : Jul 2007
Statut : Hors ligne
Message : #6
RE: problème sur un principe de tcl

il manque un "{" :

TCL :
set nadmin "Orion,systak,test"
bind pub - !xkick kick
proc kick {nick uhost hand chan arg} {
   set n0 [string tolower [lindex $arg 0]]
   set protected [split [string tolower $::nadmin] ","]
   if {[lsearch $protected $n0] == -1} {
      putquick "kick $chan $n0 kicked"
   }
}


toute l'actualité de mes scripts ici     (dernière mise à jour le 07/02/2012)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction. De quoi par implication, on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.

13/05/2009 19:11
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
systak
Junior Member
**


Messages : 5
Groupe : Registered
Inscription : Apr 2009
Statut : Hors ligne
Message : #7
RE: problème sur un principe de tcl

héhé merci MenzAgitat c'est vrai que la en voyant la correction je me suis ouaaaa trop bête ^^'

13/05/2009 19:33
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
CrazyCat
Administrator
*******


Messages : 1,344
Groupe : Administrators
Inscription : Apr 2004
Statut : Hors ligne
Message : #8
RE: problème sur un principe de tcl

J'ai modifié mon exemple pour le corriger, désolé de cette bévue Smile


Trucs et astuces en programmation
13/05/2009 22:34
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
systak
Junior Member
**


Messages : 5
Groupe : Registered
Inscription : Apr 2009
Statut : Hors ligne
Message : #9
RE: problème sur un principe de tcl

looool CrazyCat t'inquiète c'était ironique biensure hein mon niveau reste très bas mais je bidouille on va dire xD pas toujours dans l'ordre des choses certes mais bon Razz mais effectivement je suis arrive a ce que je voulais faire me reste 2 ou 3 fixe a faire sur le group de tcl mais c'est sur la bonne voix Smile

14/05/2009 08:42
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse  Créer un sujet 

Discussions probablement similaires...
Discussion: Auteur Réponses: Affichages: Dernier message
  [résolu] problème pl aliassangelius 21 618 13/07/2010 14:06
Dernier message: aliassangelius

Voir une version imprimable
Envoyer ce sujet à un ami
S'abonner au sujet | Ajouter le sujet aux favoris

Aller à :