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


[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.
#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 :)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#3
Merci bien pour le coup de pouce :) ça me donnera effectivement une base pour faire ce que je veux faire.
#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> :/
#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>"

Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#6
Et l'alias CS n'existe pas forcément partout, donc il vaut mieux utiliser la seconde proposition de MenzAgitat
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#7
Ah d'accord ... J'avais tout simplement pas mis le "privmsg" ...

Merci à vous. :)
#8
Bonsoir,

Existe t'il un bind du genre qui log tous les discussions d'un salon sur le salon services par exemple ?
#9
Tu peux faire un bind pubm - "#services *"
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#10
Excusez moi du retard. Merci à toi pour le bind ça marche niquel. :)

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 ...
#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)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#12
Merci à vous pour vos aides. :)


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Bug] Soucis avec un tcl Dark.tcl de Kyrien d'après la création de GeoZzZ [Sujet Reformulé] KeeViiNou 2 3,247 24/02/2017, 10:59
Last Post: KeeViiNou
  [Résolu] Commande /plainte pseudo raison gérer par un eggdrop avec un alias Unrealircd Alucard`68 3 3,969 01/02/2017, 03:39
Last Post: Alucard`68
  [Demande] Soucis avec expr aliasangelius 6 4,162 13/01/2017, 18:06
Last Post: aliasangelius
  Soucis avec un tcl KeeViiNou 1 3,698 08/05/2016, 14:06
Last Post: KeeViiNou
  Soucis de codage avec un kick KeeViiNou 14 8,491 26/03/2014, 23:18
Last Post: KeeViiNou
  Soucis avec un codage KeeViiNou 9 6,324 14/03/2014, 21:22
Last Post: aliasangelius
  Soucis avec un tcl de sajoin KeeViiNou 15 11,131 14/03/2014, 10:51
Last Post: KeeViiNou
  [Demande] Afficher un messsage avec une commande lilo 2 3,850 02/08/2013, 09:59
Last Post: lilo
  Petit soucis avec un script d'annonce de la saint du jour, etc... loulou7593 3 5,900 19/11/2011, 14:53
Last Post: CrazyCat
  petit soucis avec logger lesny 54 33,222 12/08/2011, 18:52
Last Post: lesny

Forum Jump:


Users browsing this thread: 1 Guest(s)