Cikkek - Trainz

További fájlokat a cikkhez
Lesson1.cdp (18,5 kb) - csomag egy képzési forgatókönyv.
Lesson1.gs (5 kB) - forráskód a script
SP3S1DCC.gs (27,7 kB) - forráskód a script Highland Valley (DCC)
WriteScript1.rar (90,6 kB) - archív a szöveg a cikk nyomtatandó MS Word 97 formátumban

Hogyan írjunk szkriptek Trainz
1. rész

Hogyan írjunk szkriptek Trainz

Ez az első változata a cikket, amelyet elsősorban azok számára, akik már ismerik a programozás, mivel nem fogom elmagyarázni az alapvető fogalmakat. Azaz, azt feltételezzük, hogy már van egy ötlete, hogy milyen típusú adatok, eljárások, függvények, és az objektum-orientált programozás. Minden, aki először hallott róla, azt meg kell kezdeni küld a könyveket programozási nyelvek, ahol ezek a kifejezések magyarázata.

Szkriptek a Trainz írt hazai nyelven, amely sok tekintetben hasonlít programozási nyelvek, mint a C ++ vagy Java, bár ez a saját cég Auran nyelvet. A forrás a szokásos ASCII script fájl egy szöveges fájl, amely alapértelmezés adott kiterjesztése .gs

Ebből fájlt gsc.exe-fordító programot egy futtatható fájl kiterjesztésű .gsc, amelyet már elvégzett Trainz környezetben. Amennyire tudtam megérteni, a Trainz egyedi beépített többszálas tolmács. Többszálú azt jelenti, hogy képes futtatni több párhuzamos folyamatok önállóan végezhető. Például, akkor írj minden vonat szkriptjeidben külön téma, amely teljes mértékben ellenőrizni a viselkedését, akkor mindezek a patakok futnak végrehajtani, és mindegyik fog végezni önállóan. Pontosabban majdnem függetlenül, ahogy befűzésének Trainz, mint kiderült, ez szimulálja. Azaz, ha az egyik szál kezd végrehajtó egyes hosszú eljárás nélkül várakozó hívás esetén rutin, mint például a létrehozása kompozíciók, minden folyamat, beleértve a fő játék van függesztve befejezése előtt ezt az eljárást.

Azt is szeretném megjegyezni, hogy a keletkező kimeneti fájl nem tartalmaz .gsc parancs processzor, és a belső bytecode tolmács Trainz.

Ebben a könyvtárban van makescript.bat fájl Auran cég azt javasolja, hogy másolja abba a könyvtárba, ahol írni a forgatókönyvet, és futtassa a segítségével egy összeállítás. Ez a fájl tartalmazza a következő parancsot OS parancs processzor:

A %% egy a (* .gs) do% GSC% %% egy -i% közé%

Azt feltételezik, hogy a szkript egy script a katalógusban világ \ egyedi \ forgatókönyvek \<имя сценария>\

Más szóval, meg két változó, amelyben először jön vissza a forrás könyvtárat a játék, majd az első esetben, menj a fájl gsc.exe fordító, ami a bin könyvtárban, és a második előírt mappa elérési útvonala script könyvtár is található a játék könyvtárban hol vannak a header fájlokat az összes belső objektum a játék Trainz és amelyre fogunk hivatkozni, ha írásban a saját szkripteket.

A string-el kezdődik az, megismétli a hívást a fordító az összes felsorolt ​​fájlok a parancssor után a legtöbb makescript.bat

Elvileg lehetséges, hogy használják ezt a fájlt, másold át egy mappát a szkriptet, de lehet írni a saját, ha valaki meg akarja.

Ha hívja gsc.exe programot paraméterek nélkül, akkor kap a következő képernyő szöveg:

Auran GameScript Compiler V1.01

gsc.exe visszatér több fordítási hibák

gsc.exe

ahol

<-d> print dokumentációt, u érdemes szeretnék cső egy szöveges dokumentum =)

<-bfilename> kiírása a build info (összeállításához napló) fájlba

<-ppathname> papírkimenethez

<-ofilename> kimeneti könyvtár fájlnév

bemeneti forrás fájl

<-ipathname> további include path

amely kimerítő leírást a parancssor szintaktikai és a kulcsok, akkor a program beállítása. Abban a pillanatban, mi a leginkább érdekelt csapat -d, amely lehetővé teszi, hogy dokumentáció nyelvén Auran GameScript programozás.

