Lua skripty: příklady instalace a spuštění

Lua není interpretovaný jazyk a generuje bytecode z jiného programu, jako je Java. Tento program běží na virtuálním stroji Lua VM. Většina z těchto zařízení jsou nazývány hromady, ale Lua se liší v tom, že je založen na registrech a je jedním z prvních široce používané VM v herním prostoru. Rehystornoy předností architektury je, že se vyhýbá velké množství kopyrovannыh snižuje množství dat a pokynů pro funkci. Lua VM má automatickou správu paměti a klesá zbytečné informace, které poskytuje ideální konfigurace pro rapid prototyping skriptování.

Krátce o Louvě

Lua je snadno naučitelný a rychlý skriptovací jazyk se syntaxí pascalu. To umožňuje začínajícím programátorům psát vlastní programy. Používá se v mnoha hrách a aplikacích pro rozšíření stávající funkčnosti a sekvencí uživatelů programátoru. Na internetu existuje mnoho tréninkové programy, které pomáhají pracující v tomto jazyku, včetně mnoha informací je k dispozici na domovské stránce Lua.


Tento programovací jazyk byl vytvořen v Brazílii v roce 1993 Yerusalshymom programátory Roberto, Luis Enrique de Fyheyredo a Waldemar Tselesom na univerzitě v Rio de Janeiru, kde je kancelář «LabLua». Jméno pochází z portugalštiny, což znamená "měsíc" v překladu. Jeden z předchůdců byl SOL (Simple Object Language). Protože jméno Lua je podstatné jméno, ne zkratkaneměl by být psán jako LUA, konkrétně Lua. Jedná se o flexibilní jazyk, který se používá několika způsoby:
  • Wikipedia používá Lua pro šablony skriptů.
  • VLC Media Player pracuje s skripty Lua pro quik skripty.
  • Lua se používá v průmyslových aplikacích, jako je Adobe Lightroom.
  • Programy pro vestavěné systémy, jako je střední Ginga pro digitální televizi.
  • Gry je přední hra pro skripty, například pro vytvoření World of Warcraft a Angry Birds.
  • Každý si může vyzkoušet online kód Lua Demo se zajímavým způsobem, jak prozkoumat a používat herní engine.
  • Funkčnost tohoto programu může být použita v L? VE, Defold a samozřejmě v Pico-8.


    Základy syntaxe

    Lua používá velmi zjednodušující syntaxi. Uživatel nepotřebuje používat tečky oddělené čárkami nebo velké mezery, protože tyto znaky jsou interpretovány samotným programem. Všechny proměnné v skriptech Lua pro quik jsou globální globální. Proto je vždy nutné specifikovat, kdy jsou pro aktuální oblast potřebné místní hodnoty a předem je oznamovat. Ve skutečnosti je v praxi jen velmi málo případů, kdy jsou skutečně potřebné globální hodnoty. Můžete definovat místní proměnnou s klíčovým klíčem lokální. Současně není nutné deklarovat jeho hodnotu. Globální proměnné znamenají kontext aktuálního skriptu, a proto nejsou pro každý jednotlivý skript ve hře, které fungují nezávisle a autonomně.
    Proměnné mohou obsahovat libovolnou posloupnost číslic, písmen a podtržení, ale nemusí začínat číslem. Null představuje klíčové slovo, pokud proměnné nejsou definovány. Nepublikované se liší od deklarovaných proměnných, na kterých nezáleží. Příklady skriptů Lua:

    Kódové bloky a operátory, pokud

    Bloky jsou definovány určitými klíčovými slovy, následovanými "koncem". Podmínky v příkazu if musí následovat klíčem "pak". Pokud příkazy používají "elseif", ne "else if". Můžete vytvořit novou prázdnou oblast s blokem "doend". Lua používá speciální typ dat, nazvaný tabulka určená pro vytváření array, slovníky, hash charty, objekty jiných jazyků. Tabulka je jednoduše seznam dvojic klíč-hodnota, který může být libovolný typ dat, dokonce i jiné tabulky Jako klíč lze použít logickou hodnotu. Vzhledem k tomu, že je Lua dynamicky napsán, můžete mít libovolnou kombinaci datových typů v obou klíčích a volbách uživatelů, které je třeba určit před instalací skriptů Lua. Hodnoty tabulky lze definovat jak interně, tak i individuálně. Obvykle existují dva způsoby, jak získat a nastavit své hodnoty, syntaxi "dot", například "myTable.a" a syntaxi konzoly, například "myTable [" a "]". Při použití řetězců lze použít pouze bodovou syntaxi a nelze ji použít, pokud řetězec začíná číslem.
    Každá hodnota v tabulce je vzata v úvahu, nula - pokud není nastavena. To znamená, že není možné určit, zda je hodnota uvedena v tabulce, nebo je pouze nula, pokud nebyla nikdy předtím definována. To znamená, že pokud jsou klíče v tabulceoznačen a nastaven na nulu, nebude mít žádný účinek, nebo spíše bude stejný jako kdyby vůbec nebyl určen. V Luě, numerické klávesnice začínají s indexem 1 spíše než 0. To je to, co způsobuje velkou bolest hlavy pro programátory. Položky vestavěné tabulky můžete rozdělit čárkou nebo středníkem.

    Komplikovaný typ dat

    Tabulky jsou v Luě považovány za složitý typ dat - to znamená, že proměnné v nich odkazují pouze na stejný objekt v paměti, takže nemůžete přímo porovnat obě hodnoty a očekávat, že budou něco dělat. Nicméně linky, čísla, písmena a další primitivní typy dat lze porovnat přímo. Čísla v Luě se používají pouze v jedné formě - jejich vlastním číslem. Neexistují žádné typy jako int, float, long, double a další, stejně jako v jiných jazycích, a to musí být vzaty v úvahu před instalací skriptů Lua. Technicky jsou všechny hodnoty v Luě čísla s plovoucí desetinnou čárkou.
    Lua má pouze "=" operátor k určení a zvýšení. Nemá "+ =", "- =", "++" nebo něco jiného. Operátor zřetězení je "". Tuto operaci můžete použít bez problémů na řádcích a číslech. Nelze však kombinovat jiné typy dat - logické nebo tabulkové. Můžete získat délku tabulky nebo řetězce s operátorem "#" a to funguje pouze pro pole s číselnými indexy. Například kód nebude fungovat s tabulkami, které mají indexy řetězců.

    Typy smyček Loops

    Existují čtyři typy cyklů Loop, které v překladu znamenají smyčku nebo obrat. Zatímco (meziprodukt) je nejjednodušší formacyklus a funkce, jak by se mělo očekávat v jiných jazycích, a znamená, že kontrola je provedena před zahájením interního bloku. Číselné pro smyčku (digitální). Smyčka používá místní oblast proměnnou a zvyšuje nebo snižuje její hodnotu. Uživatel oznamuje a definuje proměnnou, která má být použita, a významem cíle. Generic for loop (generovaný) - používá funkci iterator. Říká se opakováním každé smyčky a vrátí hodnoty, které budou v ní použity. Páry (páry) jsou funkce iterátoru v globálním měřítku. Přijme tabulku jako argument, vrací index a hodnotu každé proměnné v tabulce. Kód zvedne i nenulové indexy. Má "bratra" - ipairs, což dělá totéž, kromě toho, že pracuje pouze s číselnými indexy a zastaveními, když je dosaženo nula. Opakovací smyčka je podobná době, s výjimkou toho, že kontroly stavu se provádějí na konci bloku spíše než na začátku. Před otevřením scriptu je třeba mít na paměti, že vnitřní kód bude spuštěn alespoň jednou. Cyklus opakování se obvykle vyhýbá vývoji tohoto jazyka, protože jeho precedens je omezený a obtížně čitelný, protože nepoužívá standardní syntaxi dopingu.

    Funkční metoda

    Funkce jsou jiný složitý typ dat, mohou být předávány jako proměnné a můžete je také zavolat k internímu spuštění kódu. Jsou podobné metodám v jiných jazycích. Existují dva způsoby, jak v Luě definovat funkci. První reklama je globální, protože neexistuje žádné místní klíčové slovo. Jako obvykleglobální funkce jsou považovány za přijatelné. Nicméně uživatel je může stále nastavit na lokální, v případě potřeby nastavením "místního" frontu. Můžete také deklarovat proměnné před identifikací funkcí, které jsou stále podobné jakémukoli jinému typu dat. Můžete je přenést, přiřadit proměnné nebo přijmout tolik argumentů, kolik potřebujete, pomocí syntaxe "". Samotný objekt ««tice»(n-tice), takže je třeba ho obklopit závorkami převést data do tabulky. Průvod - je to jen seznam jmen, jako je například nastavení funkcí, které mohou vrátit více hodnot, a oni na oplátku obsahovat proměnné. Pokud umístíte funkci do tabulky, můžete ji volat dvěma různými způsoby. Standardní bodová syntaxe nebo dvojtečka posílá pole jako první argument.

    Global názvů

    „Lua“ obsahuje několik tabulek v globálním jmenném prostoru, které obsahují podpůrné funkce, jako jsou «řetězce», «stolní» a «matematiky». Proto uživatel nesmí nikdy zadat žádnou proměnnou z pojmenované, protože bude redistribuovat pole obsahující užitečné funkce. K dispozici jsou dvě tabulky, které jsou sdíleny všemi skripty na serveru nebo klienta (ale ne obojí) - to «_G» a «sdílené». První z nich - skutečně globální, který je realizován prostřednictvím specifických skriptů, takže pokud chcete získat nebo nastavit hodnotu tom, pomocí «_G.something». «Strings» (Strings) - tato funkce může Lua několik způsobů, jak definovat a víceřádkový řetězec doslovný dat pomocí dvojitých hranatých závorek. A takémůžete umístit libovolný počet znaků rovnosti (=) mezi hranaté závorky ([=== [] ===]). Jsou vyvážené, mohou obsahovat sekvence uvnitř, jako]]. Lua má také vlastní sadu integrovaných manipulačních funkcí linky a vlastní tlumenou verzi pravidelných výrazů, které se nazývají řetězcové vzory.

    Herní měsíční scénář

    Jedná se o velmi jednoduché první kroky psaní programů, ale jsou dobrým výchozím bodem pro hackování skripty Garry Mod 10 Lua. Prvním krokem je vytvoření skutečného souboru skriptu pro Lua. Otevřete text nebo editor - notebook bude fungovat dobře pro tento účel. Pak uložte tento soubor zadáním jako na obrázku.
    Kde:
  • - uživatelské jméno hesel.
  • - Parní adresář pro Garryho Mod.
  • umístěte výchozí nastavení pro Lua-skriptů pro Garry s mod obvykle «C: Program FilesSteamsteamappsgarrysmod», ale může být ve vašem počítači odlišné - «autorunclient». Všechny soubory skriptů, které jsou umístěny v tomto adresáři, se spustí při spuštění aplikace Lua na klientovi, například při spuštění nové hry nebo přihlášení uživatele k serveru. Poté vytvořte soubor Hello World a přidáte do něj script script script. To je nejjednodušší volba.
    To se může zdát trochu matoucí najednou. Skript dává obsah tabulky (který způsobil pole nebo seznamy) a zachycuje data do příkazové konzole potvrdit, že je třeba definovat funkci, která nepřijímá žádné parametry a nevrací hodnotu, ale vždy nastaví „konec“ na konci svých týmů. Funkce jsou modulární úryvky kódu, které jsoulze použít několikrát. Tento příklad ukazuje, jak spustit skript Lua. Zde je vytvořen seznam řetězců, ale uživatel může také přidat další objekty. Tabulky jsou asociativní nebo hašišské. To znamená, že každá položka v seznamu může odkazovat na klíč.
    Tyto příkazy vytisknou všechny prvky tabulky a struktura se nazývá smyčka. Věnujte pozornost dvojice myTable, která běží jednou pro každou položku a vrátí pár klíč /hodnota pro hodnoty v seznamu. Hodnota je položka v tabulce a klíč je pouze způsob, jak se k ní připojit. Tento příklad ukazuje způsob výstupu textových a hodnotových proměnných se stejným příkazem tisku. Proměnné "klíč" a "hodnota" jsou nastaveny v uvedeném cyklu. Dávejte pozor "" mezi řádky a proměnnými. Symbol "" je operátor zřetězení Lua. To vysvětluje jazyk, který musíte společně slepit dohromady a považovat je za jeden ".concommand.Add" textový řetězec:
  • my_test_function;
  • myTestFunction.
  • Záznam vytvoří příkaz konzoly, který spouští pouze iniciovanou funkci. Jeho prvním parametrem je název řídícího týmu, v tomto případě: "my_test_function". To je to, co uživatel vstupuje do konzoly režimu Garry pro spuštění skriptu. Druhým parametrem je spouštěcí funkce, v tomto případě: myTestFunction. Tento soubor by měl být uložen později. Potom testují skript a spustí novou hru Garryho Moda. Pak konzolu otevřete pomocí tilde (~). Pokud se nezobrazí, musíte ji povolit zadáním příkazu "my_test_function" do řádku v dolní části panelu. Po spuštění se spustí automatické načteníobrazovce se jménem příkazu, stisknutím klávesy Enter jej spusťte.

    Vlastnosti systému Lua-Quick-Try-Out

    Tato konzola je určena pro přímý vstup kódu Lua (například příkaz příkazu Lua (8 + 9) okamžitě vyvede výsledek 17). Jeho funkce:
  • Hlavní okno zdrojového kódu s funkcemi ukládání a stahování.
  • Debugger skriptu s body stop, jednostupňovým provedením a proměnným zobrazením.
  • Funkce pro vytváření tabulek.
  • Funkce pro vytváření diagramů.
  • Funkce pro vytváření grafických obrázků.
  • Funkce pro vytváření vektorových grafů.
  • Online pomoc při vytváření funkcí Lua.
  • Body zastavení konzoly lze nastavit kliknutím vedle čísla řádku. Je-li zapnuta ladění, zobrazení proměnné bude viditelné na pravé straně hlavního okna. Velikost můžete změnit tak, že přetáhnete levý okraj. Různá nastavení režimu "zapnuto" nebo "vypnuto" se ukládají a obnovují, když je zapnuto nebo vypnuto. Pomocí kolečka myši můžete změnit viditelnou velikost grafu a grafiky. Pravým tlačítkem myši můžete otevřít kontextové menu pro grafy se svými funkcemi zoomu. SAMP Lua Scripts je knihovna pro Moonloader, která doplňuje některé příkazy pro zjednodušení modifikace SA: MP, SAMP. Události vám umožňují velmi snadno a jednoduše zpracovávat síťové a balíkové sítě s příjmovou a výstupní úrovní SA a MP. Data můžete přepisovat nastavením všech argumentů v tabulce ve správném pořadí, ať už můžete přerušit zpracování jakýchkoli paketů vrácením false, což zabraňujezměňte pozici hráče v přehrávači. Před instalací skenovacího svazku Lua můžete přidat vlastní vlastnost paketu.

    Lua-WoW Distribution

    Toto je distribuce zdrojového kódu Lua, upravená tak, aby odpovídala prostředí World of Warcraft. Jeho údaje:
  • Administrátoři: morlando.
  • Uživatelé: morlando.
  • Licence: MIT /X.
  • Jazyk: c, lua 5.
  • Tagy: překladatelé, testovací nástroje.
  • Operační systémy: makra, okna, os autonomie.
  • Tato jazyková verze je nakonfigurována tak, aby odpovídala prostředí Lua World of Warcraft. Všechna nastavení kompatibility 5.0-5.1 jsou deaktivována kromě openlib. Knihovna Bitlib funguje. Některé wow take scripts - specifické, take-library funkce implementovány. Program poskytuje globální aliasy pro funkce "Lua.string.format", mohou využít volbu argumentů z Lua 4.0. Binární soubory systému Windows obsažené v tomto stahování jsou staticky spojené s výkonem. Nesmějí pracovat podle očekávání uživatele, pokud jsou používány s některými dalšími balíčky. Historie verzí:
  • V112 - Přidáno křovinořečkou, projekt Visual Studio je inovován na Visual Studio 2008 Visual C ++. Runtime je nyní staticky propojen, který musí odstranit některé problémy spojené se získáním wow s určitými Windows.
  • Lua skripty v34 c - přidaný strrelpace (string.replace, wow.strreplace).
  • V1101 - msvcr80.dll je přidán do okna projektu.
  • V110 - nově definované soubory readme. Přejmenované projekty msvc a názvy exe exit. Projekt msvc obsahuje ikonu a prostředky Lua pro spustitelné soubory.
  • V1.9 - Přidány globální verze trigonometrických funkcí. Program správně používá stupně .strsplit,vytiskne příslušnou chybovou zprávu, pokud přetečí zásobník, což je nyní prakticky nemožné u strjoin.
  • V1.8 - Aktualizovaná kompatibilita 5.0 openlib, protože WoW nepoužívá libs.
  • V1.7 - GCPAUSE změněn na 110 na WoW 2.1. Opraveno bylo několik různých výstrah kompilátoru.
  • V161 - přidáno #define LUA_LIB pro lwowlib & amp; lbitlib opravit sestavování problémů v skriptech Lua pro sampo.
  • V1.6 - bitlib aktualizován na nejnovější verzi. Nyní správně používá 32bitová celá čísla, například WoW. Globální aliasy pro bitlib a table.setn byly odstraněny, protože v WoW neexistují.
  • V151 - ignoruje pořadí bajtů UTF-8.
  • V1.5 - přidán debugstack, některé malé optimalizace a zjednodušení kódu.
  • V1.4 - přidala volbu argumentu string.format.
  • V131 - Opraven problém s makefilem.
  • V1.3 - Přidány specifické funkce, globální aliasy, css Lua skripty.
  • V1.2 - Tento balíček je nyní možné použít jako náhrada za standardní distribuční zdroj Lua: Project MSVC, včetně předkompilované binární soubory Windows, jsou nyní v podadresáři MSVC další adresářové struktury není rozbité.
  • V1.1 - Přidáno BitLib. Optimalizovaná velikost souboru Luac.exe. Zahrnuje testovací programy.
  • Herní engine Pico-8

    Pico-8 - je fantastický program, který emuluje plný herní konzole s omezenými 8-bitových specifikací. Má všechny potřebné nástroje pro programování v Luě. Důvodem, proč si uživatelé zvolí Pico-8, je, že je možné ho použít přímo z krabice bezpotřeba instalace nebo externích editorů, všechny nástroje jsou součástí balení skriptů Lua pro sampo a trénink je jednoduchý.
    Jak postupovat:
  • Obvykle se nazývá první program, který je vytvořen v novém jazyce, program "Hello world", ale pro programovací jazyk Lua je "Hello Lua" napsán.
  • Stáhnout Pico-8.
  • Instalace a spuštění.
  • Po stažení se zobrazí výzva «& gt;".
  • Chcete-li získat přehled o možných příkazech, stiskněte klávesu ESC. Nyní, když je editor otevřen, zadejte kódy zobrazené na obrázku výše.
  • Dalším stisknutím klávesy ESC se vrátíte do pozvánky, zadáte CLS a poté spusťte.
  • Získejte první aplikaci Lua na Pico-8.
  • Chcete-li skript uložit, použijte příkaz SAVE: SAVE HELLOLUA.
  • Pokud chcete pracovat s programem, můžete použít funkci BTN (), která poskytuje odpověď na klávesnici.
  • Chcete-li mít více grafických funkcí, použijte dvě speciální funkce zpětného volání, nazývané UPDATE a _DRAW. Následující program umožňuje přesunout kruh kurzorovými tlačítky.
  • Stisknutím klávesy ESC přejdete do editoru kódu, zadejte nebo zkopírujte a vložte kód jako na obrázku níže.
  • Stisknutím klávesy escape se vrátíte do konzoly a vstoupíte do režimu RUN.
  • Pico-8 je určen pouze pro velká písmena, takže můžete pouze psát písmo, není třeba používat Shift nebo Caps-lock. Editor má také kódování barev syntaxe. Pokud se podíváte do pravého horního rohu editoru, můžeteviz některé ikony. Je to vestavěné nástroje pro vytváření skriptů, map, zvuků a hudby. Tento příklad je poměrně jednoduchý, ale dává představu o editoru a jazyce. Chcete-li prozkoumat zajímavější příklady, přejděte do adresáře DEMOS. Pro tento účel zadejte příkaz INSTALL_DEMOS. Po otevření adresáře DEMOS s několika příklady studijních programů. Jednou z hlavních výhod společnosti Lua je její jednoduchost. Některé společnosti používají tento jazyk pouze proto, že si myslí, že jejich zaměstnanci budou schopni pracovat lépe. Některé velmi jednoduché jazyky, jako například Bash nebo Batch, nebudou dostatečně silné k tomu, aby vykonaly potřebné úkoly, ale Lua je jak výkonný, tak snadný program. Další důležitou výhodou skriptů Lua pro css v34 je jejich schopnost implementace, která je uznávána jako jedna z nejdůležitějších vlastností tohoto produktu během jeho vývoje. Hry jako World of Warcraft nebo ROBLOX mají schopnost integrovat Luu do svého programu.

    Související publikace