Communauté Eggdrop
Commande réserver a certaine personne. - 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 : Commande réserver a certaine personne. (/showthread.php?tid=1161)



Commande réserver a certaine personne. - Alucard`68 - 23/03/2012

Bonjour,

Alors voila je suis entrain de codé un tcl pour ajouter les différents axx du genre !addvoice pseudo

mon code fonctionne très bien. Mais se que j'aimerai c'est que 'est commande soit accessible a certain pseudo.

voila le code
TCL
bind pub - !addvoice pub:addvoice
bind pub - !delvoice pub:delvoice
 
proc pub:axxvoice { nick uhost handle chan arg } {
  set pseudo [split $arg]
  if {$pseudo != ""} {
    putserv "cs vop $chan add $pseudo"
    putserv "PRIVMSG #Services :\00312Ajout de\0034 $pseudo \00312au poste d'animateur sur le salon\0037 $chan"
    putserv "NOTICE $nick :\00312L'axx permanant de voice a bien été ajouté à\0034 $pseudo \00312sur le salon\0037 $chan"
  }
}
 
proc pub:delvoice { nick uhost handle chan arg } {
  set pseudo [split $arg]
  if {$pseudo != ""} {
    putserv "cs vop $chan del $pseudo"
    putserv "PRIVMSG #Services :\00312Supression de\0034 $pseudo \00312au poste d'animateur sur le salon\0037 $chan"
    putserv "NOTICE $nick :\00312L'axx permanant de voice a bien été suprimé à\0034 $pseudo \00312sur le salon\0037 $chan"
  }
}


j'avais penser faire comme ça
TCL
proc pub:axxvoice { nick uhost handle chan arg } {
  set pseudo [split $arg]
  if {$pseudo != "Alucard`68 jessica"} {
    putserv "cs vop $chan add $pseudo"
    putserv "PRIVMSG #Services :\00312Ajout de\0034 $pseudo \00312au poste d'animateur sur le salon\0037 $chan"
    putserv "NOTICE $nick :\00312L'axx permanant de voice a bien été ajouté à\0034 $pseudo \00312sur le salon\0037 $chan"
  }
}


mais cela ne fonctionne pas :s
voila le message d'erreur que j'ai en PL.
Code :
<Jessica`68> [18:25:55] Tcl error [pub:addvoice]: invalid command name "pub:addvoice"
Comment je pourrais faire. Je ne vois pas comment.

Merci d'avance pour votre aide future.

Cordialement.


RE: Commande réserver a certaine personne. - Alucard`68 - 24/03/2012

Bonjour,

J'ai remarqué mon erreur au niveau du bind pub - !addvoice...
j'ai corrigé cette erreur et je n'ai plus de message d'erreur en PL.
Mais cela ne fonctionne toujours pas... n'importe qu'elle user peu mettre un axx.

quelqu'un aurai une idée ?

Merci d'avance.

Cordialement


RE: Commande réserver a certaine personne. - djkenny - 24/03/2012

salut,

regardes du coté des flags dans la doc de eggdrop Wink


RE: Commande réserver a certaine personne. - Alucard`68 - 24/03/2012

Bonjour, je ne comprend pas grands chose au flags ni comment insérer celle si dans mon code...

j'aimerais avoir une liste de pseudo a qui seul ces commandes seront accessible

mais j'ai aucune idée de la façon de mettre ça en place.

Merci d'avance.

Cordialement.


RE: Commande réserver a certaine personne. - CrazyCat - 24/03/2012

Les flags sont fait pour réserver des commandes à des groupes de personnes, c'est à dire que les personnes doivent être enregistrées dans l'eggdrop et avoir un niveau (global sur l'eggdrop ou propre à un canal).
Il n'y a en natif aucune gestion par nick, le nick étant la chose la moins sûre sur IRC.


RE: Commande réserver a certaine personne. - Alucard`68 - 24/03/2012

d'accord je comprend,

