Változók

Egész szám (integer) változó, csak egész számokat lehet vele tárolni
new valtozo;

Boolean változó, igaz vagy hamis értéket kaphat (true/false)
new bool:valtozo;

Általában karakterlánc (string) változó vagy tömb
new valtozo[32];

Lebegőpontos (float) változó, tört, nem egész számokra használandó
new Float:valtozo;

Menü elemek létrehozásakor érdemes hozzárendelni ezt a változót
new Menu:valtozo;

Text draw elemek lérehozásakor érdemes hozzárendelni ezt a változót
new Text:valtozo;

3D Text elemek létrehozásakor érdemes hozzárendelni ezt a változót
new Text3D:valtozo;

Műveltek változókkal

//Változók
new a = 1;
new b = 2;
new c = 0;

//Összeadás
c = a+b; //c értéke 3
c += b; //c értéke 5

//Kivonás
c = a+b; //c értéke -1
c -= a; //c értéke -2

//Szorzás
c = a*b; //c értéke 2
c *= b; //c értéke 4

//Osztás
c = b/a; //c értéke 2
c /= b; //c értéke 1


Feltételes utasítások

if(feltétel) - feltételes utasítás
else - egyéb eseti utasítás, ha nem teljesül a feltétel (feltétel nélkül nem lehet használni)
else if(feltétel) - egyéb eseti feltételes utasítás, ha nem teljesül a feltétel (feltétel nélkül nem lehet használni)
goto cimke - ugrás, egy címkéhez, érdemes feltételes utasítással együtt használni

switch(változó) - változó eseti módokra váltás
case szám: - eset meghatározása
default: - ha egy nem meghatározott eset történik a switch-ben akkor ez hívódik meg

Operátorok
a == b - a egyenlő b-vel
a != b - a nem egyenlő b-vel
a < b - a kisebb b-nél
a <= b - a kisebb vagy egyenlő b-nél
a > b - a nagyobb b-nél
a >= b - a nagyobb vagy egyenlő b-nél

a || b - a vagy b
a && b - a és b

Karakterlánc esetén összehasonlítás:
strcmp(szöveg1, szöveg2, kis/nagybetű különböző, hossz);
Eredményképpen kiadja, hogy mennyi karakter tér el, tehát ha 0 az érték, akkor megegyezik

Egy és többsoros feltételes utasítás
//Egysoros, csak egy utasításnál használatos
if (1 == 1) print("Számok megegyeznek.");
//Többsoros, egy vagy több utasításnál használatos
if (1 == 1)
{
print("Számok megegyeznek.");
}


If és else
//Változók
new a = 1;
new b = 2;
new c = 0;

//Összehasonlítás - az egyéb eset fog meghívódni, mivel nem egyenlő
if (a == b) print("egyezik");
else print("nem egyezik");

//Összehasonlítás - mivel a kisebb, így nem hívódik meg az egyéb eset
if (a < b) print("a kisebb");
else print("b kisebb");

//Két összehasonlítás VAGY kapcsolat, mivel az egyik igaz nem hívódik meg az egyéb eset
if (a == b || a < b) print("az egyik igaz");
else print("egyik sem igaz");

//Két összehasonlítás ÉS kapcsolat, mivel egyik sem igaz így az egyéb eset hívódik meg
if (a == b && a < b) print("mindkettő igaz");
else print("semelyik sem igaz");


Goto használata
//Változók
new a = 1;
new b = 2;
new c = 0;

//Ha igaz akkor az end-hez ugrik
if (a != b) goto end;
a = 10;
end:
b = 0;
//a = 1 és b = 0

//Ha nem igaz akkor minden le fut
if (a != b) goto end;
a = 10;
end:
b = 0;
//a = 10 és b = 0


Switch, case, default és goto használata
//Változók
new eset = 0;
new a = 1;
new b = 2;
new c = 0;

//Normál használat
switch (a)
{
case 1..2: print("1 és 2 között van");
case 3..10: print("3 és 10 között van");
default: print("Kivétel történt az 'a' változóval");
}

/*A program végrehajtáskor össze-vissza fog ugrálni az esetek között a goto miatt is és végül a nem meghatározott eset fog meghívódni, természetesen nem kell goto-t használni, ez csak egy újabb példa, hogy itt is lehet alkalmazni*/
start:
switch (eset)
{

case 0:
{
a = 3;
goto 2;
}

case 1:
{
b = 4;
goto start;
}

case 2:
{
c = 3;
goto 2;
}

case 3..4:
{
b = 5;
goto start;
}

default:
{
print("Kivételes eset.");
}

}


Formázott szöveg

format(string,string hossz,szöveg,változók);

Szövegben változó értékek megjelenítéséhez:
%s - karakterlánc változóhoz
%d vagy %i - egész szám változóhoz
%f - lebegőpontos változóhoz

Használata:
new valtozo = 1;
new Float:valtozo2 = 2.5;
new str[256];

format(str,sizeof(str),"Egész szám: %d, Lebegőpontos szám:%f",valtozo1,valtozo2); //A str változó most lett megformázva, de nem lett még elküldve a konzol ablakba
print(str); //Most van kiküldve


Ciklusok

Egy remek példa használatára például, ha az összes játékosnak szeretnénk pénzt adni, de nem szeretnénk végig írni azt az 500 sort parancsokkal.

For ciklus
for (new i = 0; i < 500; i++)
{
GivePlayerMoney(i,5000);
}

Így ez a parancs lefut 500 alkalommal és megkímél minket, hogy ne kelljen egyesével beírni a számokat, mivel 0-499-ig fog változni az i értéke.

While ciklus (Akkor érdemes használni, ha nem tudjuk meddig fog futni)
new i = 0;

while(i < 500)
{
GivePlayerMoney(i,5000);
i++;
}


Do ciklus (Akkor érdemes használni, ha egyszer mindenképp le kell futnia és/vagy utólag kell tesztelni a ciklus feltételét)
new i = 0;

do
{
GivePlayerMoney(i,5000);
i++;
}
while(i < 500);


Goto-val
new i = 0;

loop:
GivePlayerMoney(i,5000);
i++;
if(i < 500) goto loop;


Eljárások

Normál eljárás:
stock Eljaras()
{
print("Sikeresen lefutott az eljárásod.");
}


Használatban (csak gamemodeban és indításnál írja ki konzolba):
main()
{
Eljaras();
}


Visszaadó értékkel rendelkező eljárás:
stock ErtekEljaras(szam)
{
szam += 2;
return szam;
}


Használatban (csak gamemodeban és indításnál írja ki konzolba):
main()
{
new str[256];
new ertek = ErtekEljaras(5);
format(str,sizeof(str),"Kimenet:%d",ertek); //Ebben az esetben 7 lesz, de nincs elküldve a konzol ablakba még
print(str); //Most van kiküldve
}
Free Web Hosting