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

Wysłany: 2014-07-28, 14:32


Mizy1999

I <3 Mta






Wiek: 28
Na forum: 4995 dni
Posty: 157
Nick w MP: xxx

Piwa: 154

Respekt: 40

Siemka, to jest m?j drugi tutolial, tym razem postaram si? troch? bardziej opisa? poszczeg?lne funkcje itd.

Dzi? zajmiemy si? skryptem 'Prawo jazdy', wi?c tak... W dziale skrypty mo?ecie znale?? m?j temat: "Tablice z autami". Odsy?am do niego i? bardzo si? on przyda.
Link: http://www.gtaonline.pl/t...e146b1e662bb214

Zaczynaj?c, tworzymy nowy plik, wraz z nim kopiujemy tablice z mojego tematu, lub tworzymy w?asne, po co tablice ? Definiuj?c nasze auta, czyli dziel?c je na cz??ci pierwsze ( Ci??arowe, Osobowe, itd... ) b?dziemy mogli stworzy? za pomoc? grup acl sprawdzanie czy gracz ma to prawo jazdy ( Czyli domy?lnie czy jest w grupie ACL ) je?eli tak, b?dzie m?g? wsi??? do aut zapisanych pod tablic?... Dlatego pierw robimy tablice, p??niej zajmiemy si? dodawaniem zabieraniem prawka.

Je?eli chcecie zrobi? sami i przypisa? do niej pojazdy, ma to wygl?da? tak:

test = { [411]=true }

Wi?c tak:
test - Jest to nazwa tablicy kt?r? definiujemy, mo?e to by? dowolny tekst, nie powinien zawiera? znak?w polskich. Preferuj? nazwa? 'prawkokata'.

{ } - Nawiasy te deklaruj? kiedy jest pocz?tek, a kiedy koniec naszej tablicy.

[411]=true - Obecnie najwa?niejsza cz???, przypisuje nasz pojazd jako true. Mi?dzy nawiasy wystarczy wsadzi? id pojazdu, a i tak... Je?eli chcecie stworzy? wi?cej ni? jedno, nowe id poprzedzacie przecinkiem, czyli:

Kod:

cos = { [453]=true, [543]=true, [564]=true } -- (( Za to na ko?cu nie mo?e by? przecinka, pami?tajcie ! ))


Jednak?e radzi? bym pobra? moje tablice, i? sam robi?em takie prawo jazdy, co prawda jest ono banalne ale wystarczy jak na okresy Beta ^^.

Skoro mamy ju? tablice przejdziemy do dw?ch kolejnych rzeczy kt?re b?d? nam niezb?dne do stworzenia prawa jazdy, mam na my?li:

- Acl
- Funkcja: if ( prawojazdykata[getElementModel(source)] )

ACL:

Wi?kszo?? z was wie co to acl, wi?c nie b?d? si? rozpisywa?, m?wi?c kr?tko jest to plik w kt?rym s? przetrzymywane wszystkie permisje ( prawa ) gracza lub administratora, zatem musimy stworzy? w nim now? grup? kt?ra b?dzie mia?a nazw?, dajmy na to 'PJKA' A dlaczego ? ^.^ w skr?cie Prawo Jazdy Kategorii A
Plik znajduje si? w: MTA San Andreas/server/mods/deathmatch/acl.xml


Grup? t? tworzymy za pomoc?:


Kod:

<group name="[color=#05ff00]PJKA[/color]">

</group>


Tam gdzie PJKA Wpisujemy nazw? grupy acl.
Nast?pnie b?dziemy musieli doda? si? do tej grupy, u?yjemy do tego:

Kod:

<object name="user.Tomakan"></object>


Po prostu zamiast Tomakan, wpiszcie sw?j login, ale UWAGA !
Musi by? to login ten kt?rym logujecie si? na serwer.
Oczywi?cie wklejamy to pomi?dzy
Kod:

<group name="[color=#05ff00]PJKA[/color]">
-- TU --
</group>


