Skrypty Lua: przykłady instalacji i uruchamiania

Lua nie jest język ynterpretyrovannыm i generuje kodu bajtowego z innej aplikacji, na przykład Java. Ten program działa na maszynie wirtualnej Lua VM. Większość z tych urządzeń nazywane są stosy, ale Lua jest inny, że jest on oparty na rejestrach i jest jednym z pierwszych powszechnie używanych VM w dziedzinie gier. Zaletą Rehystornoy architektury jest to, że unika się dużej liczby kopyrovannыh zmniejsza ilość danych i instrukcji dotyczących funkcji. Lua VM ma automatyczne zarządzanie pamięcią i upuszczanie niepotrzebnych informacji, który zapewnia idealną konfigurację dla szybkiego prototypowania skryptów.

Krótko o Louvie

Lua jest łatwym do nauczenia się i szybkim językiem skryptowym z paskalową składnią. Pozwala to początkującym programistom pisać własne programy. Jest używany w wielu grach i aplikacjach, aby rozszerzyć istniejącą funkcjonalność i sekwencje użytkowników programisty. W Internecie istnieje wiele programów szkoleniowych, które pomagają pracujących w tym języku, w tym wiele informacji jest dostępnych na stronie głównej Lua.


to język programowania został stworzony w Brazylii w 1993 Yerusalshymom programistów Roberto Luis Enrique de Fyheyredo i Waldemar Tselesom na Uniwersytecie w Rio de Janeiro, gdzie urząd «LabLua». Nazwa pochodzi od języka portugalskiego, co oznacza "miesiąc" w tłumaczeniu. Jednym z poprzedników był SOL (Simple Object Language). Ponieważ nazwa Lua jest rzeczownikiem, a nie skrótemnie powinno być napisane jak LUA, a mianowicie Lua. Jest to elastyczny język, używany na kilka sposobów:
  • Wikipedia używa Lua do szablonów skryptów.
  • VLC Media Player współpracuje ze skryptami Lua dla skryptów quik.
  • Lua jest używana w aplikacjach przemysłowych, takich jak Adobe Lightroom.
  • Programy dla systemów wbudowanych, takich jak pośredni Ginga dla telewizji cyfrowej.
  • Gry to wiodąca gra na skrypty, na przykład używana do tworzenia World of Warcraft i Angry Birds.
  • Każdy może spróbować użyć kodu online w Lua Demo z interesującym sposobem na poznanie i korzystanie z silnika gry.
  • Funkcjonalność tego programu można wykorzystać w L? VE, Defold i, oczywiście, w Pico-8.


    Podstawy składni

    Lua używa bardzo uproszczonej składni. Użytkownik nie musi używać kropek rozdzielonych przecinkami lub dużych odstępów, ponieważ te znaki są interpretowane przez sam program. Wszystkie zmienne w skryptach Lua dla quik mają globalny zasięg globalny. Dlatego zawsze należy określić, kiedy lokalne wartości są potrzebne dla bieżącego regionu i ogłaszać je z góry. W rzeczywistości w praktyce niewiele jest przypadków, w których wartości globalne są naprawdę potrzebne. Możesz zdefiniować zmienną lokalną za pomocą słowa kluczowego local. W tym samym czasie nie jest konieczne deklarowanie jego wartości. Zmienne globalne oznaczają kontekst bieżącego skryptu, a zatem nie są dla każdego skryptu w grze, z których każdy działa niezależnie i autonomicznie.
    Zmienne mogą zawierać dowolną sekwencję cyfr, liter i podkreśleń, ale tak się nie dziejemusi zaczynać się od numeru. Wartość Null oznacza słowo kluczowe, gdy zmienne nie są zdefiniowane. Niepublikowane różnią się od zadeklarowanych zmiennych, które nie mają znaczenia. Przykłady skryptów Lua:

    Bloki kodu i operatorzy, jeżeli

    Bloki są definiowane przez określone słowa kluczowe, a następnie przez "koniec". Warunkom w instrukcjach if musi towarzyszyć klawisz "wtedy". Jeśli instrukcje używają "elseif", a nie "else if". Możesz utworzyć nowy pusty obszar z blokiem "doend". Lua używa specjalnego typu danych, zwanego tabelą przeznaczoną do tworzenia tablic, słowników, wykresów mieszających, obiektów innych języków. Tabela to po prostu lista par klucz-wartość, którymi mogą być dowolne dane, nawet inne tabele Możesz użyć wartości logicznej jako klucza. Ponieważ Lua jest dynamicznie wpisywany, możesz mieć dowolną kombinację typów danych zarówno w kluczach, jak i selekcje użytkownika, które należy ustalić przed zainstalowaniem skryptów Lua. Wartości tabel można definiować zarówno wewnętrznie, jak i indywidualnie. Zwykle istnieją dwa sposoby na uzyskanie i ustawienie ich wartości, składnia "kropka", na przykład "myTable.a", oraz składnia nawiasów, na przykład "myTable [" a "]". Podczas używania łańcuchów można używać tylko składni punktowej i nie można jej użyć, jeśli ciąg rozpoczyna się od liczby.
    Każda wartość w tabeli jest brana pod uwagę, zero - jeśli nie jest ustawiona. Oznacza to, że niemożliwe jest ustalenie, czy wartość jest zadeklarowana w tabeli, czy jest to zero, jeżeli nie zostało wcześniej zdefiniowane. Oznacza to, że jeśli klucze w tabeliwskazana i ustawiona na zero, nie będzie miała żadnego efektu, a raczej będzie taka sama, jak gdyby w ogóle nie została określona. W Lua klawiatury numeryczne zaczynają się od indeksu 1, a nie od 0. To powoduje wielki ból głowy dla programistów. Można podzielić wbudowane elementy tabeli przecinkiem lub średnikiem.

    Skomplikowany typ danych

    Tabele są traktowane jako złożony typ danych w Lua - oznacza to, że zmienne w nich po prostu odnoszą się do tego samego obiektu w pamięci, więc nie można bezpośrednio porównać tych dwóch wartości i oczekiwać, że oni coś zrobią. Jednak linie, liczby, litery i inne pierwotne typy danych można porównać bezpośrednio. Liczby w języku Lua są używane tylko w jednej formie - ich własnej liczbie. Nie ma takich typów jak int, float, long, double i in., Jak w innych językach, i należy to wziąć pod uwagę przed instalacją skryptów Lua. Technicznie, wszystkie wartości w Lua są liczbami zmiennoprzecinkowymi.
    Lua ma tylko "=" operatora do określenia i zwiększenia. Nie ma "+ =", "- =", "++" ani niczego innego. Operator konkatenacji to "". Możesz zastosować tę operację na liniach i liczbach bez żadnych problemów. Jednak nie można łączyć innych typów danych - logicznych lub tabelarycznych. Możesz uzyskać długość tabeli lub ciągu znaków za pomocą operatora "#", a to działa tylko dla tablic z indeksami numerycznymi. Na przykład kod nie będzie działał z tabelami, które mają indeksy ciągów.

    Typy pętli Pętle

    Istnieją cztery rodzaje cykli Loop, które w tłumaczeniu oznaczają pętlę lub zakręt. Natomiast (pośredni) jest najprostszą formąCykl i funkcje, jak należy się spodziewać w innych językach, i oznacza, że ​​kontrola jest wykonywana przed rozpoczęciem bloku wewnętrznego. Numeric for loop (cyfrowy). Pętla stosuje lokalną zmienną do jej obszaru i ją zwiększa lub zmniejsza. Użytkownik ogłasza i definiuje zmienną, która ma być używana, oraz znaczenie celu. Generic for loop (generated) - używa funkcji iteratora. Jest wywoływana przez powtarzanie każdej pętli i zwraca wartości, które będą w niej używane. Pary (pary) to funkcja iteracyjna w skali globalnej. Przyjmuje tabelę jako argument, zwraca indeks i wartość każdej zmiennej w tabeli. Kod odbierze nawet niezerowe wskaźniki. Ma "brata" - w ten sam sposób, z tym wyjątkiem, że działa tylko z indeksami liczbowymi i zatrzymuje się po osiągnięciu zera. Pętla powtarzania jest podobna do while, z tym wyjątkiem, że sprawdzanie warunków odbywa się na końcu bloku, a nie na początku. Przed otwarciem skryptu lua należy pamiętać, że kod wewnątrz zostanie uruchomiony co najmniej raz. Cykl powtórzeń zwykle unika rozwoju tego języka, ponieważ jego precedens jest ograniczony i trudny do odczytania, ponieważ nie używa standardowej składni doend.

    Metoda funkcji

    Funkcje są innym złożonym typem danych, mogą być przekazywane jako zmienne, a także możesz wywoływać je w celu wewnętrznego wykonania kodu. Są podobne do metod w innych językach. Istnieją dwa sposoby definiowania funkcji w Lua. Pierwsza reklama jest globalna, ponieważ nie ma lokalnego słowa kluczowego. Z regułyfunkcje globalne są uznawane za akceptowalne. Niemniej jednak, użytkownik może nadal uczynić je lokalnymi, jeśli to konieczne, ustawiając "lokalny" front. Możesz także zadeklarować zmienne przed zidentyfikowaniem funkcji, które są nadal podobne do innych typów danych. Możesz je przesłać, przypisać zmienne lub zaakceptować tyle argumentów, ile potrzebujesz, używając składni "". Właściwym obiektem jest "tuple" (tuple), więc trzeba go otoczyć nawiasami klamrowymi, aby przekształcić dane w tabelę. Krotka jest po prostu listą nazw, takich jak parametry funkcji, które mogą zwracać wiele wartości, i które z kolei mogą być nazwane zmiennymi. Jeśli umieścisz funkcję w tabeli, możesz wywołać ją na dwa różne sposoby. Standardowa składnia punktowa lub dwukropek wysyła tablicę jako pierwszy argument.

    Globalna przestrzeń nazw

    "Loua" udostępnia kilka tabel w globalnej przestrzeni nazw, które zawierają funkcje pomocnicze, takie jak "ciąg", "tabela" i "matematyka". Dlatego użytkownik nie może nigdy podawać żadnej zmiennej od nazwanego, ponieważ będzie redystrybuować tablice zawierające przydatne funkcje. Istnieją dwie tabele, które są współużytkowane przez wszystkie skrypty na serwerze lub kliencie (ale nie dla obu) - są to "_G" i "udostępnione". Pierwsza z nich jest prawdziwie globalna, która jest implementowana przez osobne skrypty, więc jeśli chcesz uzyskać lub ustawić wartości z niej, użyj "_G.something". "Strings" (Strings) - ta funkcja Lua może na kilka sposobów definiować dane literowe i wielowierszowe za pomocą podwójnych nawiasów kwadratowych. A takżemożna umieścić dowolny numer znak równości (=) w nawiasach kwadratowych ([=== [] ===]). Są zrównoważone, mogą zawierać sekwencje wewnątrz, jak]]. Lua posiada również swój własny zestaw funkcji wbudowanych manipulowania ciągi i posiada własny wytłoczoną wersję wyrażeń regularnych, zwanych wzorców smyczkowych.

    Gra miesięczny scenariusz

    To jest bardzo proste pierwsze kroki pisania programów, ale są dobrym punktem wyjścia do hakerskich skryptów Garry Mod 10 Lua. Pierwszym krokiem jest stworzenie rzeczywistego pliku skryptu dla Lua. Otwórz tekst lub edytor - notebook będzie działał dobrze w tym celu. Następnie zapisz ten plik, wpisując jak na zdjęciu.
    Gdzie:
  • - nazwa użytkownika haseł.
  • - katalog Steam dla Garry's Mod.
  • Ustaw domyślne ustawienia dla skryptów Lua-Garry s mod zwykle «C: Program FilesSteamsteamappsgarrysmod», ale mogą się różnić na komputerze - «autorunclient». Wszelkie pliki skryptów umieszczonych w katalogu zostanie uruchomiony przy starcie Lua klienta, takich jak kiedy zacząć nową grę lub użytkownik łączy się z serwerem. Następnie utwórz plik Hello World, dodając do niego skrypt skryptu lua mod. To jest najłatwiejsza opcja.
    Może się to wydawać trochę dezorientujące. Skrypt daje zawartość tabeli (co spowodowało tablic lub list) oraz dane przechwytuje do konsoli poleceń, aby potwierdzić, że trzeba zdefiniować funkcję, która nie przyjmuje żadnych parametrów i nie zwraca wartości, ale zawsze wyznacza „koniec” na końcu ich zespołów. Funkcje to modułowe fragmenty kodu, które sąmoże być używany kilka razy. Ten przykład pokazuje, jak uruchomić skrypt Lua. Tutaj tworzona jest lista napisów, ale użytkownik może także dodawać inne obiekty. Tabele są asocjacyjne lub hashish. Oznacza to, że każda pozycja na liście może odnosić się do klucza.
    Polecenia te drukują wszystkie elementy tabeli, a struktura nazywa się pętlą. Zwróć uwagę na parę myTable, która uruchamia się raz dla każdej pozycji i zwraca parę klucz /wartość dla wartości z listy. Wartość to pozycja w tabeli, a klucz to tylko sposób na połączenie z nią. Ten przykład pokazuje, jak wyprowadzać zmienne tekstowe i wartościowe za pomocą tego samego polecenia drukowania. Zmienne "klucz" i "wartość" ustawia się w powyższym cyklu. Zwróć uwagę na "" między liniami i zmiennymi. Symbolem "" jest operator konkatenacji Lua. To mówi językowi, że trzeba skleić razem te dwa elementy i uznać je za jeden ciąg tekstowy ".concommand.Add":
  • my_test_function;
  • myTestFunction.
  • Rekord tworzy polecenie konsoli, które uruchamia jedyną zainicjowaną funkcję. Jego pierwszym parametrem jest nazwa zespołu kontrolnego, w tym przypadku: "my_test_function". To właśnie użytkownik wchodzi do konsoli trybu Garry, aby uruchomić skrypt. Drugi parametr to funkcja uruchamiania, w tym przypadku: myTestFunction. Ten plik powinien zostać zapisany później. Następnie testują skrypt, uruchamiają nową grę Garry's Mod. Następnie otwórz konsolę za pomocą tyldy (~). Jeśli się nie pojawi, musisz go włączyć, wpisując "my_test_function" w wierszu u dołu panelu. Po uruchomieniu rozpocznie się automatyczne wypełnianieekran z nazwą polecenia, naciśnij Enter, aby go uruchomić.

    Cechy Lua-Quick-Try-Out

    Ta konsola jest przeznaczona do bezpośredniego wprowadzania kodu Lua (na przykład polecenie polecenie Lua (8 + 9) natychmiast wyświetla wynik 17). Jego funkcje:
  • Główne okno kodu źródłowego z jego funkcjami zapisywania i pobierania.
  • Debuger skryptów z punktami przerwania, jednoetapowym wykonaniem i widokiem zmiennych.
  • Funkcje tworzenia tabel.
  • Funkcje tworzenia diagramów.
  • Funkcje tworzenia obrazów graficznych.
  • Funkcje tworzenia wykresów wektorowych.
  • Pomoc online do tworzenia funkcji Lua.
  • Zatrzymaj punkty konsoli można ustawić, klikając obok numeru linii. Jeśli włączone jest debugowanie, widok zmiennych będzie widoczny po prawej stronie głównego okna. Możesz zmienić jego rozmiar, przeciągając lewą krawędź. Różne ustawienia trybu "włączony" lub "wyłączony" są zapisywane i przywracane, gdy są włączone lub wyłączone. Możesz użyć kółka myszy, aby zmienić widoczny rozmiar wykresu i grafiki. Możesz użyć prawego przycisku myszy, aby otworzyć menu kontekstowe dla wykresów z ich funkcjami powiększania. SAMP Lua Scripts to biblioteka lua dla Moonloadera, która dodaje kilka poleceń, aby uprościć modyfikację SA: MP, SAMP. Zdarzenia pozwalają w bardzo prosty sposób obsługiwać przychodzące i wychodzące pakiety sieciowe niskiego poziomu SA i MP. Możesz przepisać dane, ustawiając wszystkie argumenty w tabeli we właściwej kolejności, bez względu na to, czy możesz przerwać przetwarzanie jakichkolwiek pakietów, zwracając wartość false, co zapobiegazmienić pozycję użytkownika odtwarzacza Przed zainstalowaniem samp skryptu Lua, możesz dodać własny moduł obsługi pakietów.

    Dystrybucja Lua-WoW

    Jest to dystrybucja kodu źródłowego Lua, zmodyfikowana tak, aby pasowała do środowiska dodatkowego World of Warcraft. Jego dane:
  • Administratorzy: morlando.
  • Użytkownicy: morlando.
  • Licencja: MIT /X.
  • Język: c, lua 5.
  • Tagi: tłumacze, narzędzia testujące.
  • Systemy operacyjne: makra, okna, autonomia os.
  • Ta wersja językowa jest skonfigurowana tak, aby pasowała do środowiska Lua World of Warcraft. Wszystkie ustawienia zgodności 5.0-5.1 są wyłączone z wyjątkiem openlib. Działa biblioteka Bitlib. Niektóre skrypty wow lua - zaimplementowano specyficzne funkcje biblioteki lua. Program udostępnia globalne aliasy dla funkcji "Lua.string.format", mogą one korzystać z wyboru argumentów z Lua 4.0. Binarne pliki systemu Windows uwzględnione w tym pobraniu są statycznie powiązane z wydajnością. Mogą nie działać zgodnie z oczekiwaniami użytkownika, gdy są używane z niektórymi innymi pakietami. Historia wersji:
  • V112 - Dodano szorowanie, tostringall, projekt Visual Studio został uaktualniony do Visual Studio 2008 Visual C ++. Środowisko wykonawcze jest teraz statycznie powiązane, co musi rozwiązać niektóre problemy związane z lua-wow w niektórych systemach Windows.
  • Skrypty Lua v34 c - dodano strrelpace (string.replace, wow.strreplace).
  • V1101 - msvcr80.dll jest dodawany do okien projektu.
  • V110 - przedefiniowane pliki readme. Przemianowane projekty msvc i exe nazwy wyjść. Projekt msvc zawiera ikonę i zasoby Lua dla plików wykonywalnych.
  • V1.9 - Dodano globalne wersje funkcji trygonometrycznych. Program poprawnie używa stopni .strsplit,wypisuje odpowiedni komunikat o błędzie, jeśli przepełnia stos, który jest praktycznie niemożliwy w przypadku łączenia.
  • V1.8 - Zaktualizowana kompatybilność 5.0 openlib, ponieważ WoW i tak nie używa bibliotek.
  • V1.7 - zmieniono GCPAUSE na 110 na WoW 2.1. Naprawiono kilka różnych ostrzeżeń kompilatora.
  • V161 - dodano #define LUA_LIB dla lwarzeńb & amp; lbitlib naprawiać kompilowanie problemów w skryptach Lua dla sampo.
  • V1.6 - bitlib zaktualizowany do najnowszej wersji. Teraz poprawnie używa 32-bitowych liczb całkowitych, takich jak WoW. Globalne aliasy dla bitlib i table.setn zostały usunięte, ponieważ nie istnieją w WoW.
  • V151 - ignoruje kolejność bajtów UTF-8.
  • V1.5 - dodano debugstack, niektóre małe optymalizacje i uproszczenia kodu.
  • V1.4 - dodano wybór argumentu string.format.
  • V131 - Naprawiono problem z Makefile.
  • V1.3 - Dodano określone funkcje, globalne aliasy, skrypty Lua CSS.
  • V1.2 - Pakiet ten może być teraz używany jako zamiennik standardowego Lua dystrybucyjnej źródło: Projekt MSVC, w tym wstępnie skompilowanych plików binarnych systemu Windows, są obecnie w MSVC podkatalogu, inna struktura katalogów nie jest złamana.
  • V1.1 - Dodano BitLib. Zoptymalizowany rozmiar pliku Luac.exe. Obejmuje programy testowe.
  • silnik gry Pico-8

    Pico-8 - jest to fantastyczny program, który emuluje pełną konsolę do gier z ograniczonymi specyfikacji 8-bitowych. Ma wszystkie niezbędne narzędzia do programowania w Lua. Powodem, dla którego użytkownicy wybrać Pico-8 jest to, że może on być stosowany zaraz po wyjęciu z pudełka, bezpotrzeba instalacji lub zewnętrznych edytorów, wszystkie narzędzia są zawarte w pakiecie skryptów Lua dla sampo, a szkolenie jest proste.
    How-to:
  • Zwykle nazywany pierwszym programem, który jest tworzony w nowym języku, program "Hello world", ale dla języka programowania Lua, "Hello Lua" jest wpisany.
  • Pobierz Pico-8.
  • Zainstaluj i uruchom.
  • Po pobraniu otrzymasz zaproszenie «& gt;».
  • Aby uzyskać przegląd możliwych poleceń, naciśnij klawisz ESC Teraz, gdy edytor jest otwarty, wprowadź kody pokazane na powyższym obrazku.
  • Naciśnij ESC ponownie, aby powrócić do zaproszenia, wpisz CLS, a następnie RUN.
  • Zdobądź pierwszą aplikację Lua na Pico-8.
  • Aby zapisać skrypt, użyj polecenia ZAPISZ: SAVE HELLOLUA.
  • Jeśli chcesz pracować z programem, możesz skorzystać z funkcji BTN (), która zapewnia odpowiedź na naciśnięcie klawisza.
  • Aby mieć więcej możliwości graficznych, użyj dwóch specjalnych funkcji wywołania zwrotnego o nazwie UPDATE i _DRAW. Poniższy program pozwala przesuwać kółko za pomocą klawiszy kursora.
  • Naciśnij ESC, aby przejść do edytora kodów, wprowadź lub skopiuj i wklej kod, jak na poniższym rysunku.
  • Naciśnij escape, aby powrócić do konsoli i wprowadź RUN.
  • Pico-8 jest przeznaczony tylko dla wielkich liter, więc możesz po prostu wpisać czcionkę, bez użycia Shift lub Caps-lock. Redaktor ma również kolorowanie składni kodu. Jeśli spojrzysz w prawy górny róg edytora, możeszzobacz niektóre ikony. To wbudowane narzędzia do tworzenia duszków, map, dźwięków i muzyki. Ten przykład jest dość prosty, ale daje pojęcie o edytorze i języku. Aby poznać bardziej interesujące przykłady, możesz przejść do katalogu DEMOS. Wprowadź do tego INSTALL_DEMOS. Po otwarciu katalogu DEMOS z kilkoma przykładami programów studiów. Jedną z głównych zalet Lua jest jego prostota. Niektóre firmy używają tego języka wyłącznie dlatego, że uważają, że ich pracownicy będą w stanie pracować lepiej. Niektóre bardzo proste języki, takie jak Bash lub Batch, nie będą wystarczająco silne, aby wykonać niezbędne zadania, ale Lua jest zarówno wydajnym, jak i łatwym programem. Inną ważną zaletą skryptów Lua dla css v34 jest ich zdolność do implementacji, która jest uznawana za jedną z najważniejszych cech tego produktu podczas jego rozwoju. Gry takie jak World of Warcraft czy ROBLOX mają możliwość zintegrowania Lua z ich programem.

    Powiązane publikacje