Il s’agit des principales base (équivalences) entre le SQS et le SQF puisque le SQS a été déclaré obsolète !
Nota : J’avais jamais cliqué « publier », il est donc dans les cartons depuis 08/10/2010, désolé :)
Commentaires
| SQF |
// Commentaire sur une ligne
/* Commentaire sur sur plusieurs lignes */
comment "Et cette commande fonctionne en SQS et SQF";
|
Condition
Délai
Commande conditionnelle
| SQF |
if (CONDITION) then {
COMMANDE
};
|
Commande conditionnelle multi-lignes
| SQS |
?CONDITION: goto "SKIP"
COMMAND_2
goto "END"
#SKIP
COMMAND_1
#END
|
| SQF |
if (CONDITION) then {
COMMANDE_1
} else {
COMMANDE_2
};
|
Cycle
| SQS |
#loop
COMMAND
~DELAY
?CONDITION: goto "LOOP"
|
| SQF |
while {CONDITION} do {
COMMANDE;
sleep DELAI;
};
|
Cycle avec étape
| SQS |
_n = 0
#LOOP
COMMAND
_n = _n + 1;
?_n < COUNT: goto "LOOP"
|
| SQF |
for [{_n = 0},{_n < = COUNT},{_n = _n+1}] do {
COMMANDE;
};
|
Structure conditionnelle multi-lignes
| SQS |
?VARIABLE == VALEUR_1: goto "PASSER_1"
?VARIABLE == VALEUR_2: goto "PASSER_2"
DEFAULT COMMANDE
goto "FIN"
#PASSER_1
COMMANDE_1
goto "END"
#PASSER_2
COMMANDE_2
#FIN
|
| SQF |
switch (VARIABLE) do {
case VALEUR_1: {
COMMANDE_1
};
case VALEUR_2: {
COMMANDE_2
};
default {
COMMANDE_PAR_DEFAUT
};
};
|
Sortie de fichier
| SQS |
?CONDITION: goto "FIN"
COMMANDE_1
#FIN
COMMANDE_2
exit
|
| SQF |
if (CONDITION) exitWith {
COMMANDE_2;
};
COMMANDE_1;
|
Exemple
| SQS |
_v0 = _this select 0
_v1 = _this select 1
_i = 0
_j = 0
_v1 stop true
#Here
~2
_v1 flyinheight 100
_j = count units _v0
_grou = units _v0
? not alive (_grou select _i):_i=_i+1
(_grou select _i) action ["EJECT",_v1]
unassignvehicle (_grou select _i)
_i=_i+1
_j = count units _v0
~0.5 ?_j< ;_i:goto "Here"
#fin
_v1 stop false
exit
|
| SQF |
_v0 = _this select 0;
_v1 = _this select 1;
if (alive _v1) then {
_v1 stop true;
_v1 flyinheight 80;
sleep 5;
};
{
unassignvehicle _x;
_x action ["EJECT", _v1];
sleep 0.8;
} foreach units _v0;
if (alive _v1) exitWith {
_v1 stop false
};
|