EventScripts

Un article de Wikipédia, l'encyclopédie libre.

EventScripts
Date de première version 2004
Auteur Mattie Casper
Dernière version 2.0 ()
Typage Faible, dynamique
Influencé par C, C++, Python, Shell, Bash
Système d'exploitation Windows, Linux
Site web http://www.eventscripts.com

EventScripts est un plugin fournissant plusieurs langages de script au moteur de jeu Source. Il a été programmé en C++ en utilisant l'API de Source SDK. Il est actuellement utilisé sur près de 7000 serveurs[1], ce qui en fait l'un des plugins les plus utilisés sur le moteur Source engine.

Son fonctionnement[modifier | modifier le code]

EventScripts sert d'interface entre les informations transmises par le moteur du jeu et les scripts. Ces informations prennent la forme d'un événement correspondant par exemple à la mort d'un joueur dans le jeu. Lorsqu'un tel événement a lieu, EventScripts recherche et exécute la partie des scripts traitant cet événement. Les événements du jeu sont souvent associées à des informations spécifiques telles que l'identification du déclencheur de l'événement ou sur la situation de la partie.

Les langages[modifier | modifier le code]

ESShell[modifier | modifier le code]

EventScripts fournit un langage appelé "ESShell" et basé sur l'utilisation de la console du jeu. L'écriture d'un script en ESShell consiste à écrire des séries de lignes de commandes comprises par la console du jeu qui devront être exécutées lors d'événements donnés de la partie.

Par exemple, pour afficher un message lorsqu'un joueur meurt :

event player_death
{
    // Ce bloc d'instructions est automatiquement exécuté à la mort d'un joueur

    // Affichons un message dans la zone de tchat
    es_msg event_var(es_username) est mort !
}

ESShell a un typage faible et dynamique. Étant basé sur des lignes de commandes, sa syntaxe est comparée à celle d'un script Bash. Ce langage avait été créé dans le but d'être à la portée de tous les utilisateurs, même s'ils n'ont jamais programmé de leur vie.

Python[modifier | modifier le code]

Le second langage fourni par EventScripts est Python. Le code ci-dessus devient, en Python :

import es

def player_death(event_var):
    """Fonction automatiquement exécutée lors de la mort d'un joueur"""

    # Affichons un message dans la zone de tchat
    es.msg(event_var['es_username'] + " est mort !")


Historique[modifier | modifier le code]

La première version d'EventScripts date de . À cette époque, chaque bloc d'instructions devait être placé dans un fichier séparé, et la plupart des commandes utilisées dans les scripts venaient de plugins extérieurs.

En 2005, EventScripts se dote de structures de contrôle et d'autres commandes spécifiques à la programmation, rendant les scripts plus puissants.

En 2006, EventScripts 1.0 apporte un nouveau format de script proche du C. Les blocs d'instructions sont maintenant délimitées par des accolades, et la différence entre "blocs événementiels" (automatiquement exécutés) et blocs simples (procédures devant être appelées) se fait. Par ailleurs, les notions de commandes "clientes" (écrites dans la console des joueurs) et "tchat" (écrites dans la zone de tchat par un joueur) sont introduites directement dans le langage.

En 2007, EventScripts 1.5 permet d'avoir accès à des fonctionnalités plus modernes telles que la manipulation de bases de données SQL, les expressions régulières et des opérations mathématiques plus poussées. La version 2 d'EventScripts supporte le langage de programmation Python.

Notes et références[modifier | modifier le code]


Liens externes[modifier | modifier le code]