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


[aide] comment rajouter des hosts et des salons en plus pour sajoin
#1
Bonjour à tous .
J'ai un problème que je n'arrive pas à résoudre tout seul ( vu mon niveau )
je vous explique mon problème dans se tcl je peux sajoin que *@StaffAnim.monsite.net sur #Staff et #Team
et je souhaiterais rajouter d'autre hosts pour des salons différent

genre *@Anim.monsite.net sajoin sur #Team
et *@Staff.monsite.net sajoin sur #Staff

comment je peux faire pour rajouter ces deux hosts et les deux salons dans mon code ?


tcl
proc putfast {arg} {
append arg "\n"
putnow $arg -oneline
#putnow 0 [string length $arg] $arg
}
 
set vhostsaj {
*@StaffAnim.monsite.net
}
bind join - "*" mesajoin
proc mesajoin {nick host hand arg} {
global vhostsaj
foreach vhost1 $vhostsaj {
if [string match -nocase $vhost1 $host] {
putfast "SAJOIN $nick #Staff"
putfast "SAJOIN $nick #Team"
} 
}
}


Je vous remercie pour vos réponses donné .
#2
Il faut un peu adapter le script pour avoir une association vhost => canaux


tcl
set vhostsaj {
   "*@StaffAnim.monsite.net" "#canal1,#canal2"
   "*@Anim.monsite.net" "#canal2"
}
 
bind join - "*" mesajoin
proc mesajoin {nick host hand arg} {
   foreach vhost [array names $::vhostsaj] {
      if {[string match -nocase $vhost $host]]} {
         putserv "SAJOIN $nick $::vhostsaj($vhost)"
      }
   }
}


Bon, il y a sûrement un petit souci sur l'utilisation du tableau dans le putserv, ainsi que dans la possibilité de faire sajoin #canal1,#canal2, mais de toutes manières le sajoin, c'est le mal.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#3
Bonsoir CrazyCat.
Merci bien pour l'aide je vais testé , pour la question du sajoin je sais bien que sais pas terrible mais vu que l'auto invite ne fonctionne pas je ne peux que opté pour cette solution :/


tcl
while executing
"proc mesajoin {nick host hand arg} {
   foreach vhost [array names $::vhostsaj] {
      if {[string match -nocase $vhost $host]] {
         putserv "S..."
    (file "scripts/sajoin.tcl" line 14)
invoked from within


le invoked from within ca veux dire qu'il manque ca { ?
après le reste je ne sais pas.
#4
Salut, Non je pense plutôt un : } Oublier :)


