Wst?p
Witam serdecznie w pierwszym epizodzie poradnika z serii LUA Coding (PL: Kodzimy w LUA).
Jako, ?e na forum i na og?? w internecie znajduje si? bardzo ma?o poradnik?w tego typu,
postanowi?em stworzy? serie poradnik?w, w kt?rym to poznamy: 1) J?zyk skryptowy LUA, podstawy 2) Poslugiwanie sie plikami XML 3) Tworzenie, usuwanie i wywolywanie eventow 4) Oskryptowanie wraz z wykorzystaniem funkcji MTA
5) Tworzenie komend 6) Tworzenie zapytan MySQL 7) Zarzadzanie danym zasobem 8) Estetyczny podzia? zasob?w, jaki najlepszy - i dlaczego.
Seria b?dzie obejmowa?a 8 epizod?w/cz??ci.
Ca?o?? po zako?czeniu serii b?dzie wydana w wersji offline, czyli mo?liwej do pobrania na w?asny komputer - bez potrzeby wchodzenia na forum.
Ponadto, w poradnikach nie b?d? opisywa? co dana funkcja robi, tylko jej dzia?anie.
Szczeg??y mo?na zobaczy? na angielskiej WIKI.
Wprowadzenie
A wi?c zaczynamy! Po pierwsze, wyja?nijmy sobie co to jest LUA i do czego si? to u?ywa.
LUA - to lekki j?zyk skryptowy o wysokiej wydajno?ci, napisany w roku 1993 przez 3 autor?w. J?zyk ten zaimplementowany jest jako ma?a biblioteka do j?zyka C.
Celem implementacji jest prostota, wydajno?? i przeno?no?? kodu.
By m?c pisa? w LUA potrzebujemy:
Ch?ci,
Logicznego my?lenia,
Drobnej wiedzy o j?zykach programowania,
Edytora tekstowego, w kt?rym to bedziemy pisac nasz kod.
?rodowisko pracy
W tym dziale, musimy sobie wybra? edytor tekstowy. Jest ich od groma. Jednak najlepszym i polecanym przeze mnie jest Notepad++, oraz Sublime Text 3.
Do tego s? te? edytory: Luaedit i MTA Script Editor - autorstwa 50p.
Nie b?d? pisa? jak gdzie i sk?d pobra? oraz jak to skonfigurowa? - to jest zbyt proste, ?eby to opisywa?.
Wystarczy czyta? ze zrozumieniem, okej - gdy mamy ju? gotowe ?rodowisko pracy. Mo?emy przej?? do nast?pnego dzia?u.
Podstawy LUA
Dzia? ten jest dosy? obszerny, mo?na tutaj pisa? godzinami, dniami, tygodniami i latami...
Nie b?dziemy zagl?da? do bardziej skomplikowanych dziedzin z tego j?zyka - zajmiemy si? tylko tymi potrzebnymi rzeczami.
Zmienne
Co to jest zmienna?
Zmienna to najlepszy przyjaciel ka?dego programisty - chc?cego wydajne upro?ci? sw?j program.
Wyr?zniamy dwa typy zmiennych:
lokalne,
globalne.
Zmienna lokalna dzia?a jednie w obr?bie jednego pliku, w kt?ry to zosta?a stworzona.
Zmienn? lokaln? wyznaczamy w nast?puj?cy spos?b:
Przyk?ad zmiennej lokalnej:
Na przyk?adzie ukazali?my zmienn?, ktora przechowuje warto?? liczbow? (int): 12.
Mo?emy jej u?y? w instrukcji warunkowej, doda?, odj??, podzieli?, pomno?y? i tym podobne.
Zmienna globalna dla r??nicy dzia?a w obr?bie ca?ego zasobu - po danej stronie (klienta/serwera) - zale?y to od tego, gdzie zosta?a ona stworzona tzn. po jakiej stronie.
Zmienn? globaln? wyznaczamy w nast?puj?cy spos?b:
Tak jak w przypadku zmiennej lokalnej zmienna globalna przyjmuje warto?? liczbow? (int): 12.
Rozpozna? je mo?na po braku przedrostka "local".
Ka?dy typ zmiennej definiujemy za pomoc? znaku r?wno?ci (=), a po nim deklarujemy warto?? zmiennej.
Zmienne dziel? si? na cztery rodzaje:
string
int
bool
float/double
Zmienna typu string jest ?a?cuchem tekstowym, wyznaczamy j? rozpoczyj?c od cudzys?owia " i ko?cz?c tym samym.
Przyk?ad zmiennej z wykorzystaniem typu string.
Przyk?ad zmiennej z typem int:
Przyk?ad zmiennej z typem bool. Bool(ean) jest warto?ci? logiczna. Przechowuje jedynie dwie warto?ci - true lub false (prawda lub fa?sz).
Tablice w LUA
Tablice w LUA, s? magazynem zmiennych. Mo?na w nich przechowywa? ma?e ilo?ci danych lub du?e.
Tablice r?wnie? dziel? si? na: 1) lokalne, 2) globalne. Wed?ug tej samej regu?y co zwyk?e zmienne.
Mo?na powiedzie?, ?e deklaracja tablicy jest stworzona na zasadzie deklaracji typu string, tylko, ?e w tym przypadku zaczynamy deklaracje znakiem { i ko?czymy }.
Przyk?adowa tablica lokalna:
Tego typu tablica zawiera ci?g danych pod jedn? zmienna - ma to cz?ste zastosowanie w p?tlach for i nie tylko.
Jak widzicie deklarujemy tak samo jak zmienne, z t? r??nic?, ?e stosujemy klamry.
Inny rodzaj tablicy, potocznie zwan? tablic? 2d:
Tego typu tablica wygl?da nast?puj?co, numery w nawiasach kwadratowych s? numeracji pod zmienn? tzn. np. local tablica[1].
W ten spos?b zmienna lokalna o nazwie "tablica" przyjmuje warto?? spod cyfry jeden, czyli od 1 do 2. Mo?na r?wnie? wpisa? cyfr? i mie? pojedyncz? warto??.
W cz??ci o p?tlach poka?? Wam praktycznie zastosowanie takich tablic, a w chwili obecnej lecimy do instrukcji warunkowych.
Instrukcje warunkowe
Instrukcje warunkowe s? jedn? z najwa?niejszych cz??ci programowania - to one nadaj? naszym programom r?ce i nogi.
W LUA wyr?zniamy nast?puj?ce instrukcje warunkowe:
if - then - end
elseif - then - end
else - end
IF - Instrukcja warunkowa "je?li" lub "je?eli" - je?li co? jest r?wne czemu? / je?li co? jest prawd? lub fa?szem.
ELSEIF - Przed?u?enie instrukcji warunkowej "IF", s?u?y do weryfikacji/zaprzeczenia innej warto?ci pod tym samym warunkiem.
Przyk?adowo by nie pisa? 30 razy IF.
ELSE - Zaprzeczenie g??wnego warunku instrukcji warunkowej "IF".
Przyklady instrukcji warunkowych:
IF IF + ELSEIF
IF + ELSE
Skoro mowa o instrukcjach. Warto te? sobie pozna?/przypomnie? operatory stosowane w instrukcjach warunkowych.
P?tle
P?tle s?u?? do zap?tlenia, zautomatyzowania konkretnego bloku kodu.
W LUA wyr??niamy nast?puj?ce p?tle:
for - do - end
while - do - end
while true - do - end
repeat - until
Przyk?ad p?tli FOR:
W powy?szym przyk?adzie p?tla FOR zako?czy si?, gdy warto?? tablicy zako?czy si? na liczbie 6.
P?tle ponadto, posiadaj? tak?e tzw. funkcje. S?u?? do pomijania lub zatrzymywania p?tli.
S? nimi:
break - zatrzymuje aktualnie wykonywana petle
continue - pomija aktualna iteracje
Komentarze
Komentarze to drugi po tabach pomocnik programisty. S?u?? do opisania bloku kodu, b?d? jego zakomentowania (ta druga opcja przydaje si?, gdy mamy jaki? b??d w kodzie).
Wyr??niamy dwa rodzaje komentarzy:
Przyk?ad komentarza jednowierszowego - rozpoczynamy komentowanie od dw?ch my?lnik?w tj. "--", po czym wpisujemy tekst.
Za? komentarze wieloliniowe rozpoczynamy od "--[[" a ko?czymy "]]--"
W nast?pnej cz??ci poradnika, zajmiemy si? przygotowaniem naszego pierwszego zasobu, uruchomienia i skonfigurowania serwera.
Zakaz rozpowszechniania na inne fora lub zmiany jego autora.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach