Jump to content

[F]Lekce 6. - Klicova slova


ffredyk

Recommended Posts

  • Majitel

Nekdo neznamej ( :shifty: ) mi psal at napisu tut o klicovych slovech (ty modre). Tak ho pisu.. Jejich seznam naleznete zde http://wiki.sa-mp.co...ords:Statements .

 

Takze projedeme to podle toho seznamu.. Napisu vam co jaka funkce dela a jak se pouziva a kde treba ji muzeme vyuzit..

 

Assert

Tato funkce podle wikiny nefunguje (Tedy presne nevedi jestli funguje), ale je to neco jako logicka podminka if. Podle wiki, pry zastavi spusteni kodu, kdyz podminka selze... (Taky ptakovina aby nam to vyplo kod uprostred hrani -_-) Takze to preskocime.

 

Break

Tato funkce se pouzi ve smyckach k preruseni opakovani..

Pouziti:

for(new i ; i < 5 ; i++)
{
printf("%d",i);
if(i == 3) break;
}

Do konzole vypise:

 

0

1

2

3

 

 

A kde by jsme to mohli vytuzit? Treba pri zjistovani hodnot v poli.. Napriklad mame u hrace pole Array[playerid][20];

Ale ne vsechna pole jsou zaplnena... A my napr. potrebujeme zjistit koli poli ma nejakou hodnotu (vetsi nez 0). V tom pripade vytvorime smycku o velikosti 20 loopu (Protoze pole vice hodnot nema) a jeste dodame novou promennou do, ktere budeme zapisovat pocet zaplnenych hodnot...

new pocet = 0;

for(new i ; i < 20 ; i++)
{

 

A ted potrebujeme podminku, ktera bude zjistovat zda-li je v dane casti pole hodnota a dale funkci v tele podminky, ktera bude pripisovat promenne "pocet" hodnotu 1.

new pocet = 0;

for(new i ; i < 20 ; i++)
{
if(Array[playerid][i] > 0)
{
pocet++;
}

 

A ted kdyz dana hodnota se uz rovna 0 prerusime smycku, protoze s nejvetsi pravdepodobnosti ani dalsi loopy nebudou mit zadnou hodnotu..

 

new pocet = 0;

for(new i ; i < 20 ; i++)
{
if(Array[playerid][i] > 0)
{
pocet++;
}
else
{
break;
}
}

 

A tim je hotovo...

 

Case

Case se pouziva v kombinaci s funkci switch.. Funguje jako rada logickych podminek.

Pouziti:

switch(promenna)
{
case 0:
{
print("Promenna ma hodnotu 0");
}
case 1,2,3:
{
print("Promenna ma hodnotu 1 nebo 2 a nebo 3");
}
case 4 .. 10:
{
print("Promenna ma hodnotu mezi 4 az 10");
}
}

 

Pouziti je hrozne moc. Od switchovani promenne reason v OnPlayerDisconnect az po slozite vetvene dialogy..

 

Continue

Continue se pouziva stejne jako break. Break smycku prerusuje, ale continue preskoci aktivni loop.

 

Default

Pouziva se, k definovani zakladniho kroku v pripade, ze se zadny z case ve switchi nerovna promenne...

 

Do

Pouziva se v kombinaci s while.. A existuje vlastne jen proto, kdyz potrebujete, aby se smycka spustila aspon 1x.

 

Pouziti:

new w = 0;

do
{
print("Smycka!");
w++;
}
while(w != 10);

 

Else

Else se pouziva, kdyz podminka if selze.. Napriklad: V logicke podmince kontrolujete, zda-li je hrac pripojen. A kdyz neni, tak se neprovede telo podminky, ale telo "else".

 

Priklad:

if(IsPlayerConnected(playerid))
{
print("Je pripojen");
}
else
{
print("Neni pripojen");
}

 

Exit

Exit ma ukoncit program, ale na wiki neni ani priklad pouziti a ani se nevi co dela v samp.

 

Goto

Goto preskoci na danou znacku v kodu..

 

Priklad:

Skoc_sem:
print("Skocil sem");
goto Skoc_sem;
print("Toto se nikdy nevypise a vznikne nekonecna smycka");

 

Return

Return se pouziva vsude, kde potrebujete navratit hodnotu.. V callbacku, stocku, logicke podmince, switchi atd..

 

Priklad:

if(IsPlayerConnected(playerid))
{
return 1;
}

 

Sleep

Pozastavi vykon kodu na zvoleny parametr milisekund.. Funguje jen v main()

 

Priklad:

main()
{
print("Tedka");
sleep(1000);
print("Po jedne sekunde");
}

 

State

Tomuto je venovan cely velky tutorial od Y_Lesse na samp forku http://forum.sa-mp.c...ead.php?t=86850

Link to comment
Share on other sites

  • 4 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...