2. lecke DOTA lua script
E lecke -, hogy bevezesse a script rendszert használt Dota 2, és néhány tippet és technikát a tervezési. Azt feltételezzük, hogy Ön ismeri az alapvető fogalmak OOP és Lua. Az is kívánatos, hogy használja a Notepad ++ vagy Sublime szöveg
Fogunk dolgozni vash_addon / scripts / vscripts mappát. Amikor a addon terhelt motor Dota 2 végre két addon_init.lua fájlt, majd addon_game_mode.lua. A szabályok szerint, ezek a fájlok nem a törzsadatok, hanem egyszerűen szükséges fájlokat. Feltesszük, hogy a tárgyak projektünk addon_main.lua - ez a fő fájl.
addon_init.lua
Ez a fájl először végrehajtásra, és általában okozta globális funkciók benne. Tegyük fel, hogy van két további fájlokat a mi addon: addon_main.lua (amely leírást a tárgyakat a addon) és util.lua (amely néhány, a közművek - a kis extrák).
Az Ön esetében a addon_init.lua fog kinézni:
addon_game_mode.lua
Ez a fájl végrehajtása után addon_init.lua és felelős inicializálása add-on. Itt egy példa:
A lényege az kiegészítői
Vessünk egy pillantást addon_main.lua - ez a lényege a mod. Ha elhagyjuk a fő kód, akkor látni:
kiterjesztett mag
Adjunk hozzá néhány alapvető funkciókat események (Events) és parancsok nevezhető a felhasználói felület.
Események vannak építve a játék motorja, és oka lehet, ha a játék semmit. Sok esemény, mint például dota_roshan_kill. dota_courier_lost és dota_player_gained_level. A legtöbb esemény van néhány további tulajdonságokat, mint például abban az esetben dota_player_gained_level van playerid és szintjét. Azt is szabhatja saját eseményeket a scriptek / custom_events.txt.
Szóval hogyan lehet használni ezeket az eseményeket? Két fő összetevője kezelhető szkriptjeidben divat - hallgató (hallgató) és a kutyavezető (kezelő).
Listener meghatározza az esemény, és ha ez megtörténik, azonnal végzett egy függvény a hallgató tulajdonságait. Megadhatja hallgató sehol, de általában ez történik az inicializálási funkciót. Darab hallgató beállításokat:
például:
Tegyük fel, hogy azt akarjuk, hogy Golda 1000 hősei, akik elérik a 6. szintet. Mi hozzá a hallgatók InitGameMode () az alábbiak szerint:
Most adjunk hozzá egy kezelőt az az esemény, mint egy új funkció a mi CustomGameMode tárgy, úgy néz ki, mint az alábbi példa:
Csapatok, mint az események - ők is nevezik, hogy bizonyos funkciókat látnak. A különbség az, hogy a játék motorja nem okoz semmilyen parancsot, de akkor hívja őket. Ez a legjobb módja annak, hogy kommunikálni a felhasználói felület (UI flash) és Lua szkripteket.
Mi regisztrálni hasonló paranccsal
Most, amikor a szerver megkapja a Command1 X saját konzolon a függvényt nevezzük az X paraméter (paraméter string - string).
Tegyük fel, hogy van egy gomb a UI, amely lehetővé teszi, hogy a játékos a képessége, és szerezz pontokat. A mi UI hívjuk GiveAbilityPoints csapat méri, hogy hány pontot akarunk adni. Mint például a parancs hívás a következőképpen néznek ki: „GiveAbilityPoints 3”, ami 3 pontot. Regisztráljon, mint ez:
Természetesen mi is kell hozzá egy kezelőt:
Tippek és trükkök
Nyomtatás táblázat a konzol
Lehet, hogy nem látni az összes értéket a táblázatban. Akkor hozza a konzol segítségével ezt a funkciót. Csak hívja PrintTable (táblázat).
Előállítás objektumot a leltár
Egyes funkciók megkövetelik a terméket a bemenet, de nem tudod a nevét a tárgyakat a játékos leltár. Ha szükség van erre, ebben a példában: