-
Notifications
You must be signed in to change notification settings - Fork 3
[FR] 1. Introduction, premier pas
Cette page décrit les pré requis pour créer votre première classe.
- Premièrement, créer une nouvelle mission éditable dans votre répertoire mpmissions (par exemple test.altis)
- Votre répertoire doit déjà contenir un fichier mission.sqm
- Télécharger la dernière version du fichier oop.h sur git, et copiez le dans le répertoire.
- Créer un fichier
init.sqf - Ajoutez cette ligne en haut pour référencer oop.h
#include "oop.h"
Ok, vous devriez maintenant avoir maintenant un environnement prêt à l'emploi.
Maintenant, nous allons créer votre première classe "OO_HELLOWORLD"
-
Créer un nouveau fichier
oo_helloworld.sqfqui contiendra la déclaration de votre classe. -
Ajoutez cette ligne en haut pour référencer oop.h
#include "oop.h" -
Déclarez après la classe minimun de cette façon:
Example:
CLASS("OO_HELLOWORLD")
PUBLIC FUNCTION("","constructor") {};
PUBLIC FUNCTION("","deconstructor") {};
ENDCLASS;
-
Sauvegardez le fichier
oo_helloworld.sqfet insérer cette ligne dans le fichierinit.sqfcall compile preprocessFileLineNumbers "oo_helloworld.sqf";
A moment, la classe est prêt à l'emploi et peut etre instanciée. Vous pouvez le faire en ajoutant ce code à la fin de votre fichier init.sqf
_myobjectreference = "new" call OO_HELLOWORLD;
ou
_myobjectreference = NEW(OO_HELLOWORLD,nil);
Bien, vous pouvez maintenant essayer de lancer la mission pour vérifier que cela fonctionne, et qu'il n'y a pas de problème de syntax. Si tout a été réalisé correctement, rien ne devrait se passer. Normal, vous n'avez pas demandé à votre objet de faire quelque chose !
Dès maintenant, nous allons améliorer l'objet OO_HELLOWORLD pour qu'il fasse son véritable travail en affichant un message "hello world" et un peu plus :)
-
Ouvrez votre fichier
oo_helloworld.sqf -
Ajoutez cette ligne entre la déclaration du nom de la classe et la fonction constructor
PRIVATE VARIABLE("string","name"); -
Ajoutez cette nouvelle fonction après la fonction constructor
Example:
PUBLIC FUNCTION("","sayHelloWorld") {
hint format ["Hello World from %1", MEMBER("name", nil)];
};
-
Vous devez maintenant comprendre qu'il manque quelque chose dans le format de la command hint. En fait, le mot clef MEMBER fonctionne comme un accesseur et permet de récupérer la valeur de la variable privée "name" declare au point 2. Mais à ce moment, la variable était seulement déclaré mais n'avait pas de valeur.
-
Pour donner une valeur à la variable "name", ajoutez cette ligne dans la fonction constructor
Example:
PUBLIC FUNCTION("","constructor") {
MEMBER("name", "John");
};
-
Sauvegardez le fichier, et revenez dans le fichier
init.sqfpour ajouter cette ligne:"sayHelloWorld" call _myobjectreference; -
Félicitations, vérifiez que maintenant tout fonctionne comme prévu !