Durant l'exécution d'un script, l'Array des paramètres
est accessible par une variable locale au script nommée "_this".
Pour en récupérer les différents éléments,
il faut donc utiliser la Commande Select comme suit (voir la référence
des fonctions pour plus de détails).
Si
l'appel du script est par exemple ceci:
["TheShilka","Nom",3.45]
Exec "MonScript.sqs"
dans
le script 'MonScript.sqs', on récupère les paramètres
comme suit:
_unite =
_this Select 0
_string =
_this Select 1
_nombre =
_this Select 2
Sert aussi avec les EventHandlers, il sert
à récupérer les arguments passés.
Unite addEventHandler
["AnimChanged",{[_this
select 0,_this
select 1]
Exec
"UnScript.sqs"}]
Ici _this se réfèrera aux arguments passés de
AnimChanged, ici le nom de l'unité et l'animation qu'il exécute.
La
variable "this"
sert dans l'éditeur à indentifier un objet sans le nommer.
Elle sert à aller plus vite pour nommer un groupe par exemple
ou pour préciser les détails de l'objet, exemple:
Je
crée un Soldat et je veux lui retirer ses armes, deux méthodes
s'offrent à moi:
Je
nomme mon Soldat et l'Initialise sans armes:

RemoveAllWeapons NomDuSoldat
Ou
je l'initialise sans armes avec "this":

RemoveAllWeapons this
Cela
sert aussi pour nommer très rapidement un groupe d'unité,
en rentrant simplement dans l'initialisation du chef:

NomDuGroupe
= Group
this
Cela
peut aussi servir dans les déclancheurs et les points de passage.
Si l'on veut une condition spéciale pour déclancher
mon déclancheur, je rentre dans condition:
this
And (Alive
TheShilka)
Ici
l'on demandera que les conditions rentrées dans le Déclencheur
ou Point de passage (rentré dans l'éditeur) plus la
spécificité (Alive TheShilka) soient validées
pour passer à la suite.
La
variable "player"
sert à ne pas nommer l'unité jouée par le joueur
et de lui demander une spécificité, par exemple dans
un déclencheur ou point de passage:
!Alive
player
Cela
permet de laisser au joueur le choix de son unité et de ne
pas interférer dans la programmation de la mission.
La
Variable "_time"
est une variable créée dès le lancement du script
et qui représente le temps qui passe depuis le début
du script en seconde avec trois décimales.
La
Variable "time"
est une variable créée dès le lancement d'une
mission et qui représente le temps qui passe depuis le début
de cette mission en seconde avec trois décimales.
Puis
la Variable "_x"est
une variable "éponge", elle prend l'espace d'un instant une
valeur et la perd l'instant d'après, elle est très utile
pour lire l'intérieur des Arrays, des Groups. Comme par exemple:
_mag
= Magazines
player //
ici je vais regarder dans les chargeurs du Player
_fumivert =
({_x
==
"SmokeShellGreen"}
Count _mag)
//
ici je vais scanner _mag et compter combien j'ai de Fumigène
Vert dans ces chargeurs.
Donc
_x prendra un à un tous les noms de l'équipement de
mon joueur, et si il y'a dedans une "SmokeShellGreen".
Explication:
Mon
Joueur à ça en chargeur:

Au premier passage _x va prendre le nom du premier élément
de la liste "30Rnd_556x45_Stanag"
et va comparer si cette valeur égal "SmokeShellGreen", si elle
ne l'est pas on passe à la valeur suivante, et arrivé
au dernier élément de la liste _x prendra la valeur
"SmokeShellGreen" et la comparaison est vrai donc on ajoute 1 à
_fumivert. Donc pour cet exemple _fumivert sera égal à
1.
_x
peu aussi servir dans un groupe, par exemple pour demander à
tous les membres du groupe de ne pas avoir peur devant l'ennemi, il
suffit de mettre dans l'initialisation d'un soldat du groupe.
{_x
==
allowFleeing
0}
ForEach
Units NomDuGroupe
Enfin
la Variable "param1"
et "param2"
qui ne sert qu'en multijoueur, c'est les paramètres de la mission.
On a le droit qu'a deux paramètres par mission, mais pour chaque
paramètre, on peut faire varier autant de paramètre
que l'on veut. Par exemple si je veux dans ma mission faire varier
l'heure de ma mission, alors je règle param1 = skiptime 10,
ce qui fait que si ce paramètre est choisi, alors la mission
démarera 10 heures après l'heure par défaut,
celle de l'éditeur de mission.
Voici
un exemple d'utilisation (la version complète se trouve dans
la section description des Commandes, je veux que param1 me face varier
l'heure de ma mission, et le temps.
J'entre
dans le fichier description.ext ceci:
titleParam1
= "Conditions de la mission:";
valuesParam1 [ ] = {1,2};
defValueParam1 = 1;
textsParam1 [ ] = {"Nuit -
Dégagé""Crépuscule - Couvert"};
Puis
dans le init.sqs cela:
?(Param1 == 1) : GoTo"NuitDegager"
?(Param1 == 2) : GoTo"CrepusculeCouvert"
#NuitDegager
SkipTime 0
0 SetFog 0
0 SetOvercast 0
GoTo "exit"
#CrepusculeCouvert
SkipTime 19
0 SetFog 0
0 SetOvercast 0.7
GoTo"exit"
Là au début de la mission l'hôte verra dans
la première colonne de paramètres de mission, le titre
"Condition de la mission", et en dessous deux choix, "Nuit - Dégagé"
et "Crépuscule - Couvert", sur ces deux choix le premièr
sera surligné car c'est celui par défaut. Quand l'hôte
choisira son paramètre le jeu notera son "valueParam"1 et dans
le "init.sqs" ira chercher la configuration qui s'y reportera, et
règlera le saut dans le temps, le brouillard et les nuages.
Puis lancera la mission.
La variable thislist qui renvoi un Array de tout les objets correspondant
aux spécifié d'un déclencheur présent
dans sa zone.
Exemple: pour un Déclencheur
BluFor Présent:
[B1,A3,A4,A33,West
1-1-C:1 (DieAngelo)]