Script langage de MOHAA, Appendix B
Les classes, et comment elles sont utilisées

retour sommaire
retour texte principal

Document original par Bjarne Grönnevik
Titre original Appendix B Classes, and how they are used.
Document traduit de l'anglais par Thomas Grandjean aka [NER]Whisky.


Pour utiliser ces commandes efficacement, il est indispensable de savoir comment elles sont envoyées aux objets. Ces objets sont créés à partir d'une Classe. Les classes dictent les commandes qui peuvent être envoyées aux objets qui font partie de la classe.

Ce document vous explique tout ce que vous avez besoin de savoir sur les classes pour réaliser des scripts avancés. La plupart des mappeurs vont probablement se contenter de recopier d'autres scripts et de les modifier à leur guise, mais lorsque vous voulez réaliser un script vraiment très compliqué et peu courant: Vous devez savoir ce que sont les classes de MOH.
Pour une définition complète (mais courte) de TOUTES les classes, allez voir les fichiers g_allclasses.html ( pour Allied Assault ) et MOH_GameClasses.html ( pour Spearhead ) fournis avec le SDK de EA Games.


Contenu du document:
· Explication des classes
· La hiérarchie des classes dans MOH


* L'explication des Classes (très simplifiée)


Toutes les commandes sont envoyées à un objet qui appartient à une classe spécifique.
Exemples : tous les joueurs d'une partie sont des objets qui appartiennent à la classe Player et tous les script_object (que l'on utilise dans Radiant) font partie de la classe ScriptSlave.
Il existe entre les classes une relation d'héritage. Pour expliquer cela, prenons l'exemple de la classe Player :

 Player -> Sentient -> Animate -> Entity -> SimpleEntity -> Listener -> Class

Ceci est la chaîne d'héritage de la classe Player. Mais qu'est ce que veut dire ce charabia ? Hé bien beaucoup de choses, mais la seule chose que vous avez besoin de savoir, c'est que la flèche "->" est interpretée comme " la classe Player hérite de la classe Sentient "
Et alors, de quoi hérite-t-elle la classe Player? Des commandes de la classe Sentient pardi !
Cela veut dire que toutes les commandes de la classe dont elle hérite vont fonctionner aussi pour elle. Cela veut donc aussi dire que via cette chaîne d'héritage, Player va aussi hériter des commandes de Class, Listener, SimpleEntity, Entity, Animate et Sentient.

Donc souvenez-vous en lisant les documents g_allclasses.html et MOH_GameClasses.html , qu'une classe supporte ces propres commandes PLUS toutes les commandes établies pour les classes dont elle hérite (cela ajoute donc énormément de commandes).



* Hiérarchie des classes de MOH


Voici la chaîne d'héritage complète pour Medal of Honor :





 



Les classes suivies d'un "*", ne sont valables que pour Medal of Honor : Spearhead

Cette chaîne est lue de la façon suivante:

Un(e) VehicleTurretGun est un(e) TurretGun (il hérite des commandes de TurretGun ), un TurretGun est un Weapon, un Weapon est un Item, un Item est un Trigger, un Trigger est un Animate, un Animate est un Entity, un Entity est un SimpleEntity, un SimpleEntity est un Listener, un Listener est un (e) Class... et voici une chose très intéressante: un VehicleTurretGun est (grâce à l'héritage) une Class , et tout le reste aussi d'ailleurs, vu que TOUT hérite de la classe Class.

 

Hé bien voilà, nous avons démontré pourquoi les classes s'appellent des classes J, mais aussi pourquoi le C++ est un langage orienté objet ! J'espère que vous l'avez compris…

 

Retour au texte principal.

Retour au sommaire