PARTNERI:
-UPOZORENJE-

Samo registrovani članovi mogu da vide/koriste forum u celini.
Prijavite se ili registrujte nalog na Balkan SA-MP forumu.


Autor Tema: [TuT] Array spremanje vozila (Napredna Verzija)  (Pročitano 2027 puta)

0 članova i 1 gost pregledaju ovu temu.

Van mreže Denis_Lapi

[TuT] Array spremanje vozila (Napredna Verzija)
« poslato: Jul 13, 2014, 01:42:46 pre podne »
Pozdrav forumasi.
Posto je stari tutorijal na ovu temu nestao tj. obrisan je. Ja sam odlucio da vam ponovo napisem jer i dalje veliki broj clanova ne zna kako da ovo odradi.



-Dakle, kao sto sam naslov kaze, u ovom tutorijalu cete nauciti kako da spremate i ubacujete vozila u vas mod po Array principu.
-Sta vam omogucava ovaj sistem? Ovaj sistem vam omogucava tj. sprecava mesanje ID-ova vozila .



-Sta vam je potrebno za ovaj tutorijal? Samo dobra volja i SA:MP paket, mod ili sta vec
P.S. Ja sam ovo radio za vozila Bolnice, ali vi mozete promeniti varijable i raditi na za svoje potrebe. To mi je vec u modu bilo odradjeno tako da sam uzeo ovo jer ce vam biti lakse da shvatite.


1. Korak

-U prvom koraku cemo spremiti promenljivu koja broji koliko vozila sadrzi nas sistem array-a, takodje dodacemo i #include <a_samp> kao osnovni include fajl.
- Kako to radimo? Pa jednostavno cemo na pocetku skripte van svih publica staviti sledeci kod:


#include <a_samp> // Osnovni Include fajl

new Bolnica[2]; // Ova varijabla broji za koliko vozila ima nas sistem, u nasem slucaju su to 2 vozila

2. Korak

- U drugom koraku cemo ubacivati vozila po Array sistemu u public OnGameModeInit(). Obratite paznju na ovaj postupak jer je to ono sto je specificno od klasicnog ubacivanja.
- Kako to radimo, pa na sledeci nacin:


Bolnica[0] = CreateVehicle(416,1177.3308,-1308.4207,14.0167,268.7923, 1,2, 100); // Ovo je vozilo broj 1
Bolnica[1] = CreateVehicle(416,1176.9700,-1338.4779,14.0681,271.0920, 1,2, 100); // Ovo je vozilo broj 2
// Kao sto smo gore definisali imamo 2 vozila


3. Korak

- U trecen koraku kreiramo stock koji na osnovu na osnovu Array niza koji smo prethodno kreirali, sve clanove tog niza svrstava u istu drupu. Inace, ovaj stock ce nam kasnije sluzici u proveri koja su to vozila koja igrac ne moze da koristi ukoliko nije ispunio neki uslov, vise o tome u sledecem koraku.
- Kako kreiramo stock? Njega kreiramo van svih publica. Ja vam preporucujem da to odradite na kraju skripte.
- Kako glasi nas stock, pa ovako:


stock VozilaBolnice(carid) // Ime nase druge vozila
{
for(new i = 0; i < sizeof(Bolnica); i++)
{
if(carid == Bolnica[i]) return 1;
}
return 0;
}

Ovaj postupak necu previse da objasnjavam jer zaista nema tolike potrebe. Znaci kada god zelite da odradite jos jedan array sistem kopirajte ovaj stock, promenite mu ime i u petlji zamenite nove varijable.

4. Korak

- U 4. koraku cemo zavrsiti nas Array sistem. U njemu cemo postavljati uslove koje igrac mora da ispuni da vi mogao da vozi odradjeno vozilo. Moji ce uslovi naravno biti drugaciji nego kod vas jer ne mogu da kreiram i organizacije. S toga cu postaviti neke, mogu slobodno reci, banalne uslove. Ali sta je tu je, vazno je da shvatite osnovu svega ovoga.
- Dakle mi u ovom nasem 4. koraku moramo ubaciti proveru da li igrac moze da vozi odredjena vozila kada udje u njih.
- Kako to radimo? Prvo gde moramo da odemo je public OnPlayerStateChange(playerid, newstate, oldstate)
  U njemu cemo odratiti promenu i zavrsiti ovo sto smo poceli, ovaj 4. korak predstavlja nas cilj.
- Dakle upisujemo sledeci kod u vec navedeni public



public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vozilo= GetPlayerVehicleID(playerid); // Definisemo promenljivu od koje cemo kasnije uzimati ID vozila
if(newstate == PLAYER_STATE_DRIVER)  // Ovo predstavlja poziciju igraca kada je u vozilo, u nasem slucaju to je pozicija vozaca.
{
    if(VozilaBolnice(vozilo)) // Opozivamo stock koji smo kreirali tj. drupu vozila koju ovaj stock svrstao u jedno
{
if(GetPlayerMoney(playerid) < 100) // Ovaj uslov nam definise da ako igrac ima manje od 100$ ne moze da udje u vozilo. Ovaj deo morate sebi da prilagodite u zavisnosti za sta kreirate Array, bilo to organizacija, posao ili nesto drugo
{
GameTextForPlayer(playerid, "~w~Zakljucano~n~~b~Nemate kljuceve ovog vozila !!", 4000, 5); // Ispisuje nam GameText koji traje 4 sekunde.
RemovePlayerFromVehicle(playerid); // Uklanja/izbacuje igraca iz auta ako uslov nije ispunjen.
}
}
    }
  return 1;
}


