Bevezetés a Scripting - Multi Theft Auto wiki
Az erőforrások kulcsfontosságú része az MTA. Resource - ez egy mappa vagy egy zip-fájl, amely olyan fájlok és meta-fájlt, amely leírja, hogyan kell letölteni a szerver erőforrás és amelynek fájlról van szó. Resource játszik szinte ugyanazt a szerepet, mint a program az operációs rendszer - akkor indítható és leállítható, több forrást lehet futtatni egyszerre.
Minden kapcsolódó scripting, az erőforrásokat. Erőforrás hozzárendelés és megállapítja, hogy ez a mod, kártya, vagy bármi más. MTA jön források, amelyek szelektíven kihasználni a mód, például maplimits, amely lehetővé teszi a játékosoknak, hogy ne határain belül ezek a kártyák, vagy deathpickups, ami pickup teherautók fegyverekkel.
Egy működő script
Kezdeni, akkor megtanulják, hogyan kell csinálni lépésről lépésre az alap script, amely lehetővé teszi a játékos, hogy sétálni a városban.
Hol vannak a scriptek?
Vessünk egy pillantást a fájl szerkezetét a forgatókönyvet. Ide MTA Server mappát, és menj a következő útvonalon:
Látod, egy csomó .zip-archívum, amely csomagolt tárgyalás szkriptek mellékelt MTA DM. Minden fájl - ez egy „erőforrás”, akkor kell csomagolni és leterheltet amikor elindítja. A saját forrás, hozzon létre egy mappát, és nevezd el, ahogy szeretné. A mi esetünkben, hívjuk „sajátkiszolgáló”.
Most el kell menni ebbe a mappába:
Határozza meg a forrás
A szerver lehet tanulni a tartalmát egy erőforrást, létre kell hozni meta.xml fájl fájlt. felsorolja annak tartalmát. Ezt a fájlt kell elhelyezni a gyökérkönyvtárban az erőforrás, a mi esetünkben - a „sajátkiszolgáló” mappát. Egyszerűen hozzon létre egy szöveges fájl neve „meta.xml fájl” és nyissa meg a Jegyzettömb (Notepad).
A fájl meta.xml fájl adja meg a következő kódot:
a címke
címke kimondja, szkriptek (script), amely tartalmazza az erőforrás nekik, most beszélni.
Hozzon létre egy egyszerű script
Megjegyezzük, hogy a címke .lua említettük, a fájl nem található semmilyen egymásba ágyazott könyvtárak. Ezért létrehoz egy fájlt ugyanabban a könyvtárban, mint a meta.xml fájl. Most akkor másolja be script.lua a következő kódot:
Ez a szkript zaspavnen akkor a koordináták (x, y, z), a fent említett, amikor belép a szerverre. Vegye figyelembe, hogy fadeCamera funkciót kell, különben a képernyő fekete lesz. Továbbá, a kiadások későbbi DP2 be kell állítania a cél, hogy a fényképezőgép (különben látni fogja a játékos - a kék ég).
A változó forrás utal, aki már kiváltotta az eseményt. Mivel ezt a kódot akkor aktiválódik, ha közeledik bármely játékos, ez a változó meghatározásához használt, aki belépett. Így spawnol a játékos helyett egyszerre, vagy valaki véletlenül.
Ha megnézzük addEventHandler. akkor veszi észre három dolgot: „onPlayerJoin”, amely jelzi, ha (miért) indít; getRootElement (), amely pokazyvet akiknek köszönhetően / mit váltott (getRootElement () - ez mind / all) léphet fel, és joinHandler, amely felelős a funkció, ami kapcsol, amikor srabyvanii eseményeket. További részletek fogja meghatározni a későbbiekben egyetlen példa, és most nézzük csak a kiszolgáló elindításához és gyakorlat!
Fuss a forgatókönyvet
Ezután adjuk hozzá a script parancsot, amely a játékosok használhatják kapsz mellé egy járművet. Akkor hagyja ki ezt, és nézd meg a cikket a fejlettebb script segítségével Map Manager. amelyek továbbra is irányítja. Tovább inda az útmutató egy bevezetés GUI script. elolvasása után, akkor megtanulják, hogyan készül, és a programozható grafikus felhasználói felület MTA: DM.
Létrehozása egyszerű paranccsal
Térjünk vissza a tartalomhoz script.lua fájlt. Ahogy már mondtam, azt akarjuk, hogy a parancsot, hogy hozzon létre transortnogo jelenti közel áll az aktuális helyzetét a játékban. Először is létre kell hozni egy függvény, amely azt fogja hívni, és egy parancs felvezető, hogy fog egy csapat áll a játékos választása beírja azt a konzolban.
Megjegyzés: Ha rákattint a függvény nevét a minta kódját fog irányítani az oldalt a leírását.
Mintegy parancs rakodók
Az első érv addCommandHandler - parancs nevét, amely elérhető lesz a játékos, és a második érv - funkció, ami váltani, ebben az esetben - createVehicleForPlayer.
Ha már van tapasztalata a script, tudod mit függvények, mint ez:
Alapos a második minta (lásd fent), azt látjuk, hogy argument1 - thePlayer és argument2 - parancs_neve. thePlayer - aki szerezte a csapat, így hogyan még nem vezették be, a változó tartalmazza a játékos, aki aktiválta. parancs_neve - a csapat lépett. Tehát amikor beírja „/ üdvözölje”, ez az érv fog tartalmazni „köszönt”. Argumentum 3 - bármi mást, miután a játékos lépett, akkor megtudjuk, később ebben az útmutatóban. Soha ne felejtsük el, hogy az első két érv szabvány, de lehet hívni a saját. Azaz, a sorrend fontos, nem a név.
Már okozott oly addCommandHandler funkciót. és mivel createVehicleForPlayer - is jellemző, akkor is lehet ún. De ez a mi használjuk a parancsot kezelő, ami azt hasonló módon, csak belsőleg.
Például: valaki belép „createVehicle 468” a játékkonzol zaspavnen Sanchez, parancsot kezelő felhívja createVehicleForPlayer funkció, mintha mi volt a következő kódsort a script:
Mint látható, ha több paraméter: a játékos, aki miatt a csapat, a csapat is, amit be, és némi szöveget, melyet később be, ebben az esetben - „468”, mint az id transoprtnogo jelenti otvchechayuschego Sanchez. Az első két paraméter megegyezik az összes parancs rakodók, róluk lehet olvasni oldalon addCommandHandler. Tény, hogy mindig meg kell határozni legalább a két paraméter, hogy képes legyen használni más, megy utánuk (például feldolgozásra beírt szöveget a parancs után a id jármű modell ebben az esetben).
Megjegyzés: A parancs felvezető hozzá kell csak miután a funkciót, amelyre hivatkozni fog, különben nem lesz megtalálható. Sorrend fontos!
írás funkciók
Ahhoz, hogy betöltse a funkcióját hoztunk létre, meg kell gondolni, hogy meg kell tennie:
- Szerezd meg a játékos helyzetének, hogy hol kapsz a jármű (azt akarjuk, hogy úgy tűnik, közvetlenül a lejátszó)
- Számoljuk ki a pozíció, ahol szeretnénk zaspavnen TC (nem akarjuk, hogy megjelenjen az elme a lejátszó)
- Valójában, zaspavnen TC
- Ellenőrizze, hogy ez zaspavnen sikeresen, egyébként -, hogy megjelenjen egy üzenetet a chat
Annak érdekében, hogy minden készen zadchai, azt kell használni számos funkciót. És, hogy megtalálja a kívánt funkciót, el kell menni a lista szerver funkciókat. Először is kell egy függvényt, amely megkapja a koordinátákat a játékos. Mivel minden játékos tagja, azonnal válassza Element funkciókat. ahol getElementPosition funkciót. Kattintva a függvény nevét a listáról, akkor kap egy leírást. Láthatjuk a szintaxis, visszatér, és általában egy példát használatra. Syntax megmondja, hogy milyen érvek mi lehet vagy kell mondani neki.
A három úszó előtt a függvény neve és a típusú értékeket, hogy visszatér. Ebben az esetben, ez azt jelenti, hogy a függvény három lebegőpontos számok (x, y és z). Zárójelbe kapnak az érveket, hogy fel kell továbbítani. Ebben az esetben csak az elemet, amelynek kívánt pozícióba, mi ez mutatja a játékos.
Ezután meg kell győződnünk arról, hogy a jármű nem kapsz közvetlenül a lejátszó, így hozzá egy kis számot az x változó. ami maga után vonja spawn jármű csak keletre a játékos.
Most szükségünk van egy másik funkciója, hogy közvetlenül zaspavnen járművet. Mi újra keresi azt a listában szerver funkciókat. Ezúttal, mivel beszélünk közlekedés - lásd funkciókat. ahol úgy döntünk createVehicle. A szintaxisa Ez a funkció jelzi csak egy visszatérési értéke (amely akkor következik be a legtöbb gyakran) - az elem típusú jármű, ami újonnan létrehozott TA. azt is látjuk, hogy néhány érvet, amely [], ezért ezek nem kötelező.
Belül a funkciót, akkor már az összes érvet szükséges createVehicle funkciót. Csak számított a helyzet az x, y, z, és a modell id, hogy megkaptuk a parancsot ( „createvehicle 468”), rendelkezésre áll az a funkciója, mint egy változó vehicleModel.
Ez a kód természetesen javítható különböző módokon, de legalább fogunk hozzáadni annak ellenőrzését, hogy a jármű sikeresen létrejött. Mint olvasható createVehicle oldal alatt visszatér. A függvény visszatérési értéke hamis. ha a jármű nem sikerült létrehozni. Tehát ellenőrizze az értéket a változó createVehicle.
Most már kész a forgatókönyv:
Ahogy már bizonyára észrevette, a szemét meg egy új funkció - outputChatBox. Most már vizsgálja a tartalmát saját dokumentációs oldalán. Ha szeretne többet megtudni fejlett kézírás, olvassa fel a Map Manager.
Mit kell tudni
Van valami, hogy elolvassa az erőforrások parancs rakodók és megállapította funkciók a dokumentációban, az első rész, de sokat kell még tanulni. Ebben a szakaszban egy meglehetősen rövid áttekintést ezeket a dolgokat, utalva az adott oldalt, mint lehetséges.
Kliens és szerver-oldali script
Talán már észrevette, ilyen vagy ehhez hasonló kifejezések (Server / Client) valahol ezen wiki, a legvalószínűbb, valamint a funkciók. MTA nem csak támogatja a szkriptek futtatásához a szerver biztosít parancsok (mint már említettük), és egyéb jellemzők, hanem a szkriptek futnak az MTA ügyfél, hogy a játékosok használni kapcsolódni a szerverhez. Ennek az az oka, hogy néhány funkció, amelyet a MTA nem lehet a szerveren (pl GUI - grafikus felhasználói felület, azaz a grafikus felhasználói felület), mások ott csak a munka jobb, de a másik még mindig jobb, hogy a szerveren, vagy egyszerűen nem működik a kliens oldalon.
A legtöbb szkriptek tettek (mod, térképek) valószínűleg szerver az egyik, hogy írtunk az első fejezetben. Ha jön valami, amit nem lehet végrehajtani a szerver oldalon, akkor lehet, hogy végrehajtja a kliens. Írni egy ügyfél forgatókönyvet, hozzon létre egy szabályos fájl script (pl elemzi client.lua), és írja be meta.xml fájl a következő:
Bonyolultabb erőforrások
Az előző részben felvázolt, hogyan kell hozzá egy erőforrás egyedi szkripteket, de a lehetőségek valóban sokkal többet. Amint meg van írva a cikk elején, a források bármi lehet. Feladatuk határozza meg, hogy mit csinálnak. Képzeljük néhány elméleti források átnézésével fájlok tartalmát, meta.xml fájl és arra gondolok, hogy mit tehetnek:
Az első példa - Kiegészítő script
- commands.lua ad némi adminisztrátor parancsokat, mint például a bankok és néma szereplők, vagy bármi mást, ami állhat rendelkezésre a szerver adminisztrátorok
- client.lua biztosít GUI lehetett könnyedén végezze el a fenti lépéseket
Ez a példa is elvégezhető mindenkor (még autorun elindítani a szervert), mert hasznos az egész játék, és nem ütközik vele, ha a rendszergazda, persze, ő nem akar.
A második példa - Maude
- counterstrike.lua tartalmaz hasonló feladatokat az alábbiak:
- Lehetővé teszi a játékosoknak, hogy válasszon a csapat és spawn
- Hogy biztosítsák számukra a fegyverek, célok és utasítások (esetleg venni a játék kártya. Lásd alább)
- Határozzuk meg a játékszabályokat, például. amikor a kör akkor ér véget, mi történik, ha egy játékos halála
- . és talán valami más
- buymenu.lua - kliens script, amely létrehoz egy menüt, hogy vásárol fegyvereket
Ez a minta lehet hivatkozni a mod, mivel nem csak érinti a játék, de valójában, és meghatározza annak terjedelmét. A type attribútum azt jelzi, hogy ez a példa működik a Map Manager. Van egy másik forrás, írott QA csapat irányításáért módok és podgruzki kártyákat. Nagyon ajánlott, hogy alapozzák divat által biztosított számukra működőképes.
Ez azt is jelenti, hogy az események nem fut térkép nélkül. Divat mindig használja az általános alkalmassága a lehető legszélesebb körben. minta kártya - a következő példa.
A harmadik példa - Térkép
- airport.map - XML-fájl, amely a divat a térkép információkat tartalmazza:
- Ahol a játékosok kell kapsz, milyen fegyverek, mik a csapat
- Milyen céljai vannak
- Időjárás, idő, idő limit
- biztosítja a közlekedés
- airport.lua tartalmazhat intrinszik funkcionális Ez a térkép, amely magában foglalja:
- Nyitva minden ajtó, aláásva valami bizonyos feltételek mellett
- Létrehozása vagy mozgó játék egyes tárgyak, vagy szabályozzák az is, hogy már létre a .map-fájl
- . minden van valami kapcsolódó kártyák
Ahogy talán már észre, type attribútum változott „térkép”, mondja a Map Manager. hogy ez az erőforrás - térkép, míg gamemodes attribútum azt mondja, hogy mi ez a kártya kompatibilis mód, ebben az esetben - egy mod a fenti példában. Meglepetés tűnhet, hogy az erőforrás-kártya tartalmaz egy forgatókönyvet. Persze, ez nem szükséges, hogy a kártya, de nyit széles körű lehetőségeket alkotók, amely lehetővé teszi, hogy saját divat világában a szabályokat, amelyek alapját képezik.
airport.map fájl esetleg kinéznie:
Események - oly módon, hogy tájékoztassa az MTA script, hogy mi történik. Például, ha egy játékos meghal, akkor váltott onPlayerWasted esemény. Tehát, hogy ha egy játékos meghal valami történt, akkor meg kell csinálni a fellépés, hasonló hozzá egy parancs felvezető, mint ahogy azt az első részben.
Ez a példa egy üzenetet jelenít meg a játékos neve, aki meghalt:
Ahelyett, hogy először megjelenik egy lista a szükséges érveket, az oldal megjeleníti a dokumentációt az esemény, mely paraméterek át a függvényt, valamint a parancsok felvezető. ez csak változik eseményen. Egy másik fontos pont a meglévő végzők a változó forrás. Ez nem feltétlenül hozzá a listához a függvény paramétereket, de mégis létezik. Értékét változik eseményen, rendezvényekre járó játékos (mint a fenti példában), akkor - egy eleme az a típusú játékos. Egy másik minta szolgál, mint egy alap spawn script játékos az első rész, például lehetőség van, hogy megértsük, hogyan kell használni a forrás.