donc faut que je mette un axx a certaine personne de mon staff. Mais comment inséré une flag au code j'ai trouvé sa en cherchant sur le forum je l'es mi dans mon code mais se marche pas.

TCL
bind pub - !addvoice pub:axxvoice
bind pub - !delvoice pub:delvoice
 
 
proc pub:axxvoice { nick uhost handle chan arg } {
  set pseudo [split $arg]
  if {$pseudo != ""}
  if [matchattr $nick Z] {
    putserv "cs vop $chan add $pseudo"
    putserv "PRIVMSG #Services :\00312Ajout de\0034 $pseudo \00312au poste de voice sur le salon\0037 $chan"
    putserv "NOTICE $nick :\00312L'axx permanant de voice a bien été ajouté à\0034 $pseudo \00312sur le salon\0037 $chan"
  }
}
 
proc pub:delvoice { nick uhost handle chan arg } {
  set pseudo [split $arg]
  if {$pseudo != ""}
  if [matchattr $nick Z] {
    putserv "cs vop $chan del $pseudo"
    putserv "PRIVMSG #Services :\00312Supression de\0034 $pseudo \00312au poste d'animateur sur le salon\0037 $chan"
    putserv "NOTICE $nick :\00312L'axx permanant de voice a bien été suprimé à\0034 $pseudo \00312sur le salon\0037 $chan"
  }
}


voila le message d'erreur:
Code :
[17:58:17] <Jessica`68> [17:58:26] Tcl error [pub:axxvoice]: wrong # args: no script following "$pseudo != """ argument
Et il me semble que le flag Z si met ircop et netadmin cela fonctionnera t'il ?
je ne comprend vraiment pas comment faire :s

Cordialement.


RE: Commande réserver a certaine personne. - CrazyCat - 24/03/2012

Tout d'abord, pour ton erreur:
TCL
if {$pseudo != ""}


Comme te dit le message d'erreur, il n'y a aucune instruction après. Ajoute donc une accolade, que tu refermeras à la fin de la procédure.

Quant au Z... Tu confonds les flags dans l'eggdrop et ceux du serveur. L'eggdrop ne connait pas les flags serveur. Pour lui, un netadmin est un utilisateur lambda s'il n'est pas dans sa userlist.


RE: Commande réserver a certaine personne. - Alucard`68 - 25/03/2012

Bonjour,

Alors j'ai totalement repensé mon code. Mais j'ai un petit souci.

TCL
set axx_ver "1"
set axx_author "Alucard68"
set vhostaxx {
  *@domaine.tld
  *@domaine.tld
  *@domaine.tld
}
 
bind pub - !adv axxvoice
 
proc axxvoice { nick host hand channel arg } {
  global vhostaxx axxvoice
  foreach vhost $vhostaxx {
  if [string match -nocase $vhost $host] {
    putquick "cs access $chan add $arg 3"
    putquick "NOTICE $nick :\00312L'axx permanant devoice a bien été ajouté à\0034 $arg \00312sur le salon\0037 $chan"
    putquick "PRIVMSG #Services :\00312Ajout de\0034 $arg \00312au poste d'animateur sur le salon\0037 $chan"
    }
  }
}
 
putlog "\00312Axx Version\0037 $axx_ver \00312By\0034 $axx_author \00312loaded"


Bien sur les vhost son bien faite sur mon fichier.
J'ai un message d'erreur en PL qui es le suivant:
Code :
[11:50:45] Tcl error [axxvoice]: can't read "chan": no such variable

$chan ne fonctionne pas par quoi je peu la remplacer parce que la je ne vois pas du tout.

Merci d'avance pour votre aide.

Cordialement.


RE: Commande réserver a certaine personne. - Alucard`68 - 25/03/2012

Voila j'ai corriger mon erreur. j'ai tout simplement remplacé $chan par $channel et cela fonctionne parfaitement.

Encore merci pour votre aide.

Cordialement.