*BITNO: if(newstate == PLAYER_STATE_DRIVER) - Ovaj uslov vam definise da ako igrac hoce da VOZI kola, a ne ispunjuje uslov da ga izbaci. Da nismo stavili ovaj uslov izbacivalo bi nas nas kako god da udjemo u kola. Bilo to na mestu suvozara, na zadnja dva sedista, ili bilo gde unutar vozila. Naravno pod uslovom da ne zadovoljavamo uslov koji je zadat.


Tutorijal koji sam izradio je testiran, s toga ukoliko imate bilo kakvih problema to ce biti zbog toga sto nesto niste lepo kopirali. U prilog cu vam ostaviti i pasterbin link gde cete moci da pregledate celu skriptu.
                                                                                                                                                                         
                                                                                                                                                                                                      Pozdrav, Denis_Lapi

PasterBin Link
« Poslednja izmena: Jul 13, 2014, 01:58:54 pre podne Denis_Lapi »
[FS] Bank Sistem
[TuT] Array Sistem (Napredna)


"Pa krenite na mene i provesce te se super ko kapetan Kuka kada levom brise dupe"

www.denis-lapi.com
 

Odg: [TuT] Array spremanje vozila (Napredna Verzija)
« Odgovor #1 poslato: Jul 13, 2014, 17:36:38 posle podne »
Nije lose, fino objasnjeno.
 

Van mreže Denis_Lapi

Odg: [TuT] Array spremanje vozila (Napredna Verzija)
« Odgovor #2 poslato: Jul 13, 2014, 17:59:36 posle podne »
Pohvale za tut.
Ali imam jedno pitanje:kako da uklonim onu stariju varijantu da su odredjeni  id-ovi za odredjenu org-u ?

EDIT: je li to ovaj dio i sta jos treba da obrisem
public IsAnOwnableCar(vehicleid)
{
if(vehicleid >= 457 && vehicleid <= 1060) { return 1; } // car system
return 0;
}
Pa moras ukloniti sva vozila i sve publice koji ti sluze za to. Ali svakako da ovo nije mesto za tu raspravu, otvori temu pa cemo tamo pricati o tome. Da ne bi ovde skupljali postove. Hvala za komentar  ;)
[FS] Bank Sistem
[TuT] Array Sistem (Napredna)


"Pa krenite na mene i provesce te se super ko kapetan Kuka kada levom brise dupe"

www.denis-lapi.com
 

Van mreže TheToretto

Odg: [TuT] Array spremanje vozila (Napredna Verzija)
« Odgovor #3 poslato: Jul 18, 2014, 00:17:21 pre podne »
Dobar tutorial,sve fino objasnjeno,svaka cast :)

Van mreže Ino42O

Odg: [TuT] Array spremanje vozila (Napredna Verzija)
« Odgovor #4 poslato: Jul 18, 2014, 00:19:44 pre podne »
Dobar tutorial,sve fino objasnjeno,svaka cast :)

 Dobar tut al cemu refresh..
Software Developer
 

Van mreže TheToretto

Odg: [TuT] Array spremanje vozila (Napredna Verzija)
« Odgovor #5 poslato: Jul 18, 2014, 00:24:06 pre podne »
Dobar tutorial,sve fino objasnjeno,svaka cast :)

 Dobar tut al cemu refresh..

Nisam vidio,cudim se da mi je promaklo ako sam bio tu,a kakve veze ima za refresh tema 5 dana stara :P ,mozda ima jos neko da nije vidio  8)

Van mreže Kriso

Odg: [TuT] Array spremanje vozila (Napredna Verzija)
« Odgovor #6 poslato: Decembar 31, 2014, 16:37:50 posle podne »
// Nepotrebno kopiranje citata
#Denis_Lapi
« Poslednja izmena: Decembar 31, 2014, 17:15:23 posle podne Denis_Lapi »
GAD SAM JA
 

Van mreže youngdeal

Odg: [TuT] Array spremanje vozila (Napredna Verzija)
« Odgovor #7 poslato: Decembar 31, 2014, 18:45:39 posle podne »
Bolje da si pokazao preko iteratora jer je jednostavnije,no početnici ce i ovo razumeti.
69
 

Van mreže Denis_Lapi

Odg: [TuT] Array spremanje vozila (Napredna Verzija)
« Odgovor #8 poslato: Decembar 31, 2014, 19:11:21 posle podne »
Bolje da si pokazao preko iteratora jer je jednostavnije,no početnici ce i ovo razumeti.
Postojao je jedan tut koji radi na ovaj princip pa je na neki nacin obrisan, zato sam uradio ovakav. A i mislim da ce im vise koristiti. Skoro svaki mod ima ovaj princip rada, a i sam ga koristim kod mene u modu, pa sam ga napisao ovako.
Posveticu se malo pisanju tutorijala neko vreme, jer planiram da batalim skriptanje, pa cu negde plasirati ovo sto sam naucio kroz godine.
[FS] Bank Sistem
[TuT] Array Sistem (Napredna)


"Pa krenite na mene i provesce te se super ko kapetan Kuka kada levom brise dupe"

www.denis-lapi.com