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
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: - tworzymy funkcje o nazwie nazwafunkcji
Kod: - dodajemy argumenty
Kod: - 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: tworzymy zmienn? o nazwie liczba
Kod: 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: sprawdzamy czy 10 jest wi?ksze od 5
Kod: 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: 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: 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 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
Wysłany: 2012-05-06, 15:05
luki123luki123
Place Game
Wiek: 28 Na forum: 5275 dni Posty: 1948
Nick w MP: LuKiO
Piwa : 6101
Jacob , ja bym u?y? zamiast player to thePlayer w
4. P?tle (for). 5. Komenda (addCommandHandler)
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
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.
Wysłany: 2012-05-11, 12:05
Quis
Wszechwiedzący
Wiek: 31 Na forum: 5146 dni Posty: 464
Nick w MP: Quis
Piwa : 1110
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.
Wysłany: 2012-05-12, 13:58
Piorun
Wiek: 32 Na forum: 6712 dni Posty: 1837
Nick w MP: Piorun
Piwa : 516
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.
Wysłany: 2013-07-17, 01:01
Piorun
Wiek: 32 Na forum: 6712 dni Posty: 1837
Nick w MP: Piorun
Piwa : 516
Nie, nie .. ta funkcja mia?a istnie? ale j? wycofali. Podmienia?a ona pliki z animacjami.
Tagi: pierwsze :: kroki :: lua
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: