Respawn vozila na /startjob


Započeo Neckiy, Novembar 06, 2021, 05:18:20 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Imam 3 posla trenutno na serveru i kada u kosacu trave i dostavljacu zlata (dole napisano) ukucam start job ono lepo spawnuje vozilo i ubaci me u njega ali, ako drugi igrac posle mene isto starta job, moje vozilo nestane i stvori se kod njega. Kod vozaca autobusa (takodje ispod) je isti kod kao i za ostala dva ali iz nekog razloga kod vozaca busa radi perfektno bez respawnovanja.
Deo skripte:
YCMD:startjob(playerid,params[],help)
{
	if(UlogovaniIgrac[playerid] == 0) return Greska(playerid, "Niste ulogovani.");
	else if(zamrznut[playerid] == 1) return Greska(playerid, "Ne mozes to sad!");
	else if(PlayerInfo[playerid][pZaposlen] == 0) return Greska(playerid, "Nisi zaposlen!");
	new Float:Pos[3];
	if(IsPlayerInRangeOfPoint(playerid, 2.0, 1219.1584,-1812.0776,16.5938)) // VOZAC AUTOBUSA
	{
		if(PlayerInfo[playerid][pPosao] != 1) return Greska(playerid, "Ne radis kao Vozac Autobusa.");
		else if(aduty[playerid] == 1 || hduty[playerid] == 1) return Greska(playerid, "Na duznosti si, ne mozes raditi posao!");
		else if(PlayerInfo[playerid][pDozvolaAutobus] == 0) return Greska(playerid, "Nemas dozvolu za voznju autobusa!");
		else if(radiposao[playerid] == 1) return Greska(playerid, "Vec radis posao!");
		//dodaj za wanted level
		GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
		if(radnovozilo[playerid] != -1) {
			DestroyVehicle(radnovozilo[playerid]);
		}
		radnovozilo[playerid] = AddStaticVehicle(431,1269.7939,-1814.9988,13.4845,180.1526, 0, 0);
		radnovozilolabel[playerid] = CreateDynamic3DTextLabel("{37E1E9}[VOZAC AUTOBUSA]", -1, Pos[0], Pos[1], Pos[2], 30.0, INVALID_PLAYER_ID, radnovozilo[playerid], 0,-1,-1, -1, STREAMER_3D_TEXT_LABEL_SD, -1, 0);
		PutPlayerInVehicle(playerid, radnovozilo[playerid], 0);
		SetCameraBehindPlayer(playerid);
		radiposao[playerid] = 1;
		SCM(playerid,-1,"{24D6A1}[POSAO] "BELA"Zapoceli ste posao Vozaca Autobusa. Idite do prve stanice!");
		SCM(playerid,-1,"{24D6A1}[POSAO] "BELA"Da prekinete posao, ukucajte /endjob.");
		SetPlayerCheckpoint(playerid, 1595.8616,-1875.3226,13.4854, 5);
		autobuscheckpoint[playerid] = 1;
	}
	else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2542.6077,-1528.4862,23.8166)) // KOSAC TRAVE
	{
		if(PlayerInfo[playerid][pPosao] != 2) return Greska(playerid, "Ne radis kao Kosac Trave.");
		else if(aduty[playerid] == 1 || hduty[playerid] == 1) return Greska(playerid, "Na duznosti si, ne mozes raditi posao!");
		else if(PlayerInfo[playerid][pDozvolaMotor] == 0) return Greska(playerid, "Nemas dozvolu za voznju motora!");
		else if(radiposao[playerid] == 1) return Greska(playerid, "Vec radis posao!");
		//dodaj za wanted level
		GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
		if(radnovozilo[playerid] != -1) {
			DestroyVehicle(radnovozilo[playerid]);
		}
		radnovozilo[playerid] = AddStaticVehicle(572,2544.2549,-1547.4746,23.3722,169.1259, 0, 0);
		radnovozilolabel[playerid] = CreateDynamic3DTextLabel("{1E5F0E}[KOSAC TRAVE]", -1, Pos[0], Pos[1], Pos[2], 30.0, INVALID_PLAYER_ID, radnovozilo[playerid], 0,-1,-1, -1, STREAMER_3D_TEXT_LABEL_SD, -1, 0);
		PutPlayerInVehicle(playerid, radnovozilo[playerid], 0);
		SetCameraBehindPlayer(playerid);
		radiposao[playerid] = 1;
		SCM(playerid,-1,"{24D6A1}[POSAO] "BELA"Zapoceli ste posao Kosaca Trave. Idite do prvog checkpointa!");
		SCM(playerid,-1,"{24D6A1}[POSAO] "BELA"Da prekinete posao, ukucajte /endjob.");
		SetPlayerCheckpoint(playerid, 2532.9038,-1575.3029,21.9447, 3);
		kosactravecheckpoint[playerid] = 1;
	}
	else if(IsPlayerInRangeOfPoint(playerid, 2.0, 637.5584,831.1437,-42.9609)) // DOSTAVLJAC ZLATA
	{
		if(PlayerInfo[playerid][pPosao] != 3) return Greska(playerid, "Ne radis kao Dostavljac Zlata.");
		else if(aduty[playerid] == 1 || hduty[playerid] == 1) return Greska(playerid, "Na duznosti si, ne mozes raditi posao!");
		else if(PlayerInfo[playerid][pDozvolaKamion] == 0) return Greska(playerid, "Nemas dozvolu za voznju kamiona!");
		else if(radiposao[playerid] == 1) return Greska(playerid, "Vec radis posao!");
		//dodaj za wanted level
		GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
		if(radnovozilo[playerid] != -1) {
			DestroyVehicle(radnovozilo[playerid]);
		}
		radnovozilo[playerid] = AddStaticVehicle(609,617.3093,821.1633,-42.9534,357.5893, 0, 0);
		radnovozilolabel[playerid] = CreateDynamic3DTextLabel("{E5E50B}[DOSTAVLJAC ZLATA]", -1, Pos[0], Pos[1], Pos[2], 30.0, INVALID_PLAYER_ID, radnovozilo[playerid], 0,-1,-1, -1, STREAMER_3D_TEXT_LABEL_SD, -1, 0);
		PutPlayerInVehicle(playerid, radnovozilo[playerid], 0);
		SetCameraBehindPlayer(playerid);
		radiposao[playerid] = 1;
		SCM(playerid,-1,"{24D6A1}[POSAO] "BELA"Zapoceli ste posao Dostavljaca Zlata. Idite do prvog odredista!");
		SCM(playerid,-1,"{24D6A1}[POSAO] "BELA"Da prekinete posao, ukucajte /endjob.");
		SetPlayerCheckpoint(playerid, -1994.1693,1319.5383,7.2142, 3);
		dostavljaczlatacheckpoint[playerid] = 1;
	}
	else return Greska(playerid, "Nisi na mestu za pocetak posla!");
	return 1;
}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
//
Poslednja Izmena: Novembar 07, 2021, 00:49:49 PRE PODNE od M Ө M Σ N Z I
Mnogo ljudi mi govori da sam autistican.
U pravu su...

neko?
Mnogo ljudi mi govori da sam autistican.
U pravu su...

Ne mogu uocit sta bi moglo bit a ovo

      if(radnovozilo[playerid] != -1) {
         DestroyVehicle(radnovozilo[playerid]);
      }

ne znam gdje dajes vrijednost -1 kad destroyas vozilo a trazis tu vrijednost

Kada se jednom Destorya vozilo, ono ce idalje ostati zapamceno kao da nije destroyano za jednog igraca.
Sto bi znacilo da u toj provjeri 'radnovozilo' tamo gdje ga brises tu varijablu trebalo da stavis na -1, taj dio sa drugim igracem nema logike.

Mislim da znam u cemu je problem, na /startjob proverava ako vozilo nije na -1 da ga destroja a ja sam stavio u OnPlayerConnect da je radnovozilo -1 i zato prvi posao radi a ostali ne jer na /endjob nisam stavio radnovozilo= -1 nego sam ga samo unistio. Provericu posle pa cu lockati ako je reseno.
Mnogo ljudi mi govori da sam autistican.
U pravu su...

radi lock
Mnogo ljudi mi govori da sam autistican.
U pravu su...