Funkcja:

Okej, teraz pod tymi wszystkimi tablicami kt?re utworzyli?my tworzymy funkcje kt?ra b?dzie sprawdza? nasze prawo jazdy przy wchodzeniu do auta.

Kod:

function prawoKatA ( thePlayer, seat, jacked )


Czyli, definiujemy funkcje, (ustalamy jej nazw? na prawoKatA) nast?pnie dodajemy 3 argumenty: thePlayer, seat, jacket.
thePlayer u?yjemy do pobierania konta gracza, przy sprawdzaniu czy gracz jest w Acl,
seat, u?yjemy do sprawdzenia czy gracz siedzi na 0 krze?le, czyli kierowcy, by nie by?o tak ?e wywala nas z auta gdy chcemy wsi??? na pasa?era.
jacked, oznacza gracza kt?ry zosta? okradziony. ( z auta )

Nast?pnie robimy warunek, czy gracz doszed? na miejsce kierowcy czyli wzgl?dem kodu '0'
Kod:

if seat == 0 then

Je?eli wsiad?, (then) wtedy zdarzy si?:

( No i teraz musimy sprawdzi? czy gracz jest w tej grupie acl, czyli: )

Kod:

local playerName = getAccountName ( getPlayerAccount ( thePlayer ) )


Tworzy to zmienn? lokaln? kt?ra ( getAccountName ) pobiera nazw? konta gracza ( Tu w?a?nie u?ywamy argumentu thePlayer ).

Na razie pobrali?my nazw? konta gracza do zmiennej, teraz musimy za pomoc? zmiennej lokalnej playerName stworzy? warunek sprawdzania czy gracz jest w acl:

Kod:

isObjectInACLGroup ( 'user.'..playerName, aclGetGroup ( "PJKA" ) )


Nie b?d? t?umaczy? tej funkcji, by?a ona ju? t?umaczona miliardy razy w innych poradnikach na tworzenie frakcji.

Wi?c, nasz? funkcje acl musimy po??czy? z tablic?, wygl?da? to b?dzie tak:

Kod:

if ( prawojazdykata[getElementModel(source)] ) and isObjectInACLGroup ( 'user.'..playerName, aclGetGroup ( "PJKA" ) ) then


Linijk? t? daje wam tak jakby na gotowce, nie chc? wyt?umaczy? czego? ?l?, macie pami?ta? tylko ?e tam gdzie mam wpisane 'prawojazdykata' wpisujecie nazwe tablicy, tam gdzie 'PJKA' nazwe grupy w kt?rej ma by? gracz.

No okej, mamy ju? warunek itd, teraz musimy zrobi? przekierowanie, czyli je?eli gracz nie b?dzie w tej grupie ( else ) wywali go z auta. Wygl?da to tak:

Dajemy:
Kod:

else


Nast?pnie:
Kod:

cancelEvent()


Funkcja ta anuluje wsiadanie do pojazdu.
Mo?emy dodatkowo wy?wietli? tekst, nie masz prawa jazdy kategorii a. Czyli standard:
Kod:

