[TuT] Array spremanje vozila (Napredna Verzija)

Započeo Denis_Lapi
12. Jul 2014. Zaključano
4,211
pregleda
9
postova
denis_lapi
5
Godfather
12. Jul 2014.
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 kao osnovni include fajl.
- Kako to radimo? Pa jednostavno cemo na pocetku skripte van svih publica staviti sledeci kod:


#include // Osnovni Include fajl

new Bolnica; // 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 = CreateVehicle(416,1177.3308,-1308.4207,14.0167,268.7923, 1,2, 100); // Ovo je vozilo broj 1
Bolnica = 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) 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
Lenonâ„¢
5
Godfather
13. Jul 2014.
Nije lose, fino objasnjeno.
denis_lapi
5
Godfather
13. Jul 2014.
Guerrero wrote on July 13, 2014, 3:09 pm:
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  😉
TheToretto
4
Made Man
17. Jul 2014.
Dobar tutorial,sve fino objasnjeno,svaka cast 🙂
Ivan_Ino
5
Kingpin
17. Jul 2014.
Quote from July 17, 2014, 10:17 pm:
Dobar tutorial,sve fino objasnjeno,svaka cast 🙂


Dobar tut al cemu refresh..
TheToretto
4
Made Man
17. Jul 2014.
Quote from July 17, 2014, 10:17 pm:
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 😛 ,mozda ima jos neko da nije vidio  😎
Kriso_Anderson
5
Kingpin
31. Dec. 2014.
// Nepotrebno kopiranje citata
#Denis_Lapi
James_SmithXDl
6
OG Legend
31. Dec. 2014.
Bolje da si pokazao preko iteratora jer je jednostavnije,no početnici ce i ovo razumeti.
denis_lapi
5
Godfather
31. Dec. 2014.
C++ wrote on December 31, 2014, 5:45 pm:
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.

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha