[Pomoc] OnPlayerStateChange


Započeo ★ OneZero ★, Februar 28, 2016, 19:25:31 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:0
Detaljan opis problema: Na localhostu imam ubaceni crashdetect istu verziju kao i na serveru. Na localhostu sve radi normalno i OnPlayerStateChange sve radi, izbacuje igraca ako nije clan te organizacije, a na serveru ne radi....
Dio skripte:
[19:32:08] [debug] Run time error 4: "Array index out of bounds"
[19:32:08] [debug]  Accessing element at negative index -1
[19:32:08] [debug] AMX backtrace:
[19:32:08] [debug] #0 002c9a34 in ?? (1, 2, 1) from purp.amx
[19:32:08] [debug] #1 0000dbb8 in public OnPlayerStateChange (1, 2, 1) from purp.amx


Ovo je cijeli OnPlayerStateChange jer stvarno nemogu vise, s tim se mucim vec tjedan dana i nemogu nista napraviti
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    new vozilo = GetPlayerVehicleID(playerid);
	if(newstate == PLAYER_STATE_DRIVER)
	{
		Speedo(playerid, 1);
		new Float:vhelti; Zastita[playerid] = 1;
	 	GetVehicleHealth(vozilo, vhelti);
     	AutoHelti[playerid] = vhelti;

		new idd = PI[playerid][pPosedovanjeAuta];
		if(vozilo == VoziloInfo[idd][vSadasnjiID])
		{
			SetVehicleModifications(idd, vozilo);
		}
		///////////////////////////////////////////////////////////////////////////
		if(vozilo >= vmotosalon[0] && vozilo <= vmotosalon[9])
		{
  			RemovePlayerFromVehicle(playerid);
		    SCM(playerid,-1,""BIJELA"(PU) "CRVENA"Ne mozete uci u izlozbeno vozilo!");
		}
		if(vozilo == IzlozbenoAuto)
		{
		    RemovePlayerFromVehicle(playerid);
		    SCM(playerid,-1,""BIJELA"(PU) "CRVENA"Ne mozete uci u izlozbeno vozilo!");
		}
		if(AutoSalonVozila(vozilo))
		{
		    RemovePlayerFromVehicle(playerid);
			SCM(playerid,-1,""BIJELA"(PU) "CRVENA"Ne mozete uci u izlozbeno vozilo!");
		}
		if(PolicijskaAuta(vozilo))
		{
			if(PI[playerid][pClan] == 7)
			{
			    RemovePlayerFromVehicle(playerid);
			    SCM(playerid, -1, ""PLAVA"Znao sam da nemogu voziti vozilo svojih kolega!");
			}
			else if(PI[playerid][pClan] != 1 && PI[playerid][pClan] != 7)
			{
				RemovePlayerFromVehicle(playerid);
				SCM(playerid, -1, ""PLAVA"Ne mozete ukrasti vozilo Los Santos Police Department!");
				PostaviWanted(playerid, "Pokusaj kradje Policijskog vozila", "Nepoznato");
			}
		}
		if(FBIAuta(vozilo))
		{
			if(PI[playerid][pClan] == 1)
			{
			    RemovePlayerFromVehicle(playerid);
			    SCM(playerid, -1, ""PLAVA"Znao sam da nemogu voziti vozilo svojih kolega!");
			}
			else if(PI[playerid][pClan] != 7 && PI[playerid][pClan] != 1)
			{
            	RemovePlayerFromVehicle(playerid);
				SCM(playerid, -1, ""PLAVA"Ne mozete ukrasti vozilo FBI-a!");
				PostaviWanted(playerid, "Pokusaj kradje FBI vozila", "Nepoznato");
			}
		}
		if(HitmanAuta(vozilo))
		{
			if(PI[playerid][pClan] != 8)
			{
				RemovePlayerFromVehicle(playerid);
				SCM(playerid, -1, ""SIVA"Ne mozete ukrasti vozilo Hitman Agencije!");
			}
		}
		else if(BolnicarVozila(vozilo))
		{
		    if(PI[playerid][pClan] != 9)
		    {
		        RemovePlayerFromVehicle(playerid);
  				SCM(playerid, -1, ""SIVA"Ne mozete ukrasti vozilo Bolnicara!");
			}
		}
		else if(TVFAuta(vozilo))
		{
			if(PI[playerid][pClan] != 2)
			{
				RemovePlayerFromVehicle(playerid);
				SCM(playerid, -1, ""CRVENA"Ne mozete ukrasti vozilo The Columbian Cartel!");
			}
		}
        else if(GAuta(vozilo))
		{
			if(PI[playerid][pClan] != 11)
			{
				RemovePlayerFromVehicle(playerid);
				SCM(playerid, -1, ""SPLAVA"Nemozete ukrasti vozilo Gradonacelnika!");
			}
		}
        else if(SFAuta(vozilo))
		{
			if(PI[playerid][pClan] != 10)
			{
				RemovePlayerFromVehicle(playerid);
				SCM(playerid, -1, ""SPLAVA"Nemozete ukrasti vozilo Underground Racers!");
			}
		}
		else if(TBTVozila(vozilo))
		{
			if(PI[playerid][pClan] != 3)
			{
				RemovePlayerFromVehicle(playerid);
				SCM(playerid, -1, ""BIJELA"Nemozete ukrasti vozilo La Cosa Nostra!");
			}
		}
		else if(GroveVozila(vozilo))
		{
			if(PI[playerid][pClan] != 4)
			{
				RemovePlayerFromVehicle(playerid);
				SCM(playerid, -1, ""ZELENA"Nemozete ukrasti vozilo Grove Street Family!");
			}
		}
		else if(BallasVozila(vozilo))
		{
			if(PI[playerid][pClan] != 5)
			{
				RemovePlayerFromVehicle(playerid);
				SCM(playerid, -1, ""LJUB"Nemozete ukrasti vozilo Ballasa!");
			}
		}
		else if(NovinariVozila(vozilo))
		{
		    if(PI[playerid][pClan] != 6)
			{
				RemovePlayerFromVehicle(playerid);
				SCM(playerid, -1, ""ZUTA"Nemozete ukrasti vozilo LS News!");
			}
		}
		if(vozilo >= vkarting[0] && vozilo <= vkarting[6])
		{
		    if(Zeton[playerid] == 0)
		    {
				SCM(playerid,-1,""BIJELA"(PU) "CRVENA"Morate kupiti zeton!"); RemovePlayerFromVehicle(playerid);
				return 1;
		    }
		    else if(Zeton[playerid] == 1)
			{
				SCM(playerid,-1,"(PU) "ZUTA"Srecno u voznji, zeton traje 4 minuta!");
				zeton[playerid] = SetTimerEx("KartingZeton", 240000, false, "i", playerid);
			}
		}
		if(vozilo >= askolavozila[0] && vozilo <= askolavozila[7])
		{
			if(Poligon[playerid] == 0)
			{
				SCM(playerid, -1, ""PPLAVA"[AS]: "ORANGE"Nemate uplaceno polaganje...");
				RemovePlayerFromVehicle(playerid);
				return 1;
			}
			if(Poligon[playerid] == 1)
			{
				SetPlayerCheckpoint(playerid, 1544.3151,-2243.0063,13.5469, 2.5);
				SCM(playerid, -1, ""PPLAVA"[AS]: "BIJELA"Krenuli ste sa polaganjem pratite crvene markere!");
			}
		}
		if(BiciklaRent(vozilo))
		{
		    if (Rentano[playerid] != vozilo)
		    {
				TogglePlayerControllable(playerid, 0);
				GameTextForPlayer(playerid,"~w~Mozete rentati ovo biciklo ~b~/rent ~w~ili ~b~/izlaz~n~~w~Cena Renta: ~g~30$",5000,3);
			}
		}
		if(MotoRent(vozilo))
		{
		    if (Rentano[playerid] != vozilo)
		    {
			    TogglePlayerControllable(playerid, 0);
				GameTextForPlayer(playerid,"~w~Mozete rentati ovaj motor ~b~/rent ~w~ili ~b~/izlaz~n~~w~Cena Renta: ~g~80$",5000,3);
			}
		}
		if(AutaRent(vozilo))
		{
		    if (Rentano[playerid] != vozilo)
		    {
			    TogglePlayerControllable(playerid, 0);
			    GameTextForPlayer(playerid,"~w~Mozete rentati ovo vozilo ~b~/rent ~w~ili ~b~/izlaz~n~~w~Cena Renta: ~g~120$",5000,3);
			}
		}
        if(VoziloJeKamion(GetVehicleModel(GetPlayerVehicleID(playerid))))
    	{
        	if(PI[playerid][pKamionDozvola] <= 0)
    		{
        		SCM(playerid,-1,""ORANGE"(PU) "BIJELA"Nemate dozvolu za kamion, kupite je u auto skoli!");
    		}
    	}
    	if(VoziloJeAvion(GetVehicleModel(GetPlayerVehicleID(playerid))))
    	{
        	if(PI[playerid][pAvionDozvola] <= 0)
    		{
        		SCM(playerid,-1,""ORANGE"(PU) "BIJELA"Nemate dozvolu za letjelicu, kupite je u auto skoli!");
        		RemovePlayerFromVehicle(playerid);
    		}
    	}
    	if(VoziloJeBrod(GetVehicleModel(GetPlayerVehicleID(playerid))))
    	{
        	if(PI[playerid][pBrodDozvola] <= 0)
        	{
            	SCM(playerid,-1,""ORANGE"(PU) "BIJELA"Nemate dozvolu za plovilo, kupite je u auto skoli!");
            	RemovePlayerFromVehicle(playerid);
        	}
    	}
    	if(VoziloJeMotor(GetVehicleModel(GetPlayerVehicleID(playerid))))
    	{
        	if(PI[playerid][pMotorDozvola] <= 0)
        	{
            	SCM(playerid,-1,""ORANGE"(PU) "BIJELA"Nemate dozvolu za motor, kupite je u auto skoli!");
        	}
    	}
		////////////////////////////////////////////////////////////////////////////////////////////
 		if(!VoziloJeBicikla(GetVehicleModel(GetPlayerVehicleID(playerid))) && !VoziloJeMotor(GetVehicleModel(GetPlayerVehicleID(playerid))))
    	{
			if(PI[playerid][pADozvola] == 1) SCM(playerid, -1, ""CRVENA"| UPOZORENJE | {FF6347}Radi vlastite sigurnosti , trebate staviti pojas komandom /pojas !!");
			if(PI[playerid][pADozvola] == 0) SCM(playerid, -1, ""CRVENA"| UPOZORENJE | {FF6347}Nemate vozacku dozvolu, pazite se policije !! Obavezno svezite pojas komandom /pojas !!");
    	}
    	if(VoziloJeBicikla(GetVehicleModel(GetPlayerVehicleID(playerid))))
    	{
	    	new engine, lights, alarm, doors, bonnet, boot, objective;
        	GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
        	SetVehicleParamsEx(GetPlayerVehicleID(playerid), 1, lights, alarm, doors, bonnet, boot, objective);
    	}
    	if(!VoziloJeBicikla(GetVehicleModel(GetPlayerVehicleID(playerid))))
    	{
	    	new engine, lights, alarm, doors, bonnet, boot, objective;
		    GetVehicleParamsEx(vozilo, engine, lights, alarm, doors, bonnet, boot, objective);
	    	if(engine == -1 && !VoziloJeBicikla(GetVehicleModel(GetPlayerVehicleID(playerid))))
			{
				SetVehicleParamsEx(vozilo, 0, 0, alarm, doors, bonnet, boot, objective);
			}
		}
		if(BusVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_BUSVOZAC)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao bus vozac!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/linija /prekiniposao");
		}
	    if(KosenjeVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_KOSACTRAVE)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao kosac trave!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/kositravu /prekiniposao");
		}
		if(MehanicarVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_MEHANICAR)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao mehanicar!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"CTRL da zakacite/otkacite vozilo | /popravi | /napuni");
		}
		if(PostaVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_POSTAR)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao postar!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/posta /prekiniposao");
		}
		if(RudarVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_RUDAR)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao rudar!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""CRVENA"Komande posla: "BIJELA"/kopaj /poluge /prekiniposao");
		}
		if(KomunalnoVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_KOMUNALAC)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao komunalac!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/komunalno /prekiniposao");
		}
		if(GradjevinarVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_GRADJEVINAR)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao gradjevinar!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/malter /poravnaj /prekiniposao");
		}
		if(GrobarVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_GROBAR)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao grobar!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/grobar /oprema");
		}
		if(FarmerVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_FARMER)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao farmer!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/mleko /oranje /vrsenje");
		}
		if(vozilo == VozVozilo)
		{
		    if(PI[playerid][pPosao] != POSAO_MASINOVODJA)
		    {
				new Float:Poz[3];
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao masinovodja!");
		        GetPlayerPos(playerid, Poz[0], Poz[1], Poz[2]);
		        g_SetPlayerPos(playerid, Poz[0], Poz[1], Poz[2]+0.5);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/voz");
		}
		if(DostavljacVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_DOSTAVLJAC)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao dostavljac!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/uzmikutiju /utovari /istovari");
		}
		if(KamiondzijaVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_KAMIONDZIJA)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao kamiondzija!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/tura /oprema");
		}
		if(PilotVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_PILOT)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao pilot!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/let /oprema");
		}
		if(ElektricarVozila(vozilo))
		{
		    if(PI[playerid][pPosao] != POSAO_ELEKTRICAR)
		    {
		        SCM(playerid, -1, ""ORANGE"(PU): "SIVA"Niste zaposleni kao elektricar!");
		        RemovePlayerFromVehicle(playerid);
			}
			else return SCM(playerid, -1, ""ORANGE"Komande posla: "BIJELA"/kvar /oprema");
		}
	}
	else
	{
		Speedo(playerid,0);
	}
	///////////////////ANTI DEAGLE H////////////////////
	if(newstate==PLAYER_STATE_PASSENGER)
	{
 		if(GetPlayerWeapon(playerid) == 24)
   		{
     		SetPlayerArmedWeapon(playerid, 0);
	    }
   		new Float:vhelti; Zastita[playerid] = 1;
	 	GetVehicleHealth(vozilo, vhelti);
     	AutoHelti[playerid] = vhelti;
	}
	///////////////////////////////////////////////////////
	return 1;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno)://

Mislim da je "new idd = PI[playerid][pPosedovanjeAuta];" tu problem jer nisi napravio proveru da li on ima vozilo i tu stoji -1 zato gore izbacuje crashdetect -1.
You have enemies? Good. That means you've stood up for something, sometime in your life.

Citat: Mr. Letic poslato Februar 28, 2016, 19:38:41 POSLE PODNE
Mislim da je "new idd = PI[playerid][pPosedovanjeAuta];" tu problem jer nisi napravio proveru da li on ima vozilo i tu stoji -1 zato gore izbacuje crashdetect -1.

Probat cu ovo javim uskoro jel radi

Edit: Hvala ti, toliko sam dugo buljio u te kodove, ali provjeravao sam sve ispod, nisam uopce mislio da bi to izbacivalo error.... -.-
Poslednja Izmena: Februar 28, 2016, 20:01:38 POSLE PODNE od ★Manuel™★