Přechod od SQS k SQF

Z Armed Assault nápověda

Přejít na: navigace, hledání

Pokrok zastavit nejde, a proto čeká SQS soubory pomalá, avšak jistá smrt. S příchodem Armed Assaultu totiž začali první housle hrát SQF soubory (Funkce), které nabízejí mnohem větší přehlednost a spolehlivost. Ne každý se s takovou změnou ale vyrovnává a nedá stále na překonané SQS dopustit, a právě takovým by se mohl hodit stručný návod, jak používat staré postupy v novém kabátě.

Obsah

Struktura

V první řadě je nutné si uvědomit, že SQF nezajímají nějaké řádky, a tak si můžete script uspořádat jak chcete

SQS

?(alive player && count weapons player == 0): player addMagazine "m16a2"; player addMagazine "m16a2"; player addWeapon "m16a2"

Jak vidíte, vyznat se v něčem podobném už začíná být na obtíž, a to existují i delší zápisy. Proto se podíváme, jak to lze krátce převést do SQF

SQF

if (alive player && count weapons player == 0) then
{
 player addMagazine "m16a2";
 player addMagazine "m16a2";
 player addWeapon "m16a2"
};

Jak vidíte, každý příkaz kromě toho posledního musí končit středníkem. To je první věc, kterou byste se měli naučit, jinak se vám může stát, že strávíte veškerý čas hledáním chyby ve scriptu a dodatečným doplňováním středníků.

Nahrazování

Nyní si ukážeme, co kterým prvkem nahradit:

Čekání na splnění podmínky

SQS
@podminka
SQF
waitUntil {podminka};


Prodleva

SQS
~prodleva
SQF
sleep prodleva;


Podmíněný příkaz

SQS
?podminka: prikaz
SQF
if (podminka) then {prikaz};


Větvený podmíněný příkaz (buď a nebo)

SQS
?podminka: goto "preskoc"
prikaz2
goto "konec"
#preskoc
prikaz1
#konec
SQF
if (podminka) then {prikaz1} else {prikaz2};


Cyklus

SQS
#loop
prikaz
~prodleva
?podminka: goto "loop"
SQF
while {podminka} do
{
 prikaz;
 sleep prodleva;
};


Cyklus s krokem

SQS
_n = 0
#loop
prikaz
_n = _n + 1;
? _n < pocet: goto "loop"
SQF
for [{_n = 0}, {_n <= pocet}, {_n = _n + 1}] do
{
 prikaz;
};


Mnohonásobně větvený podmíněný příkaz

SQS
?podminka == hodnota1: goto "skok1"
?podminka == hodnota2: goto "skok2"
zaklad
goto "konec"
#skok1
prikaz1
goto "konec"
#skok2
prikaz2
#konec
SQF
switch (podminka) do
{
 case hodnota1: {prikaz1};
 case hodnota2: {prikaz1};
 default {zaklad};
};
Osobní nástroje