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.
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
- 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
Pozdrav, Denis_Lapi
PasterBin Link