tcl
if {[string match -nocase $vhost $host]] {


Essaye de remplacer par :


tcl
if {[string match -nocase $vhost $host]]} {


De plus si l'auto invite ne fonctionne pas y'a aussi : putserv "NOTICE $nick :..." Je dit sa je dit rien
#5
Salut aliasangelius le bot se lance bien mais aucunes erreurs en pl et ca ne fonctionne pas .
Ceci dit si il faut en autoinvite je ne suis pas contre mais bon je ne sais pas codé le tcl .

J'ai changé ca:
putserv "SAJOIN $nick $::vhostsaj($vhost)

par ca:
putserv "SAJOIN $nick $::vhostsaj($vhost)"

ca fonctionne toujours pas
#6
Re j'ai trouvé comment faire ça fonctionne bien pour les sajoins .
Je vais tenté de modifier le code pour qu'il invite bye.
{résolu}
#7
J'ai corrigé dans le source initial les deux erreurs de syntaxe (le } et le " manquants), mais il serait sympa de ta part de nous montrer ton code fonctionnel.
Je trouve ça très détestable les personnes qui demandent une aide qu'on leur apporte bien gentiment et qui, lorsqu'elles corrigent une erreur dans les codes fournis, ne diffusent pas leur solution.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#8
Salut,

Et pourquoi:
•Ne pas utiliser simplement le fichier de configuration du serveur, et non passer par un eggdrop ?
•Ou peut une etre piste par flag et non par vhost ...
-flags XX/sajoin salon XX
-flags yy/sajoin salonXX,YY

Cordialement
#9
(17/07/2013, 10:04)cestlemien Wrote: •Ne pas utiliser simplement le fichier de configuration du serveur, et non passer par un eggdrop ?
Tout simplement parce que l'on a pas forcément la main sur le serveur. Ce genre de TCL, en utilisant des invite plutôt que des sajoin, fonctionne partout même si l'eggdrop n'est pas ircop.
(17/07/2013, 10:04)cestlemien Wrote: •Ou peut une etre piste par flag et non par vhost ...
-flags XX/sajoin salon XX
-flags yy/sajoin salonXX,YY
C'est effectivement une solution bien plus propre, mais beaucoup (trop) ici préfèrent gérer par vhost, avec tout ce que ça implique. Bref, ça fait des tcl limités pour les personnes ayant la main sur les vhosts, et c'est mal.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#10
Bonjour, cestlemien et CrazyCat.

j'ai fait ça comme ceci:


tcl
set vhostsaj {
*@StaffAnim.monsite.net
}
 
set vhostsaj1 {
*@Staff.monsite.net
}
 
set vhostsaj2 {
*@Anim.monsite.net
}
 
bind join - "*" mesajoin
 proc mesajoin {nick host hand arg} {
  global vhostsaj
    foreach vhost1 $vhostsaj {
      if [string match -nocase $vhost1 $host] {
       puthelp "SAJOIN $nick #Staff"
       puthelp "SAJOIN $nick #Team"
      } 
   }
}
 
 
bind join - "*" mesajoin2
 proc mesajoin2 {nick host hand arg} {
  global vhostsaj1
    foreach vhost2 $vhostsaj1 {
      if [string match -nocase $vhost2 $host] {
       puthelp "SAJOIN $nick #Staff"
      } 
   }
}
 
bind join - "*" mesajoin3
 proc mesajoin3 {nick host hand arg} {
  global vhostsaj2
   foreach vhost3 $vhostsaj2 {
     if [string match -nocase $vhost3 $host] {
       puthelp "SAJOIN $nick #Team"
      } 
   }
}
 
putlog "sajoin.tcl bien chargé"


Passé par fichier de configuration du serveur peut être une meilleur idée après je ne sais pas comment modifier celui ci pour qu'il sajoin ,c'est une autre histoire :/

Désolé de ne pas avoir diffusé le code plus tot.
#11
C'est à dire qu'à chaque join, tu vas lancer 3 procédures ?
Et je ne vois pas l'intérêt d'un foreach lorsqu'il n'y a qu'une entrée dans tes listes...

Bref, ça fonctionne mais c'est très laid et très peu optimisé.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#12
Bonsoir,

Donc pour résumer ton vhost là ne sert strictement à rien.. Pour plusieurs raison.

1) Tu devrais utiliser le système de host pré défini par eggdrop ce qui permets d'avoir un meilleur système pour ma part.
2) Ensuite fonctionner par flag ET plus simple pourquoi ? Car lorsque tu va attribuer disons je vais dire un exemple ne dessous.

Je suis sur irc avec les flags ABC.
Level A "admin", Level B "Co-Admin", Level C "Opérateur"

Je veut que Admin aille sur salon abc, je veut que Co-Admin aille sur salon bc, Je veut que Opérateur aille sur salon c.

Donc là tu utilise simplement le sytème de flag avec un simple if.. C'est plus simple si l'eggdrop voie que Tel personne à le flag ABC il va les faire joindre sur les 3 salon par exemple.

Si co admin il les fera joindre que sur deux salon.

Etc tu vois ce que je veut dire ?


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Demande] besoin d'aide pour finaliser berni13 6 1,566 18/11/2020, 00:18
Last Post: berni13
  Rajouter un ban au troisième kick Alucard`68 9 4,711 02/03/2017, 00:14
Last Post: Alucard`68
  TCL Auto-sajoin fonctionne partiellement. Aristide 24 15,195 24/02/2017, 17:36
Last Post: cestlemien
Big Grin demande d'aide pour codage KeeViiNou 4 4,564 04/07/2016, 07:55
Last Post: CrazyCat
  aide pour un script svp s2drk 3 4,991 11/08/2014, 23:23
Last Post: CrazyCat
  [Demande] Besoin d'aide pour youtubeURL.tcl hades_48 4 5,082 01/07/2014, 15:41
Last Post: hades_48
  Soucis avec un tcl de sajoin KeeViiNou 15 11,131 14/03/2014, 10:51
Last Post: KeeViiNou
  [Demande] aide pour une modification pour whois loulou7593 21 13,266 29/10/2013, 13:35
Last Post: loulou7593
  aide pour le script Nostromo1st 13 8,139 16/09/2013, 16:24
Last Post: Nostromo1st
  aide pour trivia zyrte 5 5,470 19/11/2012, 13:13
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)