EventScripts 2.0.0.248c Public Beta

De Wiki Ressource.

Description

EventScripts 2 est une des plus grosses mises à jour du plugin. Comme lors de la mise à jour 1.0, la version 2.0 nous apporte pas mal de nouveautés (commandes, variables) mais surtout un nouveau langage de scripting.

Avertissement : cette version est une BETA publique, préférez la version officielle si vous voulez évitez tout ennui (bien que cette BETA soit très avantageuse)


Téléchargement

EventScripts 2.0.0.250i Public Beta Linux et Windows

ATTENTION Mattie Eventscripts est passé à la version v2.0.0.250i Public Beta2 Télécharger la nouvelle Version


Installation

C'est le même procéder que pour Mattie EventScripts 1.5.0.171b


Sauf que dans autoexec.cfg, on ne met que cette ligne :

  eventscripts_subdirectory "events" // NE PAS MODIFIER


Quel est ce nouveau langage ?

EventScripts possède maintenant un moteur Python. Comme vous le verrez si vous cliquez sur ce lien, Python est un langage de programmation (interprété) qui est, entre autre, orienté objet. EventScripts combiné à Python devient immensément puissant comme nous le verrons plus bas.

Vocabulaire : La syntaxe d'EventScripts 1 est proche du Shell/Bash (sous Linux). Nous nommerons donc "ESShell" la syntaxe spécifique de cette version d'EventScripts. Nous nommerons la nouvelle syntaxe apportée par ES 2 "ESPython".


Avant tout, qu'advient-il des autres formats de scripts ?

Ils sont toujours d'actualité. Le format .cfg (fichiers .cfg) et .txt (proche de la syntaxe du C++) fonctionnent bien évidemment toujours. Ces 2 formats ont d'ailleurs pour but de se mettre à la portée de tous, même ceux qui n'ont jamais fait de programmation.


Pourquoi coder en python alors que c'est bien plus dur ?

Le langage python apporte à EventScripts un véritable langage de programmation moderne et reconnu. Une tel langage de programmation est utilisé pour programmer toutes sorte de logiciel. Mais python est encore plus que ça. Il possède beaucoup de fonctionnalités toutes préparées (des "modules", intégrés ou non dans le pack) ce qui permet d'écrire des programmes très courts et très facilement, mais avec un résultat tout aussi conséquent. Quelques exemples de possibilités : - accéder au Web (je me suis même envoyer un e-mail de mon serveur...) - manipuler de A à Z les systèmes de fichiers - gérer une base de données SQL - compresser/décompresser des fichiers - utiliser des expressions régulières - accéder à des conteneurs de données poussés (listes, dictionnaires, etc...) - effectuer des calculs mathématiques complexes rapidement - manipuler de A à Z les chaînes de caractères rapidement - effectuer des tris rapides - gérer un serveur via python - créer vos propres processus (multi-thread) - créer vos propres modules Globalement, python est l'un des langages interprété les plus rapides (exemple de comparaison : PHP vs python). Quant à la différence entre la vitesse d'exécution des scripts ESShell et celle des scripts python, elle est de l'ordre de la centaine de fois plus rapide pour les scripts ESPython. Il est beaucoup utilisé en tant que langage de scripting pour les jeux (Battlefield 2, Civilization IV, etc...).


Peut-on compiler des scripts et des modules EventScripts écris en python ?

Par défaut, vos scripts python sont automatiquement compilés en byte-code compris par python. Vous pouvez également compiler vos scripts et modules avec Psyco afin d'optimiser leur vitesse d'exécution. Il a également le mérite d'être très stable. Les plantages sont très difficiles à provoquer (;)) et êtes dans la possibilité de détecter les erreurs dans le code même de votre script (grâce à la gestion d'exception et au fait que python est entièrement orienté objet).


Que faut-il apprendre ? N'est pas trop long/difficile ?

Comme je l'ai dit, python est un langage de programmation. Le niveau de difficulté est donc bien supérieur à celui d'ESShell. Toutefois python peut être utilisé de manière très simples, tout en laissant la possibilité aux plus expérimentés d'entre vous d'aller plus loin. Je vous donnerais des liens vers des cours et tutoriels sur Internet, et j'ai également préparé pas mal de tutos pour apprendre rapidement les bases de python.

Quant au passage d'ES 1 à ES 2, il sera facile. La plupart des commandes d'ES 1 on était reportés sous python sous forme de fonctions portant le même nom. Mais l'avantage du python est d'être complètement indépendant de la console de VALVE. Le code que vous écrirait serait tel quel exécuté dans le jeu.


Qu'est-ce que ça donne ?

Prenons l'exemple d'un :

  event player_say
  {
      es_msg Quelqu'un utilise le tchat !
  }

Donnera quelque chose d'aussi sexy que ça :

  import es
  def player_say(event_var):
      es.msg("Quelqu'un utilise le tchat !")


Source : http://forums.mattie.info/cs/forums/viewtopic.php?t=17946

Lien de la MAJ : http://forums.mattie.info/cs/forums/viewtopic.php?t=17946&start=18


--Owned 8 avril 2009 à 13:45 (UTC)