Sans this
Avec this
Nomer un Groupe Entier
Chargeurs du Soldat

Variables Spéciales

 

   Il existe neuf types de Variables Spéciales:

_this
this
player
_time
time
_x
param1
param2
thislist

 

   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:

_mag = Magazines player
_fumivert = ({_x == "SmokeShellGreen"} Count _mag)

   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)]

Page d'Acceuil
Edition
Commandes
Page Script
Aides
Pages Missions
Page Campagne
Page Lien