Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.
GTAONLINE.PL
Tematy otagowane jako: nr.
1. Lua Kurs Lekcja nr. 8
[center][b][size=16][color=orange]Witam![/color][/size][/b]
W dzisiejszej cz??ci zajmiemy si? funkcjami tonumber,tostring, p?tl? next o kt?rej zapomnia?em wspomnie?, budow? warunku z operator?w te? zapomnia?em o tym wspomnie? w operatorach. I funkcj? interpolateBetween. Oraz fal? sinusoidaln? (sinusoid?), kt?ra jest dla wielu czarn? magi?. Om?wimy tez loadstring i type.

[color=yellow][size=13][b]tonumber[/b][/size][/color]
Funkcja tonumber, jak sama nazwa brzmi zmienia string na liczb?.

[lua]
local x = "100"

y = x + 10

print(y)
[/lua][/center][center]
Taki kod nam co prawda zadzia?a. Ale tylko w lua. Na przyk?adzie

[lua]
local x = getElementData(localPlayer,"data")
setElementData(localPlayer,"data",x + 15)
[/lua][/center][center]
Mo?e zwr?ci? b??d, w zale?no?ci od warto?ci elementdaty. Dlatego trzeba u?y? tonumber.

[lua]
local x = tonumber(getElementData(localPlayer,"data"))
setElementData(localPlayer,"data",x + 15)
[/lua][/center][center]

[color=yellow][b][size=13]tostring[/size][/b][/color]
Funkcja tostring dzia?a odwrotnie. Zamienia liczb? na string.

[lua]
local x = 100

print(tostring(x) + 15)
[/lua][/center][center] Te? zadzia?a, ale w lua.

Natomiast w mta

[lua]
local count = getElementData(localPlayer,"data") -- zwraca nam liczb? np. 10, a chcemy zapisa? "data: ilosc"