outputChatBox ("Nie posiadasz prawa jazdy kategori A by prowadzi? ten pojazd", thePlayer, [color=#00ffe0]0,0,0[/color] )


255,255,255 - Tutaj wpisujecie kolor R,G,B, tak jak jest teraz da kolor bia?y.

Okej, teraz ko?czymy t? funkcje za pomoc? 'end' Dajemy tego tyle ile jest pod-funkcji, czyli w tym wypadku:
Kod:


end
end
end


Z kolei po 'end' musimy da? event Handler kt?ry wykona t? funkcje dopiero przy wsiadaniu do pojazdu:
Kod:

addEventHandler ( 'onVehicleStartEnter', root, prawoKatA )


Okej, dzi?ki temu nie mo?emy ju? wsiada? do aut z tablicy, poniewa? nie mamy prawa jazdy kat. A. Wi?c musimy zrobi? dawanie prawa jazdy.

Tworzymy funkcje, kt?ra b?dzie wywo?ywana na komend?, dodawa? b?dzie ona wpisanego gracza ( po komendzie ) do grupy acl 'PJKA'

Czyli jeszcze raz. Tworzymy funkcj?:
Kod:

function dajPrawkoA(thePlayer, commandName, accountName)


Argumenty om?wili?my poprzednio, nowe w tej funkcji to commandName, accountName przydadz? si? nam do wprowadzania komendy i sprawdzania czy takie konto istnieje na serwerze.

Wi?c musimy zrobi? by np, tylko urz?dnik m?g? dawa? prawo jazdy, robimy warunek acl, tak jak poprzednio:

Kod:


local playerName = getAccountName ( getPlayerAccount ( thePlayer ) )
if isObjectInACLGroup ( "user." .. playerName, aclGetGroup ( "PolicjaL" ) ) then

Nast?pnie, to co ma si? wykona? po warunku, czyli dodanie do acl i tekst
'Wyda?e? prawo jazdy':
Kod:

if accountName then
aclGroupAddObject (aclGetGroup("PJKA"), "user."..accountName)
outputChatBox('Wyda?e? prawo jazdy', thePlayer)
else
outputChatBox('Podany nick jest nieprawid?owy !', thePlayer)
end
end
end
addCommandHandler('dajprawkoa',dajPrawkoA)


Okej, to teraz co tu to wszystko robi:

if accountName then, bynajmniej sprawdza czy nick jest wpisany poprawnie, je?eli tak to przepuszcza, wtem dodaje gracza wpisanego do acl 'PJKA' i wy?wietla tekst, Wyda?e? prawo jazdy.

Je?eli nie przepuszcza to nick jest nie prawid?owy i wywala tekst:
Kod:

Podany nick jest nieprawid?owy !

Na ko?cu ko?czymy endami, r?wnymi ilo?ci? funkcji i dodajemy jak? komend? wywo?ujemy t? funkcj?, czyli:
Kod:

addCommandHandler('dajprawkoa',dajPrawkoA)


Zabieranie robimy tak samo, tylko zmieniamy komend?, z dajprawkoa na zabierzprawkoa, dodatkowo musimy zamieni? to:


Kod:

aclGroupAddObject (aclGetGroup("PJKA"), "user."..accountName)


na to:

Kod:

aclGroupRemoveObject (aclGetGroup("PJKA"), "user."..accountName)


Link do ca?ego skryptu: [ Za chwile b?dzie ]
Prosz? nie kopiowa? poradnika na inne fora, bynajmniej nie zmienia? autora.
Wszystkie poprawki mile widziane.


Ostatnio zmieniony przez Mizy1999 2014-07-28, 14:47, w całości zmieniany 3 razy  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-07-28, 14:37


krydianero

Samotny Wilk






Wiek: 33
Na forum: 4782 dni
Posty: 395
Nick w MP: Yoshida

Piwa: 1798

Respekt: 117,3
Respekt: 117,3

jacked - oznacza gracza kt?ry zosta? okradziony (je?eli kto? kradnie dane auto, w sensie takowym, ?e je?li kto? w nim siedzi.)

Podpis

Multi Drive Unlimited:Nowy projekt już wkrótce

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-07-28, 14:44


Mizy1999

I <3 Mta






Wiek: 28
Na forum: 4995 dni
Posty: 157
Nick w MP: xxx

Piwa: 154

Respekt: 40

Okej, dzi?ki przypinam.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-07-28, 14:45


MeeShuffle

Programista/Grafik






Wiek: 32
Na forum: 4394 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8575

Respekt: 535,3
Respekt: 535,3

Cytat:

Po prostu zamiast Tomakan, wpiszcie sw?j nick, ale UWAGA !
Musi by? to login, czyli ten kt?rym logujecie si? na serwer.


To co w ko?cu ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-07-28, 14:48


Mizy1999

I <3 Mta






Wiek: 28
Na forum: 4995 dni
Posty: 157
Nick w MP: xxx

Piwa: 154

Respekt: 40

* PanMaszyna.

Poprawione ;]

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-07-28, 17:45


kubak14







Wiek: 24
Na forum: 5205 dni
Posty: 119
Nick w MP: Heavy

Piwa: 149

Respekt: 45,8

Ostrzeżeń: 20%
Co to jest?


outputChatBox ("Nie posiadasz prawa jazdy kategori A by prowadzi? ten pojazd"thePlayer, [color=#00ffe0]0,0,0[/color] )


Po co te color? Psujesz kod :>

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-07-28, 19:35


Mizy1999

I <3 Mta






Wiek: 28
Na forum: 4995 dni
Posty: 157
Nick w MP: xxx

Piwa: 154

Respekt: 40

To mia? by? kolor, dla ?adu, zaraz to poprawi?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-07-29, 00:08


kubak14







Wiek: 24
Na forum: 5205 dni
Posty: 119
Nick w MP: Heavy

Piwa: 149

Respekt: 45,8

Ostrzeżeń: 20%
Wszedzie masz te colory, przeczytaj najpierw sam poradnik ;P

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-07-30, 11:45


adrik20022002







Wiek: 25
Na forum: 4819 dni
Posty: 6
Nick w MP: TheAdrik



Respekt: 50

Cytat:

Link do ca?ego skryptu: [ Za chwile b?dzie ]


Hm... Ile trwa ta twoja "chwila"?
Oczywi?cie umiem przepisa? sobie ten kod, ale napisa?e? ,?e za chwile to powinno by? za chwile...

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-07-30, 13:00


Jeey

Lua, Grafik






Wiek: 27
Na forum: 4339 dni
Posty: 98
Nick w MP: Jeey

Piwa: 383

Respekt: 80

Ostrzeżeń: 100%
adrik20022002, nie czepiaj si? go mo?e teraz czasu nie ma
A poradnik dla pocz?tkuj?cych jest fajny :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-10-18, 17:32


markob0







Wiek: 27
Na forum: 4247 dni
Posty: 151
Nick w MP: Markob

Piwa: 939

Respekt: 98,2

Ten poradnik da si? przeczyta? ;) , ale nie ze zrozumieniem go. Poradnik wydaje si? do?? fajny lecz wymaga du?ej edycji.

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-10-18, 19:56


Dixers

No-Life






Wiek: 26
Na forum: 4312 dni
Posty: 549
Nick w MP: Dixers

Piwa: 412

Respekt: 56,8

markob0, mo?e napiszesz ty?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-12-04, 09:01


monio







Wiek: 30
Na forum: 4887 dni
Posty: 319
Nick w MP: Monio99

Piwa: 3565

Respekt: 120,5
Respekt: 120,5

Czy ja dobrze zrozumia?em ?? Prawo jazdy na ACL ?? , Gracz, kt?ry jest w ACL ma prawo jazdy ??

Jak tak to zrozumia?em to lekki bezsens :) . Nie lepiej u?y? setAccountData ??

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-12-07, 21:36


Sekllik

owner - newRPG






Wiek: 25
Na forum: 4233 dni
Posty: 23
Nick w MP: Sekllik

Piwa: 139

Respekt: 12

Ostrzeżeń: 20%
Kiedy dasz link do gotowego skryptu? bo piszesz za chwilke a nie ma go :D

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-02-25, 14:25


LubieKARtofle







Wiek: 26
Na forum: 3985 dni
Posty: 2
Nick w MP: Gluu



Respekt: 50

Czy mog? prosi? jak?? osob?, kt?ra zna si? na LUA, o podanie tego skryptu w ca?o?ci?

Postaw piwo autorowi tego posta
 

 
Tagi: [tut] :: prawo :: jazdy :: jego :: podkategorie.
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 » [Tut] Prawo jazdy i jego podkategorie. 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