Witamy na GTAOnline Obecny czas to 2018-07-19, 02:18 Użytkowników: 75298
Strona główna | Użytkownicy | Grupy | Faq | Regulamin | Zaloguj

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ć [url=https://pl.wikipedia.org/wiki/Wartość_bezwzględna]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ć tuta...
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...




phpBB by Przemo modified by xXx 2003-2016

Template GTAONLINE created by gtaonline.pl



Strona wygenerowana w 0,12 sekundy. Zapytań do SQL: 10