Lycanobot/Doc/Global variables
De par sa forme évenementielle, lycanobot fait appel à un certain nombre de variables globales. Le contenu de bon nombre de ces variables est déjà documenté (en anglais) dans les fichiers sources de lycanobot, dans des longs blocs de commentaires.
$charset_conv
- Définition : config.pl,
load_charset()
Contient l'instance de Locale::Recode
configurée pour convertir le charset des message selon ce qui a été choisi dans le fichier de configuration. Elle est affectée lors du chargement de la configuration.
$conn
- Définition : lycanobot.pl,
connect_to_IRC_server()
Contient l'instance de Net::IRC::Connection
. Affectée lors de la connection au serveur IRC, au lancement de lycanobot.
$in_game
- Définition : lycanobot.pl,
reset_game_vars()
Contient 1 si une partie est en cours, ou 0 sinon. Quand le bot attend que les joueurs s'inscrivent à une partie avec la commande play, elle contient aussi 0.
$round
- Définition : lycanobot.pl,
reset_game_vars()
Compte le nombre de tours (jours) effectués dans une partie.
%CFG
- Définition : config.pl,
load_lyca_config_file()
Contient la configuration du bot, lue depuis le fichier de configuration (config.xml
). Elle est le résultat un petit peu modifié de ce qu'à lu le parser XML::Simple
.
%actions
- Définition : actions.pl
Contient la définition des actions : le code qui lui est associé, et ses hooks. Elle peut-être complétée par les personnages spéciaux à l'aide de la fonction add_action()
(définie dans actions.pl), typiquement appelée dans l'initsub du personnage.
%actions_auth
- Définition : actions.pl
Contient la définition des règles d'autorisation d'execution des actions de %actions
. Elle peut-être complétée par les personnages spéciaux à l'aide de la fonction add_action_auth_rule()
(définie dans actions.pl), typiquement appelée dans l'initsub du personnage.
%chanmode
- Définition : lycanobot.pl
Contient les modes des salons auxquels est connecté le bot. Chaque clé de ce hash est le nom d'un salon (avec le #), et la valeur associée est la chaîne retournée par la commande IRC /mode #<salon>
. Elle est mise-à-jour par les fonctions on_mode()
et on_chan_modeinfo()
de hooks.pl.
%chanusers
- Définition : lycanobot.pl
Contient les informations d'IRC sur les utilisateurs dans un certain salon. Ce hash est décomposé de la manière suivante :
$chanusers{ $salon }{ $nick }{ $cle }
, $cle
valant voiced
ou op
, et donnant un booléen disant si l'utilisateur est voicé et/ou opérateur sur le salon.
%cmdlist
- Définition : commands.pl
Contient la définition de toutes les commandes du bot. Elle peut-être complétée par celles des personnages spéciaux.
%deco_checker
- Définition : timer.pl
Contient le timer qui, s'il est atteind, fait considérer au bot qu'il a été déconnecté (il tentera alors de se reconnecter). En temps normal, ce compteur est remis à zéro dès qu'un évenement IRC (une des fonctions de hooks.pl) se produit.
%files
- Définition : lycanobot.pl
Contient les noms des fichiers externes XML de lycanobot. Les fichiers avec lesquels lycanobot synchronise ses données ont dans ce hash leur MD5, qui sert à ne pas réécrire le contenu d'un fichier s'il n'a pas été modifié.
%game_sets
- Définition : game_sets.pl
Contient les paramètres du jeu du bot, lus depuis le fichier de settings (settings.xml
). Elle est le résultat de ce qu'à lu le parser XML::Simple
. Ces données sont synchronisées avec lycanobot.
%games
- Définition : games.pl
Contient les descriptions des jeux du bot, lues depuis le fichier de jeux (games.xml
). Elle est le résultat de ce qu'à lu le parser XML::Simple
.
%last_actions
- Définition : actions.pl
Contient le résultat des dernières executions de certaines actions. Ce hash est utilisé dans ce qui fait évoluer les phases, pour savoir ce qu'il s'est passé avant. Exemple : dans la phase d'appel à la sorcière, le bot peut y lire le résultat du vote des loups pour la lui annoncer.
Normalement, vous ne devez pas accéder à ce hash directement mais utiliser les fonctions write_last_action_result()
, read_last_action_result()
et delete_last_action_result()
(définies dans actions.pl), qui gèrent les éventuels conflits inter-actions.
%messages
- Définition : messages/ et jobs/messages
Contient tous les messages que le bot peut dire, dans la langue utilisée.
%phases
- Définition : steps.pl
Contient la définition de toutes les phases du jeu (même celles qui ne sont pas utilisées). Elle est initialisée par load_game_basics()
de basics.pl, et peut-être complétée par celles des personnages spéciaux.
%phs
- Définition : lycanobot.pl,
reset_game_vars()
Contient l'état actuel de l'avancement des phases, des actions et de leur hooks. Cette variable est grandement utilisée par les fonctions de steps.pl qui la font évoluer au fur et à mesure qu'une partie avance.
%players
- Définition : lycanobot.pl
Contient toutes les informations des joueurs dans la partie en cours. Chacune de ses clés est initialisé par init_player()
dans admin.pl.
%send_queue
- Définition : send.pl
Contient les files d'attentes des messages à envoyer. Chaque élément de ce hash est la file d'attente d'un destinataire de message (salon ou utilisateur).
%send_queue_time
- Définition : send.pl
Contient les pour chaque file d'attente le temps exact où le prochain message de la file sera envoyé.
Son contenu varie selon la valeur global_limit du fichier de configuration. Si elle est à 1, ce hash ne contient qu'un temps, celui du prochain message à envoyer (dans la clé 'global'). Sinon, il contient comme %send_queue
un temps par file d'attente.
%special_jobs
- Définition : lycanobot.pl
Contient la définition de tous les personnages spéciaux, y compris ceux qui ne sont pas utilisés. Ce hash est initialisé comme vide par load_game_basics()
de basics.pl, et peut-être complété par des personnages spéciaux.
%users
- Définition : lycanobot.pl
Contient les information d'IRC non relatives à un salon sur les utilisateurs connus par le bot.
%votes
- Définition : basics.pl,
load_game_basics()
Contient les phases dans lesquelles il y a un vote, et dans chacune des informations sur le vote. Cette variable peut-être complété par des personnages spéciaux.
%timers
- Définition : timer.pl
Contient les IDs des timers utilisés pour diverses choses.
@userlist
- Définition : lycanobot.pl
Contient les informations permanentes et propres à chaque utilisateur et ses éventuels clones. Il permet au bot de garder une trace des utilisateurs uns fois qu'ils se sont déconnectés, pour les reconnaitre quand ils reviennent, et conserver des informations qui leur sont propres (comme si oui on non ils ont le mode tutorial d'activé). Ces informations sont syncronisées avec le fichier d'utilisateurs (users.dat
).