Les scripts sont des fichiers texte aillant comme extensions
.sqs ou
.sqf composés de diverses commandes.
Ces fichiers permettent de réaliser diverses actions ou phénomènes pour vos missions.
Création d'un fichier SQS/SQF
La création d'un fichier se fait avec Bloc Note.
(N'importe quel logiciel de traitement de texte fera l'affaire)- Ouvrez Bloc Note
- Mettez ce que vous voulez dedans
- Enregistrer Sous en mettant comme extension soit .sqs, soit .sqf :
Ensuite, il faut bien vérifier que votre fichier ne se nomme pas
monScript.sqs.txt.
Si c'est le cas, renommer le en supprimant le
.txt.
Attention, souvent les extensions des fichiers sont cachés. Pour les afficher, procéder de la façon suivante :
XP : Allez dans un dossier, cliquez sur le menu Outils, allez dans : "Options des dossiers / Affichage" puis décocher la case "Masquer les extensions des fichiers dont le type est connu".
Vista/7 : Allez dans un dossier, cliquez sur le menu Organiser, allez dans "Options des dossiers et de recherche / Affichage" puis décocher la case "Masquer les extensions des fichiers dont le type est connu".
Réalisation d'un fichier SQS/SQF
Vous me direz, quelle est la différence entre
.sqs et
.sqf ?
La réponse est simple, ce n'est pas le même codage. Le
sqf ressemble énormément aux langages qui existent dans le monde du développement tels que le C++.
A savoir que généralement, le
sqs est utilisé pour les petits scripts, et le
sqf pour les gros scripts.
Important :
Après chaque commande ou ligne dans les fichiers sqf, il faut mettre un ;
Les commentaires
Les commentaires permettent de placer des mots ou phrases expliquant les différentes parties du script. Ceci est souvent nécessaire dans les gros scripts.
Pour placer des commentaires dans vos fichiers, il faut procéder de cette façon :
; Mes commentaires
// Mes commentaires
/* Mes commentaires
de mon fichier */
comment "Mes commentaires";
Les conditions
La condition dans un script permet d'attendre que celle-ci soit réalisée avant de passer à la suite.
Par exemple, tant que le général X n'est pas mort, le script ne passera pas à la suite.
@ CONDITION
// Exemple :
@ !alive X
WaitUntil {CONDITION};
// Exemple :
WaitUntil {!alive X};
Il existe aussi les conditions qui lorsqu'elles sont activées, elles déclenches d'autres actions.
Par exemple si le général X est mort, alors on affichera un texte.
? CONDITION : CONSEQUENCE
// Exemple :
? !alive X : hint "Le général est mort"
if(CONDITION) then {CONSEQUENCE};
// Exemple :
if(!alive X) then {hint "Le général est mort"};
Il est également possible de mettre plusieurs conditions en même temps :
? CONDITION : Allez CONSEQUENCE_1
...
#CONSEQUENCE_1
...
#fin
// Exemple :
? !alive X : goto "cons1"
hint "le général est vivant"
goto "fin"
#cons1
hint "le général est mort"
#fin
if(CONDITION) then {CONSEQUENCE_1} else {CONSEQUENCE_2};
// Exemple :
if(!alive X) then {hint "Le général est mort"} else {hint "Le général est vivant"};
Les temporisations
Il est possible de mettre des temporisations de x secondes.
~DUREE
// Exemple :
~5
sleep DUREE;
// Exemple :
sleep 5;
Les boucles
Passons maintenant aux boucles.
#boucle
...
? CONDITION : goto "boucle"
// Exemple :
#boucle
hint "Le général n'est pas encore mort"
? alive X : goto "boucle"
while {CONDITION} do {
...;
};
// Exemple :
while {alive X} do {
hint "Le général n'est pas encore mort";
};
Les boucles avec incrémentations ou décrémentations.
_i = 0
#boucle
...
_i = _i + 1
? _i <= LIMITE : goto "boucle"
// Exemple :
_i = 0
#boucle
hint "La variable _i est toujours inférieur à 50"
_i = _i + 1
? _i <= 50 : goto "boucle"
for [{_i = 0},{_i <= LIMITE},{_i = _i + 1}] do {
...
};
// Exemple :
for [{_i = 0},{_i <= 50},{_i = _i + 1}] do {
hint "La variable _i est toujours inférieur à 50";
};
Les choix multiples
Il est possible également d'avoir des choix multiples.
C'est à dire que part rapport à une variable, il est possible d'activer quelque chose entre plusieurs choix, et non seulement 2.
? VARIABLE == VALEUR_1 : goto "choix1"
? VARIABLE == VALEUR_2 : goto "choix2"
? VARIABLE == VALEUR_3 : goto "choix3"
...
goto "fin"
#choix1
...
goto "fin"
#choix2
...
goto "fin"
#choix3
...
#fin
// Exemple :
? _nbJoueurs == 5 : goto "choix1"
? _nbJoueurs == 10 : goto "choix2"
? _nbJoueurs == 20 : goto "choix3"
hint "Le nombre de joueur est inconnu"
goto "fin"
#choix1
hint "Il y a 5 joueurs"
goto "fin"
#choix2
hint "Il y a 10 joueurs"
goto "fin"
#choix3
hint "Il y a 20 joueurs"
#fin
switch (VARIABLE) do {
case VALEUR_1: {...};
case VALEUR_2: {...};
case VALEUR_2: {...};
default {...};
};
// Exemple :
switch (_nbJoueurs) do {
case 5: {hint "Il y a 5 joueurs"};
case 10: {hint "Il y a 10 joueurs"};
case 20: {hint "Il y a 20 joueurs"};
default {hint "Le nombre de joueur est inconnu"};
};
Quitter un script
exit
if (CONDITION) exitWith {...};
// Exemple :
if (true) exitWith {};
Vous pouvez voir que la version
sqf est beaucoup mieux adaptée que le
sqs.
Appeler un fichier SQS/SQF
[] exec "monScript.sqs"
nul=[] execVM "monScript.sqf"
execVM "monScript.sqf" // Uniquement dans les fichiers .SQF