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
} |