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

Wysłany: 2017-06-04, 01:58


marcin778

Krytyk serwerów MTA






Wiek: 24
Na forum: 4149 dni
Posty: 2268
Nick w MP: Marcineg

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8

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?.


Więcej informacji znajdziesz w Wikipedii MTA:

setTimer


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

Czyli zgodnie z poprzednim poradnikiem robimy
function nick(plr)
setTimer(function(plr)
outputChatBox(getPlayerName(plr),255,255,255,true)
end1000,1,plr)
end
addComandHandler("nick",nick)


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
end,1000,1)
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'.
setTimer(function()
outputChatBox("Min??a 1 minuta")
end60*1000,0)
Pro?ciej jest zrobi? ilo?? sekund * 1000 czyli mno?ymy, w tym przypadku 60000 wi?c zamiast tak 'd?ugo rozpisywa? to piszemy ilo?? sekund * 1000 np 2 minuty
120*1000

po czasie przekazujemy pinownie argument 'plr' w naszym przypadku. Mo?emy jeszcze zrobi? co? takiego jak funkcje da? odrazu w timerze czyli
setTimer(setElementData(plr,"test",true), end,1000,1)
My?l?, ?e ztimer?w to wszystko. Czym s? instrukcje warunkowe? Ot?z jest to warunek czyli je?li co? to potem co? si? wydarzy. Czyli 'if' z angielskiego je?li/gdy if co? then ka?dy if ko?czymy 'then' z angielskiego potem/wtedy.
Przyk?adowo tworzymy komemd?, kt?ra poka?e nam nazwe pojazdu. Zaczynamy
function nazwa(plr)
if isPedInVehicle(plrthen
outputChatBox(getVehicleName(getPedOccupiedVehicle(plr)),plr,255,255,255)
end
end
addComandHandler("nazwa",nazwa)

Ka?dy 'if' potrzebuje swojego end'a tak jak funkcja. W powy?szym kodzie nasz warunek 'if' sprawdza czy plr(gracz,kt?ry wpisuje komende) jest w poje?dzie, je?li tak to pokazuje jego nazwe je?li nie no to nie poka?e tej nazwy i tyle no. Opr?cz 'if' mamy co? takiego jak 'else'
 else
Czyli z angielskiego 'jeszcze' a konkretnie 'jeszcze je?li przeciwnie do ifa' Czyli np
function pojazd(plr)
if isPedInVehicle(plrthen
outputChatBox("Jeste? w poje?dzie",plr,255,255,255)
else
outputChatBox("Nie jeste? w poje?dzie",plr,255,255,255)
end
end
addCommandHandler("auto",pojazd)


Czyli przeciwnie do 'if' czyli je?li nie jest w poje?dzie. Pozatym mamy jeszcze 'elseif' czyli 'je?li jeszcze' Czyli w jednym if'ie/warunku je?li jeszcze co? potem. Ka?de elseif te? potrzebuje 'then' ale end wystarczy jeden tylko do g??wnego if.
 if getElementData(gracz"data") == "tak" then
outputChatBox("data",gracz)
elseif getElementData(gracz"data") == "nie" then
outputChatBox("Nie data",gracz)
end
Zamiast np
if isPedInVehicle(plrthen
mo?emy zrobi?
 if not isPedInVehicle(plrthen
Wtedy else zadzia?a odwrotnie czyli je?li jest w poje?dzie. Operatory s? 3 i s? to
 and, or, not
czyli 'and' i/lub z angielskiego, 'or' czyli lub/albo z angielskiego oraz 'not' czyli 'nie' z angielskiego. Operatory najcz??ciej maj? zastosowanie w warunkach ale nie tylko. Przyk?ad operatora 'or'
 function model(plr)
if isPedInVehicle(plrthen
if getElementModel(getPedOccupiedVehicle(plr)) == 602 or getElementModel(getPedOccupiedVehicle(plr)) = 586 then
outputChatBox("alpha albo police ls",plr)
end
end
end
addCommandHandler("model",model)


Czyli je?li id naszego pojazdu to 602 lub 596 to poka?e nam t? wiadomo?? 'alpha albo police ls'. Teraz przyk?ad operatora 'and'
function p(plr)
if isPedInVehicle(plr) and getElementModel(getPedOccupiedVehicle(plr)) == 602 then
outputChatBox("Id to 602",plr)
end
end
addCommandHandler("operator",p)


Czyli je?li gracz siedzi w aucie i jego id to 602 to poka?e nam wiadomo?? 'id to 602'. Operator 'not' czyli 'nie'

function ped(plr)
if not isElement(pedthen
ped createPed(0,0,0,0)
end
end
addCommandHandler("ped",ped)
Czyli je?li nie ma elementu/nie istnieje 'ped' to go stworzy na ?rodku mapy peda 'cj' czyli id 0. Mo?emy te? u?yc kilka operator?w na raz
 if cos and cos2 or cos3 then
Czyli je?li cos i cos2 lub cos3 wtedy co? tam.Przyk?ad 2
if not isElement(ped) or not isElement(ped2then
Je?li nie ma/nie istnieje ped lub ped2 wtedy co? tam. Przyk?ad operatora 'or' poza instrukcj? warunkow? np
local s getElementData(gracz"admin") or "Brak"
Czyli pobieramy elementdate 'admin' i je?li jej nie ma/nie istnieje dla danego gracza to zwr?ci nam 'Brak' zamiast elementdaty.

My?l?, ?e to by by?o na tyle w tym poradniku.

Podpis
Moje prace: https://www.youtube.com/c...MuaWGHPp1mhlGnw

-- obecnie
-- obecnie
-- dawniej
-- dawniej
-- dawniej
Ostatnio zmieniony przez marcin778 2017-06-04, 19:56, w całości zmieniany 2 razy  
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 4 piw(a):
Emm, STOPseba, Maszek, Psycho464
Wysłany: 2017-06-04, 10:18


_Haze

Peace Yo!






Wiek: 24
Na forum: 4184 dni
Posty: 1648
Nick w MP: Haze

Piwa: 2628

Respekt: 1020
Respekt: 1020


i


Czasownik – odmienna oraz samodzielna cz??? mowy przedstawiaj?ca dziej?ce si? czynno?ci oraz niekt?re stany. W zdaniu tworzy orzeczenie. Czasowniki s? nazwami czynno?ci jakie wykonuj? w danym czasie istoty ?ywe, narz?dzia lub maszyny, oraz nazwami stan?w, w jakich te istoty b?d? przedmioty si? znajduj?. Nie w ka?dym j?zyku da si? wyr??ni? jasn? klas? czasownik?w, np. w j?zyku japo?skim przymiotniki maj? wiele w?a?ciwo?ci charakterystycznych dla czasownik?w.
Tutaj link https://pl.wikipedia.org/wiki/Czasownik


Nie mam nic do tego ?e si? pomyli?e?, ka?demu si? zdarza, ale zgrywasz kozaka w lua i ka?dego poprawiasz. A takiej podstawowej rzeczy nie wiesz. Ponadto poda?e? tylko operatory logiczne, s? jeszcze operatory arytmetyczne i operatory relacji, skoro jeste?my przy operatorach mog?e? przy okazji om?wi? tokeny, ale dobra. Do tego poradnik ma?o czytelny, m?g?by? popracowa? nad u?ywaniem bbcode.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 3 piw(a):
Emm, freadyy, Virelox
Wysłany: 2017-06-04, 12:12


marcin778

Krytyk serwerów MTA






Wiek: 24
Na forum: 4149 dni
Posty: 2268
Nick w MP: Marcineg

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8

Z moim t?umaczeniem masz racje. Kozaka? Ja wmawiam ludziom, ?e istniej? w lua switche, kt?re s? pseudo switchami.? Po co mam wciska? wszystko w jeden poradnik. co do bbcode nie widze sensu pakowania tam kolor?w i b?g wie czego. Ale c?? dzieki za komentarz

Podpis
Moje prace: https://www.youtube.com/c...MuaWGHPp1mhlGnw

-- obecnie
-- obecnie
-- dawniej
-- dawniej
-- dawniej
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-04, 12:23


_Haze

Peace Yo!






Wiek: 24
Na forum: 4184 dni
Posty: 1648
Nick w MP: Haze

Piwa: 2628

Respekt: 1020
Respekt: 1020

marcin778, Switche w lua nie s? "pseudo switchami" tylko s? normalnymi switchami tak jak w cpp i sam cz?sto z nich korzystam. Zacz??e? ju? o operatorach to sko?cz o operatorach bo poradnik jest ostro pomieszany. Co do bbcode, wystarczy?o jakie? nag??wki zastosowa?.
Co do switchy:
C++
Kod:

switch ( test ) {

case 1 :
// Process for test = 1
...
break;

case 5 :
// Process for test = 5
...
break;

default :
// Process for all other cases.
...

}

Lua:

switch={
[1] = function() outputChatBox("asd"end,
[2] = function() outputChatBox("asd2"end,
[3] = function(int) outputChatBox("asd"..intend,
["case4"]= function() end,
}


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
freadyy
Wysłany: 2017-06-04, 12:48


AteX







Wiek: 26
Na forum: 4015 dni
Posty: 927
Nick w MP: #AteX

Piwa: 8360

Respekt: 775,3
Respekt: 775,3Respekt: 775,3

Cytat:

Przeanalizujmy sobi? ten kod kolejno, tworzymy funkcj? 'nick' z argumentem plr czyli graczem, kt?ry wpisa? komende.

Jak ju? robisz poradnik to m?g?by? wspomnie?, ?e dotyczy to strony serwera. Kto? wrzuci to po stronie klienta i b?dzie si? zastanawia? co robi ?le skoro robi wszystko wed?ug poradnika.

I za nim co? napiszesz to przeczytaj to przynajmniej 2 razy.
Cytat:

po czasie przekazujemy pinownie

Zapewne jest tego wi?cej.

Przy tych twoich poradnikach, twoja oferta skrypterstwa wygl?da ?miesznie.

Podpis
MultiTheftAuto++ dla MTA 1.5.7 już dostępne.
Ostatnio zmieniony przez AteX 2017-06-04, 12:58, w całości zmieniany 20 razy  
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
freadyy
Wysłany: 2017-06-04, 12:49


Brzysiek

Skrypter pralek






Wiek: 27
Na forum: 5198 dni
Posty: 488
Nick w MP: Brzysiek

Piwa: 1034

Respekt: 360
Respekt: 360Respekt: 360Respekt: 360Respekt: 360

"HazeMaFaze" napisał/a:

marcin778, Switche w lua nie s? "pseudo switchami" tylko s? normalnymi switchami tak jak w cpp i sam cz?sto z nich korzystam. Zacz??e? ju? o operatorach to sko?cz o operatorach bo poradnik jest ostro pomieszany. Co do bbcode, wystarczy?o jakie? nag??wki zastosowa?.
Co do switchy:
C++
Kod:

switch ( test ) {

case 1 :
// Process for test = 1
...
break;

case 5 :
// Process for test = 5
...
break;

default :
// Process for all other cases.
...

}

Lua:

switch={
[1] = function() outputChatBox("asd"end,
[2] = function() outputChatBox("asd2"end,
[3] = function(int) outputChatBox("asd"..intend,
["case4"]= function() end,
}

Wyja?nijmy sobie jedno. Switche w Lua to s? pseudo switche. Nic takiego nie jest zaimplementowane domy?lnie w Lua, jedynie mo?na na?ladowa? ich dzia?anie, tak jak to zrobi?e? - tablic?, gdzie do indeks?w jest przypisana funkcja i tyle.

Komentarz HazeMaFaze dodany 2017-06-04, 12:52masz racje, ale działa tak samo jak zwykły switch i są do tego różne funkcje np. z wikipedii https://wiki.multitheftauto.com/wiki/Switch
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 4 piw(a):
freadyy, _Haze, Emm, marcin778
Wysłany: 2017-06-04, 13:39


Jurandovsky

Kurdebele






Wiek: 17
Na forum: 4838 dni
Posty: 915

Piwa: 2697

Respekt: 955,3
Respekt: 955,3Respekt: 955,3


function nazwa(plr)
if isPedInVehicle(plrthen
outputChatBox(getVehicleName(getPedOccupiedVehicle(plr)),plr,255,255,255)
end
end
addDomandHandler("nazwa",nazwa)


Witam, nie dzia?a mi kod z tego poradnika :P Mam jaki? dziwny b??d: attempt to call global function 'addDommandHandler'



 function model(plr)
if isPedInVehicle(plrthen
if getElementModel(getPedOccupiedVehicle(plr)) == 602 or getElementModel(getPedOccupiedVehicle(plr)) = 586 then
outputChatBox("alpha albo police ls",plr)
end
end
end
addComandHandler("model",model)


To zn?w, ja tym razem mam b??d: attempt to call global function addComandHandler

pls help

Podpis
Jedyny kontakt ze mną to PW forum

Kod:


local noobs = getElementsByTitle("player", "Programista LUA")
for k, v in ipairs(noobs) do
outputChatBox("Bez mózgu jest użytkownik o nicku: "..getPlayerName(v), root)
destroyElement(v)
end
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 5 piw(a):
Emm, _Haze, neku^, Virelox, Makay
Wysłany: 2017-06-04, 17:44


Emm

***** ***






Wiek: 32
Na forum: 3880 dni
Posty: 3191
Nick w MP: Emm

Piwa: 6162

Respekt: 1580
Respekt: 1580Respekt: 1580


   Administrator: Admin ma zawsze rację | REGULAMIN FORUM | REKLAMA/VIP | .
Nie rozumiem powodu waszej dyskusji w tym temacie - HazeMaFaze wyrazi? swoje zdanie, a ty marcin naskakujesz na niego jakby nie wiadomo co Ci zrobi?. Tamte posty wygasi?em.

Je?eli robisz poradniki to przy??? si? do nich, bo takie pisane na kolanie - kt?re posiadaj? miliony liter?wek - nie wygl?daj? ?adnie. Nie chc? Ci? tym zdemotywowa? do pisania dalszych poradnik?w, tylko chc? Ci u?wiadomi?, ?e z BBCode, ciekawszym opisem (nie posiadaj?cym b??d?w, np. w t?umaczeniu) by?yby one lepsze.


Dodatkowo w poradniku nie powinny pojawi? si? b??dy takie, o kt?rych wspomnia? Jurandovsky.

Popraw te liter?wki i b?dzie dobrze. :)

Podpis

Użytkownik: 20.10.2015r
GTAO Member: 06.03.2016r
Support-Team: 20.01.2016r
Moderator: 30.03.2016r
Mod-Team: 08.10.2016r
Vice Admin: 04.05.2018r
Administrator: 03.05.2022r


! Koniecznie zapoznaj się z regulaminem forum.
Pamiętaj, aby zawsze go przestrzegać, nie mniej ważne są również regulaminy działów, w których się wypowiadasz!
Zamiast zakładać temat po kilka razy, bo jest usuwany przez Administrację, przejrzyj regulamin i napisz poprawnie temat!
Sprawy z administracją możesz załatwiać anonimowo w tym dziale.
Najważniejsze informacje od Administracji możesz przeczytać tutaj oraz tutaj.
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 2 piw(a):
_Haze, Dexnes_
Tagi: lua :: kurs :: lekcja :: nr.
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