Communauté sur les Eggdrops - Community about Eggdrops
utiliser une procédure d'un script A dans un script B - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (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)
+--- Thread: utiliser une procédure d'un script A dans un script B (/showthread.php?tid=292)



utiliser une procédure d'un script A dans un script B - Ark - 31/10/2008

bonjour,

tout ou presque est dans le titre.

j'ai un script A.tcl avec une procédure de scan qui se lance sur les utilisateurs qui entrent sur le chan, et que je peux lancer manuellement en party line

je veux éviter de modifier le script A.tcl

je veux créer dans un script B.tcl une procédure qui lance toutes les heures la procédure de scan. pour l'instant j'ai le timer, mais je ne sais pas comment appeler la procédure dans l'autre script?

j'imagine avec "global", mais comme j'ai jamais utilisé...

merci d'avance.


RE: utiliser une procédure d'un script A dans un script B - CrazyCat - 31/10/2008

Il y a deux possibilités:
- soit le script A est "simple" et du moment qu'il est chargé avant B (par sécurité), tu peux appeler la procédure depuis B,
- soit le script A possède un namespace, il te faut donc appeler la procédure en la "nommant" complètement.

Exemple 1:

tcl
# script A
bind - join "#toto *" scan
proc scan {nick uhost handle chan} {
   ...
}
 
#script B
proc timed {
   scan
   timer 60 timed
}


Exemple 2:

tcl
# script A
namespace eval Scan {
   bind - join "#toto *" Scan::scan
   proc scan {nick uhost handle chan} {
      ...
   }
 
#script B
proc timed {
   Scan::scan 
   timer 60 timed
}


Bien entendu, je n'ai pas mis dans l'exemple la boucle qui va faire scanner chaque utilisateur du canal


RE: utiliser une procédure d'un script A dans un script B - Ark - 07/11/2008

Merci de la rapidité de la réponse,
et désolé pour mon silence.

J'ai testé mais sans succès

J'essaye autre chose,
encore merci