Eggdrop & Tcl

Base de connaissances eggdrop et tcl

Outils pour utilisateurs

Outils du site


scripts:index

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
scripts:index [2023/10/19 10:53] – créée CrazyCatscripts:index [2023/10/21 13:31] (Version actuelle) – [Voir aussi] CrazyCat
Ligne 16: Ligne 16:
 Pensez toujours à mettre un commentaire expliquant l'utilité de la variable et, si besoin est, un ou plusieurs exemples. Pensez toujours à mettre un commentaire expliquant l'utilité de la variable et, si besoin est, un ou plusieurs exemples.
 ==== Les déclencheurs ==== ==== Les déclencheurs ====
-Les déclencheurs, ou Binds (contrainte) sont les éléments qui permettront à l'Eggdrop de réagir à un évènement qui peut être une action utilisateur (un message en canal par exemple), une action propre à l'eggdrop (une connexion au serveur) ou un évènement programmé (une date).+Les déclencheurs, ou [[:scripts:binds]] (contrainte) sont les éléments qui permettront à l'Eggdrop de réagir à un évènement qui peut être une action utilisateur (un message en canal par exemple), une action propre à l'eggdrop (une connexion au serveur) ou un évènement programmé (une date).
  
 Certains préfèrent mettre les binds avant les procédures qui en découlent, d'autres préfèrent lister tous les binds au début du script. En règle générale, il vaut mieux les mettre ensemble car il n'est pas rare que plusieurs binds appellent la même fonction. Certains préfèrent mettre les binds avant les procédures qui en découlent, d'autres préfèrent lister tous les binds au début du script. En règle générale, il vaut mieux les mettre ensemble car il n'est pas rare que plusieurs binds appellent la même fonction.
-Les fonctions+<WRAP center round tip 80%> 
 +Une très bonne idée est de déclarer les déclencheurs à la fin du script, avant [[#les_informations_de_chargement|les informations de chargement]]. Cela permet de ne pas les avoir d'activés si le script provoque une erreur lors de son chargement. 
 +</WRAP>
  
 +==== Les fonctions ====
 En Tcl, les fonctions sont appelées procédures. Une procédure reçoit une liste d'arguments, la traite et renvoit le résultat du traitement. En Tcl, les fonctions sont appelées procédures. Une procédure reçoit une liste d'arguments, la traite et renvoit le résultat du traitement.
 +
 ==== Les informations de chargement ==== ==== Les informations de chargement ====
 Il est courant de mettre à la fin du script une petite ligne qui indiquera en Party-Line que le script est bien chargé. Il est courant de mettre à la fin du script une petite ligne qui indiquera en Party-Line que le script est bien chargé.
 ==== Exemple de structure ==== ==== Exemple de structure ====
 <code tcl># <code tcl>#
-# Script example Version 1.0+# Script exemple Version 1.0
 # #
 # Auteur: CrazyCat <crazycat@mail.invalid.com> # Auteur: CrazyCat <crazycat@mail.invalid.com>
Ligne 38: Ligne 42:
 # CONFIGURATION # CONFIGURATION
 # message à afficher # message à afficher
-set ex_msg "L'exemple est réussi"+set smsg "L'exemple est réussi"
    
 # NE PAS MODIFIER CI-DESSOUS # NE PAS MODIFIER CI-DESSOUS
-bind pub - "!exemple" exemple:repond 
    
-proc exemple:repond {nick uhost handle chan args} { +proc pub.display {nick uhost handle chan args} { 
-   global ex_msg +   putserv "PRIVMSG $chan :$::smsg"
-   putserv "PRIVMSG $chan :$ex_msg"+
    return 1    return 1
 } }
-  + 
-putlog "example 1.0 chargé"</code>+bind pub - "!exemple" pub.display 
 + 
 +putlog "exemple 1.0 chargé"</code>
 ===== Variables ===== ===== Variables =====
 Les variables peuvent être définies en deux groupes, les variables locales et les variables globales. Les variables peuvent être définies en deux groupes, les variables locales et les variables globales.
Ligne 55: Ligne 59:
 Elles sont habituellement définies au sein d'une procédure et sont temporaires: la variable n'existe qu'à l'intérieur de la procédure en cours. Elles sont habituellement définies au sein d'une procédure et sont temporaires: la variable n'existe qu'à l'intérieur de la procédure en cours.
 ==== Variables globales ==== ==== Variables globales ====
-Une variable globale existe non-seulement au sein de tout le script, mais elle est globale pour l'eggdrop. Elles sont définies hors des procédures, comme ex_msg dans notre exemple précédent.+Une variable globale existe non-seulement au sein de tout le script, mais elle est globale pour l'eggdrop. Elles sont définies hors des procédures, comme //ex_msg// dans notre exemple précédent.
  
-La globalité d'une variable peut être très pratique, par exemple celles qui sont propres à l'eggdrop comme $botnick (le nick actuel de l'eggdrop), mais aussi très handicapant car une variable déclarée dans un script peut être écrasée par un autre script.+La globalité d'une variable peut être très pratique, par exemple celles qui sont propres à l'eggdrop comme `$botnick(le nick actuel de l'eggdrop), mais aussi très handicapant car une variable déclarée dans un script peut être écrasée par un autre script.
  
 Pour vous éviter ce type de problème, il y a quelques astuces: Pour vous éviter ce type de problème, il y a quelques astuces:
Ligne 64: Ligne 68:
   - préférer un tableau unique contenant les diverses variables du script,   - préférer un tableau unique contenant les diverses variables du script,
   - utiliser un [[:tcl:namespace|espace de nom]]    - utiliser un [[:tcl:namespace|espace de nom]] 
 +
 +===== Voir aussi =====
 +[[faq:livre_blanc]]
 +<nspages -h1 -subns -exclude:index -pagesInNs>
scripts/index.1697712787.txt.gz · Dernière modification : 2023/10/19 10:53 de CrazyCat