EventScripts

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

EventScripts
Apparu en 2004
Auteur Mattie Casper
Dernière version 2.0 (22 octobre 2007)
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 un langages de programmation interprété conçu pour fonctionner avec le Moteur de jeu Source engine de Valve Software. Il a été programmé en C++ en utilisant l'API de Source SDK. Ce langage a été conçu pour se mettre à la portée de tous les utilisateurs, même s'ils n'ont jamais programmé de leur vie. Les utilisateurs peuvent ainsi entièrement personnaliser leurs serveurs de jeu utilisant le moteur Source engine. Le langage a un typage faible et dynamique, et sa syntaxe est proche de celle du C/C++.

EventScripts est actuellement utilisé sur plus de 12 500 serveurs [1], ce qui en fait l'un des plugins les plus utilisés sur le moteur Source engine.


Sommaire

[modifier] Son fonctionnement

EventScripts sert d'interface entre les informations transmises par le moteur du jeu et des scripts codés en EventScripts. 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.

[modifier] Caractéristique du langage

[modifier] La syntaxe

La syntaxe principale d'EventScripts est proche de celle du Shell. Depuis EventScripts 1.0, les blocs d'instructions sont délimités par des accolades, et les instructions sont des lignes de commandes auxquelles il est possible de passer des arguments :

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 !
}

Depuis EventScripts 2.0, il est également possible d'écrire un script en 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 !")

[modifier] Le typage

Avec la syntaxe proche de celle du Shell, les variables ont un typage dynamique. C'est-à-dire que le type change en fonction de ce que vous mettez dedans. Ce typage est faible, EventScripts tente d'interpréter ce que le contenu des variables en fonction du contexte dans lequel elles sont utilisées (opération mathématique, manipulation de chaînes de caractères, etc...).

Dans le cas d'un script écrit en Python, le typage est bien entendu celui du langage Python.

[modifier] Historique

La première version d'EventScripts date de décembre 2004. A 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" (ayant un effet une fois écrite dans la console des joueurs) et "tchat" (ayant un effet une fois écrite 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

[modifier] Notes et références

  1. All Games :: Game Server / Player Search :: Game - Monitor . COM


[modifier] Liens externes

Autres langues