B4mBi Développement Web / Administration Système

16oct/110

Conversion SQS -> SQF

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

SQS
; C'est un commentaire
SQF
// Commentaire sur une ligne
/* Commentaire sur      sur plusieurs lignes   */
comment "Et cette commande fonctionne en SQS et SQF";

Condition

SQS
@CONDITION
SQF
waitUntil {CONDITION};

Délai

SQS
~DELAI
SQF
sleep DELAI;

Commande conditionnelle

SQS
?CONDITION: COMMANDE
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
};