[Résolu] Soucis avec une commande
#1
Bonjour.

Voici mon soucis ... J'ai un gros soucis avec un code. Voulant faire la commande /msg Operator voice #salon Hephaistos dans mon serveur, ça me mets d'autres modes ...

ça me mets ceci : 

[ 04:25:32 ] ¤ Mode ¤ Operator -> +ieh +v!*@* Hephaistos

Voici mon code : 
TCL
bind msg - voice voice
proc voice { nick host hand channel args } {
global animateurs operateurs ircops admins netadmins voice
 foreach vhost $animateurs {
 if [string match -nocase $vhost $host]  {
global operlog;
putquick "MODE $channel +v $nick"
putquick "PRIVMSG $operlog 10 $nick 4se voice sur 10 $channel 7Par moi ";
   }  
 }
}



C'est la première fois que je fait un code utilisant la commande /msg <bot> ...

Merci à vous d'avance.
Répondre Avertir
#2
Il y a plusieurs soucis dans ta procédure.
Tout d'abord, tu fais un /msg, donc ce n'est pas sur un canal mais en privé. La procédure ne reçoit pas le canal, il est dans les arguments (voir : bind msg). Et le $nick reçu est celui de la personne qui contacte l'eggdrop, or tu veux voicer la personne qui est en second argument de ta commande (que je passe en "victim").
Ensuite, utiliser un putquick "mode" n'est pas la meilleure des solutions, utilise plutôt pushmode et flushmode.

Voici ce que pourrait donner ton script modifié:

TCL
bind msg - voice voice
proc voice { nick host hand text} {
   global animateurs operateurs ircops admins netadmins voice operlog
   set args [split $text]
   if { [llength $args]<2 } {
      putserv "PRIVMSG $nick :Il manque des paramètres, consulte l'aide"
      return 0
   }
   set channel [lindex $args 0]
   set victim [lindex $args 1]
   foreach vhost $animateurs {
      if [string match -nocase $vhost $host]  {
         pushmode $channel +v $victim
         putquick "PRIVMSG $operlog 10 $nick 4se voice sur 10 $channel 7Par moi ";
      }  
   }
   flushmode $channel
}



Ce tcl n'est pas optimisé du tout, mais au moins tu as une base pour mieux faire Smile
Répondre
#3
Merci bien pour le coup de pouce Smile ça me donnera effectivement une base pour faire ce que je veux faire.
Répondre Avertir
#4
Une dernière question ^^

Comment fait on pour faire une commande chanserv (par exemple) via mon eggdrop ?

Exemple :

/msg Operator addfounder #salon <pseudo>

Pour faire :

/cs set #salon founder <pseudo>

J'ai fait des tests avec ce que tu m'as passé (pour les modes) mais ça ne prend pas en compte le "/cs" mais juste addounder #salon <pseudo> :/
Répondre Avertir
#5
Pour envoyer une commande au serveur, utilise putserv.

Exemple :
TCL
putserv "CS set #salon founder <pseudo>"


 
 
Mais comme CS est un alias pour envoyer un message à ChanServ, tu peux aussi faire :
TCL
puthelp "PRIVMSG ChanServ :set #salon founder <pseudo>"


Répondre Avertir
#6
Et l'alias CS n'existe pas forcément partout, donc il vaut mieux utiliser la seconde proposition de MenzAgitat
Répondre
#7
Ah d'accord ... J'avais tout simplement pas mis le "privmsg" ...

Merci à vous. Smile
Répondre Avertir
#8
Bonsoir,

Existe t'il un bind du genre qui log tous les discussions d'un salon sur le salon services par exemple ?
Répondre Avertir
#9
Tu peux faire un bind pubm - "#services *"
Répondre
#10
Excusez moi du retard. Merci à toi pour le bind ça marche niquel. Smile

Cepdendant, pour mon dernier code, j'ai un petit soucis. J'ai utiliser le même code que MenzAgitat m'a donner pour le "founder" pour add une vhost, mais cela me dit "erreur de commande". ça faisait quelques jours que je me penchais là dessus mais apparemment je n'y arrive pas ...
Répondre Avertir
#11
Pour ajouter une vhost, la commande à envoyer est:
TCL
puthelp "PRIVMSG HostServ :set <pseudo> <vhost>"


Tu peux aussi remplacer set par setall pour mettre la vhost à tous les nicks de l'utilisateur (s'il les a groupés)
Répondre
#12
Merci à vous pour vos aides. Smile
Répondre Avertir


Atteindre :


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