Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2012-05-06, 14:38


Jacob

Głupiomądry






Wiek: 28
Na forum: 5643 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

Chcesz zacz?? przygod? z LUA, a nie wiesz od czego zacz??? Ju? wiesz! ;)

1. Pierwsza funkcja (function).


Do tworzenia wszystkiego u?ywamy s??w angielskich, czyli zaczynamy function, a ko?czymy end.
function nazwafunkcji (argument1, argument2)
    -- todo
end

Tak wygl?da budowa funkcji.

Obja?nienie:
Kod:

function nazwafunkcji
- tworzymy funkcje o nazwie nazwafunkcji
Kod:

(argument1, argument2)
- dodajemy argumenty
Kod:

end
- zaka?czamy funkcje

2. Zmienne (local).


Jak sama nazwa nazwa wskazuje. Pod ni? mo?emy podpisa? np. string, liczb? itp.
Do funkcji, kt?r? stworzyli?my dodamy zmienn? z warto?ci? liczbow? 10. Budowa jest prosta.
function nazwafunkcji (argument1, argument2)
    local liczba = 10
    --todo
end


Obja?nienie:
Kod:

local liczba
tworzymy zmienn? o nazwie liczba
Kod:

= 10
przypisujemy pod ni? liczb? 10

3. Warunek (if)


Jak sama nazwa wskazuje, stawiamy warunki, np. je?li co? jest wi?ksze/mniejsze/r?wne czemu?, je?eli co? si? wykona?o itp.
Stworzymy prosty warunek, kt?ry b?dzie sprawdza?, czy zrobiona przez nas wcze?niej zmienna jest wi?ksza od 5.
function nazwafunkcji (argument1, argument2)
local liczba = 10
    if (liczba > 5) then
        --todo
    end
end


Obja?nienie:
Kod:

if (liczba > 5) then
sprawdzamy czy 10 jest wi?ksze od 5
Kod:

end
zaka?czamy ifa.

4. P?tle (for).


Dzi?ki p?tli mo?emy pobra? wszystkich graczy, wszystkie warto?ci z tabeli itp.
Pobierzemy wszystkie elementy, kt?re s? podpisane jako "player"
function nazwafunkcji (argument1, argument2)
local liczba = 10
    if (liczba > 5) then
        for k,v in ipairs(getElementsByType("player")) do
            --todo
        end
    end
end


Obja?nienie:
Kod:

for k,v in ipairs(getElementsByType("player"))
do tworzymy p?tle
Kod:

getElementsByType("player")
pobieramy elemnty, kt?re s? podpisane jako "player".
Kod:

k,v
tu mo?emy te litery zamieni? na nazwy jakiekolwiek chcecie. k - klucz, ale tego bardzo rzadko u?ywamy, v - warto??, czyli w naszym przypadku, wszyscy gracze.

5. Komenda (addCommandHandler)


Podpinamy pod komend?. Dzia?a to an tej zasadzie, ?e jak wpiszemy na czacie /komenda to co? si? stanie, w naszym przypadku zrobimy wy?wietlanie wiadomo?ci do wszystkich graczy.
function nazwafunkcji (player, cmd) -- player to gracz kt?ry wykonuje funkcje, cmd komenda
local liczba = 10
    if (liczba > 5) then
        for k,v in ipairs(getElementsByType("player")) do
            outputChatBox("Wiadomo?? do wszystkich graczy", v)
        end
    end
end
addCommandHandler("komenda", nazwafunkcji)


Obja?nienie:
Kod:

outputChatBox("Wiadomo?? do wszystkich graczy", v)
wysy?amy wiadomo?? do wszystkich graczy.
Kod:

addCommandHandler("komenda", nazwafunkcji)
dodajemy komend? o nazwie "komenda", kt?r? przypisujemy do funkcji "nazwafunkcji".

6. Meta (meta.xml)


