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: 5502 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 (argument1argument2)
    -- 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 (argument1argument2)
    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 (argument1argument2)
local liczba 10
    if (liczba 5then
        --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 (argument1argument2)
local liczba 10
    if (liczba 5then
        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 (playercmd) -- player to gracz kt?ry wykonuje funkcjecmd komenda
local liczba 10
    if (liczba 5then
        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: 5275 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6101

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: 5502 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: 5146 dni
Posty: 464
Nick w MP: Quis

Piwa: 1110

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: 32
Na forum: 6712 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: 32
Na forum: 6712 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 » Pierwsze kroki z 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