Egyszerűen írja be a parancssorba:

Gsc.exe -d> gsc.txt

Nyomja meg, és kapsz a gsc.txt fájl teljes és részletes leírását a szintaxis. Kívánatos, hogy a nyomtatott és az első alkalommal, míg magukat a nyelv, raktáron tartani. Azonban, ahogy az várható, ez a leírás ismét angolul. )

Rövid leírása a nyelvi szintaxis Auran GameScript

A fenntartott szavak a nyelv ismertetjük részletesen gsc.txt, nem fogom megismételni, minden világos.

A szintaxis alapvető szereplők, beleértve a feltételeket az üzemeltetők, ciklusok, a kiválasztás bekerül a C nyelv, beleértve a merevítőket, hogy melyik kód blokkok kerülnek végrehajtásra. Azaz, aki nem érti a leírást a fájl gsc.txt vesz egy könyvet a C vagy C ++ nyelven és megérteni. De ha már arra figyelmeztetnek, hogy meg kell, hogy továbbra is elsődlegesen az gsc.txt fájlt, mert vannak bizonyos különbségek.

Azonosítókat ad meg a szabvány, mint sok más programozási nyelveket. Bármilyen azonosítót kell kezdődnie írni a latin ábécé (A..Za..z_) vagy aláhúzás, majd ugyanaz lehet betű vagy szám. Csak szeretném megjegyezni, hogy a kis és nagybetűket kell tekinteni más! Azaz, a fordító és nagybetűk között, ellentétben sok más programozási nyelveket.

Az adattípusok által támogatott nyelv

Érvénytelen # 9 - üres adattípust, amely csak akkor kell használni, amikor leírja a funkciókat

Int # 9-32 bites előjeles egész szám

Úszó # 9-32 bites lebegőpontos szám

Bool # 9 - 32 bit logikai, 0 - hamis vagy nem 0 - igaz (általában a C)

String # 9 - egy szöveget

Tárgy # 9 - az objektum egyik deklarált kaszt a játékban, ugyanabban az időben, amikor, hogy egy változót, akkor írj, természetesen, az osztály nevét, nem a tárgy, mert az objektum az alap osztály, amelyből az összes többi generált

int [] # 9 - egész tömb

float [] # 9; - egy sor lebegőpontos számok

bool [] # 9 - egy sor logikai változók

string [] # 9 - esetén vonalak

Object [] # 9 - egy tömb tárgyak

Mint látható, egy kis adathalmazt típusok, de valójában éppen elég az írás a legtöbb összetett írást. Ugyanakkor, szemben az univerzális programozási nyelv, nem jelenthetjük ki új alapvető adattípusok Auran GameScropt, beleértve a szerkezetet, vagy egyesület, de kijelentem új osztályok, amelyek a gyakorlatban is elég.

Minden nagyobb üzemeltetői nyelven lehet használni a kifejezést, lásd 2.6 gsc.txt fájlt. Ezek nagyrészt ismételje meg a C-üzemeltetők, a nyelvi és néhány fontos különbség, azt mondom, egy kicsit később, amikor megbeszéljük példákat.

Szeretnék lakni egy kicsit a modell az objektum-orientált programozás, amely Auran végre a saját nyelvén.

Először is, minden osztály bejelentett belső funkciók virtuális. Ugyanakkor, ha kijelentjük leszármazottja osztálymetódusként az azonos nevű, mindig automatikusan kiterjed a funkciót egy osztály-ős. Nem kell semmilyen különleges utasításokat. Ha szüksége van egy önálló funkciója, csak annyit írj be egy új nevet.

nyelvet is támogatja a többszörös öröklést, amikor a szülő az új feltüntetett osztály számos osztálya szülők. Ebben az esetben az új osztály elérhető lesz minden területen és funkciók, melyek minden ősei együtt (gyártott unió).

Nos, ebben a bevezető rész befejezni, és lépni a közvetlen fejlesztési forgatókönyveket.

Szükséges fájlokat és előkezelés

Forgóvázak # 9 # 9 - forgóvázak gördülőállomány

Motorok # 9, # 9 - A motor leírása paraméterek mozdonyok, beleértve a vontatási

Enginesound # 9 - a hang a motorok mozdonyok függően a jelenlegi hatalom

Földi # 9 # 9, - a felületi

Hornsound # 9 - megszólal mozdonyok

