[POMOC] Vozila..


Započeo Elvedin_Wayne, Januar 21, 2016, 17:22:55 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: BE
Detaljan opis problema: Ovako znaci definisao sam vozila ovako na pocetku gore dodao
new avozila[15]

i dodao sam dole dje su kreirana vozila
avozila[0] = DodajVozilo(...)
avozila[1] = DodajVozilo(...)

I dole dodao function ovako

FUNCTION: AdminVozilo(carid)
{
	for(new i = 0; i < sizeof(avozila); i++)
	{
		if(carid == avozila[i])	return true;
	}
	return false;
}



Eh sad i dalje svi mogu da udju u to vozilo bez ikakvih problema kada sam pravio provjeru da ne mogu svi ulaziti u to vozilo,moze neka pomoc?


else if(AdminVozilo(vozilo))
    	{
    		if(PI[playerid][pAdmin] > 0)
			{
			    if(AdminDuty[playerid] == 0)
			    {
			        lz_RemovePlayerFromVehicle(playerid);
			    	Error(playerid, "Moras biti na duznosti kako bi vozio ovo vozilo!");
			    }
			}
		    else
			{
			    lz_RemovePlayerFromVehicle(playerid);
			    Error(playerid, "Nemas kljuceve od ovog vozila.");
			}
   		}

Dio skripte: Dato je ...
Neke slike/video za lakse dobivanje pomoci(neobavezno): Objasnjeno je fino,smatram da je do onoga function,e ne znam kako sada da napravim sva ta vozila u FUNCTION, osim na ovaj nacin kao sto je bilo default u modu:

FUNCTION: AdminVozilo(carid)
{
	if((carid >= 206 && carid <= 210) || (carid >= 477 && carid <= 481) || (carid >= 723 && carid <= 726))
	{
		return true;
	}
	return false;
}

Ja radim ovako pa ti probaj.Trebalo bi da ti radi.
Prvo definises ovako
new vozilo1;
new vozilo2;
//Itako dalje

Zatim napravis stock.ovako
stock Vozila(carid)
{
if ((carid >= vozilo1) && (carid == vozilo2)) /*Mozes ovako ako imas malo vozila,ako imas vise onda if(carid > vozilo1) pa do do poslednjeg */
{
return 1;
}
return 0;
}

naravno definises dole na vozila vizilo1 = AddStaticVehicle...
I sad kada proveravas ovako ulaz u vozilo ovako radis.
public OnPlayerStateChange(playerid, newstate, oldstate)
{
	new vehicleid = GetPlayerVehicleID(playerid);
	if(newstate == PLAYER_STATE_DRIVER)
	{
		if(Vozila(vehicleid))
		{

Pa vidi to je samo za jednu vrstu vozila,al sta mislis da za svako organizaciju pravim toliko new-ova ,msm za svako vozilo,a vozila ima oko 285..
Malo nerealno toliko napravit new-owa...


Pa tako vec i jesam,kao sto vidis ali problem je u ovome FUNCTION ili ti ga stock-u ...

Fazon je sto na ovaj nacin na koji sam ja uradio ne radi...


Probaj ovako.
Postavi ovo na onplayerstatechange
    if(AdminVozilo(vozilo))
		{
		    if(PlayerInfo[playerid][pAdmin] == 0)
		    {
		        SCM(playerid, -1, "Niste admin");
		        RemovePlayerFromVehicle(playerid);
			}
else return SCM(playerid, -1, "Vi ste admin zato mozete da vozite ovo vozilo");
		}

ovo medju ostale stock
stock AdminVozilo(carid)
{
	for(new i = 0; i < sizeof(avozila); i++)
	{
		if(carid == avozila[i])	return 1;
	}
	return 0;
}

Poslednja Izmena: Januar 22, 2016, 14:30:41 POSLE PODNE od Arkoo

Pa tako mi vec i jeste,vidis gore da sam tako napravio...


Probaj u printat u log ID-ove vozila npr

Ovo na kraj od ongamemodeinit stavi
for(new i = 0; i < sizeof(avozila); i++)
{
      printf("ID: %d",avozila);
}

i javi šta ti izbaci...

Citat: Fichoâ,,¢ poslato Januar 23, 2016, 21:33:31 POSLE PODNE
Probaj u printat u log ID-ove vozila npr

Ovo na kraj od ongamemodeinit stavi
for(new i = 0; i < sizeof(avozila); i++)
{
      printf("ID: %d",avozila);
}

i javi šta ti izbaci...



Ček ček ,kada to stavim ,sta cu radit kada dobijem IDove tih vozila ?

Čisto da vidiš da li će ti ih ispisat i ako ispiše da li su uredu jer možda je do funkcije "DodajVozilo" nešto