setElementData(localPlayer,"data",tostring("data: "..count))
[...
2. Lua Kurs Lekcja nr. 7
[center][color=orange][size=16][b]Witam![/b][/size][/color]
W si?dmej cz??ci poznamy funkcje z lua a konkretnie funkcje 'string.' by?y 'math.' to czas na stringi. Opr?cz tego zajm? si? wyt?umaczeniem funkcji getTickCount oraz przypomnimy sobie setTimer.

[color=yellow][size=13][b]string.byte[/b][/size][/color]
Funkcja string.byte zwraca kod liczbowy danego znaku z ci?gu.
Przyk?adowo
[lua]
print(string.byte("LUA",3))[/lua][/center][center] Taki kod zwr?ci nam
[code]65[/code] Czyli warto?? liczbow? liczby "A", je?li zrobiliby?my zamiast 3 to 1 to zwr?ci?o by nam [code]76[/code] czyli warto?? liczbow? liczb "L".

[color=yellow][size=13][b]string.char[/b][/size][/color]
Funkcja ta generuje literowy ci?g znak?w z podanych liczb. Jak wcze?niej wspomnia?em liczbow? warto?ci? "A" jest 65 a "L" 76, wi?c
[lua]print(string.char(65,76))[/lua][/center][center] wygeneruje nam znaki spod tych liczby czyli A i L. Zwr?ci nam [code]AL[/code]

[color=yellow][size=13][b]string.dump[/b][/size][/color]
Funkcja string.dump zwraca funkcje w postaci kodu binarnego. Funkcja musi by? funkcj? lua, czyli w mta za bardzo tego nie mamy jak wykorzysta?.

[color=yellow][size=13][b]string.find[/b][/size][/color]
Funkcja string.find s?u?y np. do sprawdzania czy jest jaki? znak w ci?gu, aczkolwiek zwraca pewne warto?ci, konkretnie liczb? znaku od kt?rego zaczyna si? nasz wyszukiwany znak i liczb? znaku gdzie si? ko?czy. Przyk?adowo
[lua]
loca...
3. Lua Kurs Lekcja nr. 6
[b][size=16][center][color=orange]Witam![/color][/center][/size][/b]
[center]W cz??ci sz?stej moich poradnik?w, g??wnym tematem b?d? tabele lub jak kto woli tablice. Poznamy ich zastosowanie,rodzaje etc.[/center]

[center][b][color=yellow][size=13]wielowymiarowe[/size][/color][/b][/center][center]
Ja osobi?cie b?d? pos?ugiwa? si? s?owem "tabela", aczkolwiek mo?na tez "tablica".
Tabela wielowymiarowa posiada t? ilo?? wymiar?w. Mamy jednowymiarowe,dwuwymiarowe,tr?jwymiarowe itd. Dlatego og?ln? nazw? jest "tablica wielowymiarowa". Ta 'ilo??' wymiar?w to ilo?? indeks?w/warto?ci w tej tabeli.
[lua]
local tbl = {}

tbl[1] = 10
tbl[2] = 20

print(tbl[1],tbl[2])[/lua][/center][center] taki kod zwr?ci nam [code]
10
20[/code], poniewa? otrzymujemy warto?? indeksu pierwszego i drugiego.
[lua]
local tbl = {}

tbl[1] = {1,2,3,4,5}
tbl[8] = {5,4,3,2,1}
print(tbl[1],tbl[8])
[/lua][/center][center] W takim przypadku nasz kod jest ju? b??dny, co prawda nie zwr?ci on b??du tylko [code]table: numer[/code] W przypadku mojego testu: [code]table: 0x8127c0[/code] Numer ten za ka?dym razem jest inny. Aczkolwiek nie ma on dla nas znaczenia. Aby poprawnie wy?wietli? warto?? 2 z indeksu 1 z tabeli, musimy poda? numer tego indeksu z kt?rego chcemy pobra? warto??.
[lua]
local tbl = {}

tbl[1] = {1,2,3,4,5}
tbl[8] = {5,4,3,2,1}
print(tbl[1][2])
[/lua] [/center][center] taki kod poprawnie zwr?ci nam [code]2[/code] Tych indeks?w/tabel/kom?rek mo?emy...
4. Lua Kurs Lekcja nr. 5
[b][size=16][center][color=orange]Witam![/color][/center][/size][/b]
[center]W cz??ci pi?tej ju? poradnik?w postaram si? jak najlepiej opisa? dzia?anie wszystkich p?tli w lua.[/center]

[center][b][color=yellow][size=13]for[/size][/color][/b]
P?tla for jest najcz??ciej stosowan? przez nas w lua p?tl?. Za pomoc? p?tli mo?emy pobra? co? z tabeli, p?tla zwraca nam zazwyczaj klucz oraz warto?? z tej tabeli.
Przyk?adowo
[lua]local tbl = {
[1] = 10,
[2] = 20,
[3] = 30,
[4] = 40,
}

for key,value in ipairs(tbl) do
print(key.. ": "..value)
end
[/lua][/center][center] taki kod zwr?ci nam wynik w postaci [code]
1: 10
2: 20
3: 30
4: 40
[/code]
S?owa key oraz value to kolejno klucz oraz warto??, jest to zwyk?a zmienna wi?c zamiast key,value mo?emy da? sobie cyferka,wynik jak chcemy. Musimy te? zwr?ci? uwag? na s?owo po operatorze przynale?no?ci in, czyli w tym przypadku "ipairs", jest to wa?ne, poniewa? ipairs iteruje tylko po kluczach, kt?re s? kolejnymi liczbami naturalnymi, klucze w tym przypadku to te cyfry w nawiasach kwadratowych, wi?cej o cz??ci z tabelami/tablicami. W przypadku takiej tabeli:
[lua]
local tbl = {
['cukierki'] = 10,
['chipsy'] = 15,
['czekolada'] = 20,
}
[/lua][/center][center] nasza p?tla przerwie dzia?anie, poniewa? jak wida? klucze nie s? ju? liczbami naturalnymi tylko s?owami/ci?gami znak?w (stringami), w takim wypadku trzeba u?y? nie ipairs a [b]pairs[/b], gdy? pairs iteruje po wszystkim czyli i po liczbach ...
5. Lua Kurs Lekcja nr. 4
[b][size=16][center][color=orange]Witam![/color][/center][/size][/b]
[center]W czwartej cz??ci poruszymy funkcje matematyczne/fizyczne(trygonometryczne,cyklometryczne,hiperboliczne itp), z racji tego i? jest ich sporo to b?d? one jedynym tematem w tej cz??ci.[/center]

[center][b][color=yellow][size=13]math.abs[/size][/color][/b]
Funkcja math.abs zwr?ci nam warto?? bezwzgl?dn? podanej liczby. Przyk?adowo
[lua]print(math.abs(-5))[/lua][/center][center] taki kod zwr?ci nam warto?? bezwzgl?dn? liczby -5 czyli [code]5[/code][/center][center]. Czym jest warto?? bezwzgl?dna mo?na poczyta? tutaj
[/center]

[center][b][color=yellow][size=13]math.asin[/size][/color][/b]
Funkcja math.asin zwr?ci nam w radianach arcus sinus podanej liczby. Przyk?adowo
[lua]print(math.asin(0.5))[/lua][/center][center] taki kod zwr?ci nam [code]0.5235987755982989[/code][/center][center] arcus sinus jest funkcj? odwrotn?/przeciwn? do sinus'a (math.sin) czyli przyjmuje warto?ci od -pi/2 do pi/2, kr?tko m?wi?c od -1 do 1 wy?sze/mniejsze warto?ci b?d? okre?lane jako "NaN" lub "nan" a mta zwr?ci b??d. Czym jest arcus sinus mo?na poczyta? tutaj [/center]

[center][b][color=yellow][size=13]math.sin[/size][/color][/b]
Funkcja math.sin zwr?ci nam sinus podanej liczby. Przyk?adowo
[lua]print(math.sin(1))[/lua][/center][center] taki kod zwr?ci nam [code]0.8414709848079[/code][/center][center] Czym jest sinus mo?na poczyta? tutaj [/center]

[center][b][color=yellow][size=13]math.s...
6. Lua Kurs Lekcja nr. 3
[b][center][color=orange][size=16]Witam![/color][/center][/b][/size]

[center]W trzeciej cz??ci zajmiemy si? rodzajami zmiennych,komentarzami oraz wszystkimi operatorami tj. arytmetyczne,matematyczne,relacji oraz logiczne. Poruszymy te? kwesti? instrukcji warunkowych dla przypomnienia.[/center]

[b][center][size=14][color=green]Operatory[/b][/center][/color][/size]

[b][color=blue]•[/color][/b] [size=12][b][color=pink]Logiczne:[/size][/color][/b]
[center][size=13]Operator?w logicznych mamy trzy i s? to and,or,not.[/center][/size]
[center][color=yellow][size=13][b]AND[/b][/size][/color][/center]
[center][size=13]Operator logiczny "and" co z angielskiego oznacza "oraz"/"i" czyli je?li spe?ni? si? dwa warunki wtedy nasz kod przejdzie dalej. Np je?li po wpisaniu komendy 'zniszcz' gracz siedzi w poje?dzie i id tego pojazdu to 611 (nie wiem co to :P ) to wtedy nasz pojazd zniszczy to zamiast robi? zb?dnie dwa warunki mo?emy u?y? operatora.
Zamiast [/size]
[lua]addCommandHandler("zniszcz",function(plr,cmd)
if getPedOccupiedVehicle(plr) then
if getElementModel(getPedOccupiedVehicle(plr)) == 611 then
destroyElement(getPedOccupiedVehicle(plr))
end
end
end
)[/lua][/center][center][size=13] tak, to robimy tak:
[lua]addCommandHandler("zniszcz",function(plr,cmd)
if getPedOccupiedVehicle(plr) and getElementModel(getPedOccupiedVehicle(plr)) == 611 then
destroyElement(getPedOccupiedVehicle(plr))
end
end
...
7. Lua Kurs Lekcja nr. 2
Witam, dawno nic nie pisa?em tutaj w poradnikach to nadszed? czas na drug? cz??? z serii 'LUA'. W tym poradniku poruszymy takie rzeczy jak: Timery,instrukcje warunkowe oraz operatory 'or','and' itd. Nie przed?u?aj?c.

Timer czym to jest? Ot?z s?u?y to do 'nadawania czasu' dla czego?. Np,, ?e co? si? ma wykona? po jakim? czasi. Timer z angielskiego oznacza 'czasownik' czyli podpinamy czasownik pod co?.

[wmta]setTimer[/wmta]

Przyk?adowo tworzymy komend? na pokazanie naszego nicku po czasie.

Czyli zgodnie z poprzednim poradnikiem robimy [lua]function nick(plr)
setTimer(function(plr)
outputChatBox(getPlayerName(plr),255,255,255,true)
end, 1000,1,plr)
end
addComandHandler("nick",nick)[/lua]

Przeanalizujmy sobi? ten kod kolejno, tworzymy funkcj? 'nick' z argumentem plr czyli graczem, kt?ry wpisa? komende. Tworzymy 'czasownik' czyli setTimer(funkcja na kt?r? nadajemy 'czasownik' je?li u?ywamy timer wfunkcji no to u?yjemy tam nowej funkcji czyli function(plr) setTimer(function(plr) nie dodajemy nawiasu drugiego. Musimy przekaza? gracza czyli 'plr' do czasownika bo inaczej nie b?dzie wiedzia? co to jest plr. Nast?pnie pokazujemy graczowi jego nick i zamykamy czasownik [lua]end,1000,1)[/lua] end zamyka nasz czasownik a konkretnie funkcj? z niego. 1000 to ilo?? milisekund po kt?rej ma si? nasz czasownik spe?ni?, '1' to ilo?? wykonania, czyli ile razy nasz czasownik ma si? wykona?. Przyk?adowo je?li ma si? wykonywa? ci?gleco jaki? czas to b?dzie '0'. [lua...
8. Lua Kurs Lekcja nr. 1
Witam, postaram si? w tej 'serii' poradnik?w wyt?umaczy? krok po kroku LUA. Jest wiele poradnik?w na temat lua i jego podstaw, ale w ka?dym autor od razu rzuca si? na g??bok? wod?. Ja wyt?umacz? wszystko od A do Z. Zacznijmy.

LUA jest w bardzo du?ym stopniu oparte o j?zyk angielski, je?li go znasz to na pewno sobie poradzisz.

Ka?dy kod si? musi jako? 'zacz??' Kod to rozpisane funkcje i zmienne oraz zdarzenia.

Stw?rzmy funkcj?, kt?ra stworzy pojazd o id 448 obok gracza.

Jak wy?ej napisa?em 'stw?rzmy funkcj?' czyli zaczynamy [lua]function tworzymyPojazd(plr)[/lua] po function nadajemy tej funkcji nazw?, a w nawiasach podajemy argumenty. W tym przypadku 'plr' to argument gracza, kt?ry wpisze komend? /pojazd

Teraz gdy ju? mamy rozpocz?t? funkcj? kontynuujemy kod. Musimy u?y? teraz funkcji wbudowanej w mta, kieruj?c si? logik? skoro ma to by? tworzenie pojazdu obok gracza to musimy pobra? pozycj? tego gracza, czyli u?ywamy [wmta]getElementPosition[/wmta] [lua]getElementPosition(plr)[/lua] pobiera nasz? pozycj?, ka?da funkcja co? zwraca, w tym przypadku ta funkcja zwr?ci nam po przecinku trzy liczby, x,y,z czyli nasz? pozycje, x to boki, y prz?d/ty?, z wysoko??. W funkcji musimy uwzgl?dni? argument gracza, kt?rego t? pozycj? chcemy pobra?, czyli w tym wypadku 'plr'. Nasz? funkcje musimy jako? zdeklarowa?, tak jak wy?ej napisa?em funkcja zwraca nam trzy warto?ci to nasza zmienna te? musi by? z?o?ona z trzech warto?ci, na przyk?ad pos1,pos2,pos3, lecz zazwyczaj jest...