W LUA do dzia?ania skryptu potrzebujemy pliku o nazwie meta.xml. LUA jest podzielone na dwie strony client i server. W client u?ywamy funkcji dla jendego gracza, a w server dla ca?ego serwera. To co teraz stworzyli?my zapiszemy po stronie serwera. Zapisujemy ten skrypt co zrobili?my o nazwie skrypt.lua. Meta powinna wygl?da? nast?puj?co
Kod:

<meta>
<script src="skrypt.lua" type="server" />
</meta>


Obja?nienie:
Kod:

<meta></meta>
rozpoczynamy i zaka?czamy mete.
Kod:

<script src="skrypt.lua" type="server" />
w src podajemy ?cie?k? do pliku, a w type to co m?wi?em wcze?niej.

7. Komentarze


Komentarzy mo?emy u?y? np. do zaznaczenia czego?, ?e tu si? co? zaczyna.

Komentarz jedno-liniowy:
-- komentarz


Komentarz wieloliniowy:
--[[
komentarz
wieloliniowy
--]]


Owe komentarze nie b?d? zawadza? skryptowi, s? one dla serwera niewidoczne.

Zako?czenie


Koniec, wiecie ju? jak zbudowa? funkcje, warunek, p?tle i jak doda? do tego wszystkiego komend?.

Zabraniam wstawiania tego poradnika na inne fora/strony bez mojej zgody.

Mi?ej przygody z LUA, powodzenia!

PS: Je?li zauwa?ali?cie jaki? b??d, albo macie jakiekolwiek pytania dotycz?ce owego poradnika prosz? pisa? w tym temacie.

Ostatnio zmieniony przez Jacob 2012-05-12, 19:52, w całości zmieniany 3 razy  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-05-06, 15:05


luki123luki123

Place Game






Wiek: 28
Na forum: 5416 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6103

Respekt: 611
Respekt: 611Respekt: 611

Jacob, ja bym u?y? zamiast player to thePlayer w
4. P?tle (for). 5. Komenda (addCommandHandler)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-05-06, 15:06


Jacob

Głupiomądry






Wiek: 28
Na forum: 5643 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

luki123luki123, w p?tli musi by? player, inaczej nie zadzia?a, a co do komendy, to nie ma r??nicy.

Co do poradnika to on b?dzie ci?gle aktualizowany o nowe tre?ci.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-05-11, 12:05


Quis

Wszechwiedzący






Wiek: 31
Na forum: 5287 dni
Posty: 464
Nick w MP: Quis

Piwa: 1112

Respekt: 325
Respekt: 325Respekt: 325Respekt: 325

Jacob, mog?e? troch? opisa? system event?w, jak i podpinanie pod nie funkcji.
Komentarz wieloliniowy wygl?da tak "--[[ komentarz ]]", nie trzeba dawa? -- przy zamykaniu :)
Ale poradnik og?lnie jest dobry, na pewno pomo?e wielu osobom.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-05-12, 13:58


Piorun







Wiek: 33
Na forum: 6853 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Mo?esz je wykorzysta? w funkcji, a przy okazji co? okre?li?.

np.:
Kod:


function suma(pierwszyElement, drugiElement) -- tworz? funkcj? z dwoma argumentami, kt?re potem wykorzystam.
if pierwszyElement and drugiElement then -- sprawdzam czy argumenty zosta?y podane
return tonumber(pierwszyElement) + tonumber(drugiElement) -- zamieniam oba argumenty (to r?wnie? s? zmienne!) na liczby i zwracam sum? tych element?w
end
end

addCommandHandler("suma",
function(cmd, arg1, arg2)
if arg1 and arg2 then
suma(arg1, arg2)
end
end)


Po wpisaniu /suma [pierwsza_wartosc] [druga_wartosc] otrzymamy sum? tych warto?ci liczbowych.

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-07-17, 01:01


Piorun







Wiek: 33
Na forum: 6853 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Nie, nie .. ta funkcja mia?a istnie? ale j? wycofali. Podmienia?a ona pliki z animacjami.

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Tagi: pierwsze :: kroki :: lua
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Poradniki do LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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
Dodaj temat do Ulubionych
Wersja do druku