Html # 9, # 9 - oldal html, bár egy lecsupaszított változata belső mini-böngésző. Az ő segítségével létre összetett dialógusok, amely lehetővé teszi, hogy megkapja az adatokat a felhasználó.

Nadrág # 9; # 9, - áramszedők (áramkollektor) elektromos mozdonyok

Termékek # 9 # 9 - termékek új ipari létesítmények. Mi akkor lesz folytatni. Azonban van egy csomó kell tennie, hogy ez a munka, többek között a termelés a tárgyak maguk és a fogadó termékek, valamint az autók, hogy tudják hajtani.

A Profiles # 9 # 9 - az úgynevezett profil a játék - a vonatok helyzetének a térképen. Ezen kívül minden profilt a config.txt fájl utal néhány elérhető térképeken Trainz.

A forgatókönyvek # 9 # 9 - nos, ez a könyvtár, amit akar. ) Vannak forgatókönyveket.

Tájkép # 9 # 9 - különböző egyes objektumok kerülnek a térképen.

Splines # 9, # 9 - Különböző spline hogy el tudjuk helyezni a térképen. Azaz az utak, hidak, kerítések, elektromos vezetékek, stb kivéve azokat, amelyek a vasúti pálya

A Track # 9 # 9 - de ez önmagában vasúti pályák és minden, ami benne a vasúti pálya.

Pályamenti # 9 # 9 - tárgyak, amelyek mentén elhelyezett vasúti pálya, nyíl típusú, közlekedési lámpák, táblák, stb

Vonatok # 9 # 9 - járművek, azaz mozdonyok és vagonok

Az összes fenti témák mi érdekel elsősorban forgatókönyvek, és a Maps, ha a szkript történik a saját kártyákat.

Lépj be a könyvtárba világ \ egyedi \ forgatókönyvek (ha nem, hozzon létre), és azon belül hozzon létre egy új könyvtárat, amelyben adja meg a nevet, amellyel azt akarjuk, hogy a szkript, akkor látható a Trainz. Például, Lesson1. Az első dolog, amit létre kell hozni ezt a fájlt config.txt, amely létrehozta bármilyen tárgy Trainz.

f7_sfred - ezt a sort és a három alábbi leírására használt azonosítók és KUID mozdony és vasúti kocsik. Ők is előállíthatjuk TrainzObjectz. A beépített objektumokat, akkor is meg a függelékben végén a CCG. Én a következő módszert. Először lenyugodott a mozdonyok és legelők a térképen, majd tartotta ki Trainz futott TrainzObjectz. A TrainzObjectz, amikor hívott a térkép leírását (a Maps fülre, válassza ki a térkép nevét ComboBox), majd a végén egy listát az összes jármű, amit használt, jelezve nevüket és KUID.

> - a táblázat vége KUID

leírás „Lesson1 Trainz Script

A marker az a pont, ahol a vonat lehet oltani a programunk. Ebben az esetben a mozgás irányát irányának felel meg a piramis. Elvileg minden marker vagy ravaszt kell adni egy egyedi névvel, az egyik, hogy lesz szó kinevezését, így nem összezavarodnak írásakor a program. Az is kívánatos, hogy rendelni értelmes neveket az összes kitérők, vagy legalábbis azok, akik részt vesznek a programban. Ahhoz, hogy adjon meg egy nevet, akkor ki kell választania a kérdőjel gombra, majd válassza ki a kívánt objektumot a térképen.

Trigger egy szolgáltatás entitás, amely képes generálni rendezvények a programban mozgásával összefüggő vonat. Így tud válaszolni egy vonat belépő trigger zóna megállítani a vonatot a trigger zónában és a vonat kimenet a trigger zónában. trigger zóna (kiváltásához) be van állítva egy gomb, ami a fül, a fejlett, ahol a kétirányú nyíl levonni. Azt is beállíthatja a trigger tartományban számszerű formában méterben. Igen, hogy nyissa meg a fejlett oldalon kell kattintani a „fejlett” alján a nyitott pályák a szerkesztőpanelben (lásd. Ábra).

Cikkek - Trainz

Igen, csak azt akarom, hogy figyelmeztesse, hogy akkor is, ha normálisan működik válthat Trainz és egyéb programok, változás esetén a forgatókönyv nem fogja látni őket a játék, amíg az újraindítást Trainz, mivel megjelenése előtt a script program fog feküdni a Trainz a belső cache.

Üdvözlettel
Dmitry Myl'nikov

Kapcsolódó cikkek