„Star Wars Galactic Battlegrounds szkriptek/A szkriptnyelv parancsai” változatai közötti eltérés

Tartalom törölve Tartalom hozzáadva
Nincs szerkesztési összefoglaló
4. sor:
== A szkriptnyelv elemei ==
 
A Genie AI -szkriptjei szöveges fájlok, amelyek különféle parancsokból állnak. Parancsból kétfélét fogok megkülönböztetni:
# Segédparancsok (metaszabályok), amelyek az AI -szkript értelmezőprogramjának „mellékes”„járulékos” működését vezérlik, nem pedig magát a játékost; ide tartoznak a következők: a kommentelő operátor (;), a konstansdefiniálás ( (defconst ''szöveges azonosító'' ''számérték'') ), a szkriptbeágyazás operátora (load), a feltételes vezérlés operátorai (<nowiki>#</nowiki>load-if-defined ... <nowiki>#</nowiki>else ... <nowiki>#</nowiki>end-if), valamint a logikai operátorok ( not(), or(... ...), and(... ...) ); és az aritmetikai összehasonlító operátorok (kisebb-nagyobb-egyenlő).
# [[#Szabályok: a defrule parancs|Szabályok]], ezek végzik a játékos érdemi vezérlését, róluk később. A szabályok többsége leginkább a [[w:hu:Horn-klóz|Horn-klózokra]], ill. általában az ún. logikai programozási nyelvek parancsaira hasonlít (már akinek ez mond valamit): mindenesetre, feltételekből és következményekből állnak.
 
Mit írhatunk egy Genie AI szkriptbe? Lássuk;
 
# [[#Kommentek|Kommentelhetünk]], vagyis az AI szkriptértelmező-szkript-értelmező számára figyelembe nem vett sorokat írhatunk, megjegyzéseket csak a magunk vagy más szkriptelőtársak számára;
#[[#Konstansok|Konstansokat definiálhatunk]], érthetőbben, kiválasztva egy természetes számot (a felső határ 32 000 körül van, a C++ programnyelv ugyanis nagyjából a -32 000 ... +32 000 tartományban kezeli az egész számokat - aki tudja, pontosítsa), annak szöveges nevet adhatunk. Ez így talán nem látszik túl nagy lehetőségnek, de - ld. lentebb - sok mindenre használható.
# [[#Változók: a goal parancs(ok)|Számváltozókat definiálhatunk]]. Egy változónak nemnegatív [[:w:hu:egész számok|egész]] értéket adhatunk, ezt az értéket meg is változtathatjuk, az értéket egy parancsba beolvastathatjuk.
# Lehetőség van bizonyos szabályok ún. ''[[#Load-if(-not): feltételes (nem-)végrehajtás|feltételes végrehajtás]]''ára. Mi szükség van erre, ha a szabályok amúgy is feltételekhez kötöttek? EzA nemcsakfeltételes arrabetöltés másféle értelemben vett feltételekhez, hogykonkrétan a játék beállítási paramétereihez való igazíthatóságot biztosítja. elegánsabbáElegánsabbá, áttekinthetőbbé és egyszerűbben megfogalmazhatóvá tegyeteheti a szkriptet, aolyan játéklehetőséget beállításiteremtve, paramétereihezamelyet valómáshogy igazíthatóságotkörülményesebben biztosítva,lehetne demegoldani. Sőt, néhány olyan beállításra is tekintettel van, amit máshogy nem lehet megfogalmazni.
# A tulajdonképpeni magva, lényege a szkriptelésnek, hogy '''[[#Szabályok: a defrule parancs|szabály]]'''okat definiálhatunk. A szabályok parancsok, amiket a CP igyekszik majd végrehajtani. Egy szabály lényege szerint két részből áll: van egy sereg feltétel (''tények'', ''facts''), ha ezek teljesülnek, akkor egy sereg ''parancs'' (''actions'') végrehajtódik. A tényeket, feltételeket leíró részben használhatunk logikai operátorokat: és (and), vagy (or) és nem (not).
# A szkript végrehajtásának tetszőleges fázisában [[#A load parancs|betölthetünk egy másod- vagy alszkriptet]] az AI szkriptünkbe . A szkriptek egymásba ágyazhatóak. Ez lehetővé teszi pl., hogy egy nagyon hosszú szkriptet modulárissá alakítsunk, kisebb részekből összerakva.