Respawn vozila na /startjob

Neckiy Započeo Neckiy
pre 4 godine
412
pregleda
6
postova
Neckiy
Shot Caller
pre 4 godine
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 == 0) return Greska(playerid, "Niste ulogovani.");
else if(zamrznut == 1) return Greska(playerid, "Ne mozes to sad!");
else if(PlayerInfo == 0) return Greska(playerid, "Nisi zaposlen!");
new Float:Pos;
if(IsPlayerInRangeOfPoint(playerid, 2.0, 1219.1584,-1812.0776,16.5938)) // VOZAC AUTOBUSA
{
if(PlayerInfo != 1) return Greska(playerid, "Ne radis kao Vozac Autobusa.");
else if(aduty == 1 || hduty == 1) return Greska(playerid, "Na duznosti si, ne mozes raditi posao!");
else if(PlayerInfo == 0) return Greska(playerid, "Nemas dozvolu za voznju autobusa!");
else if(radiposao == 1) return Greska(playerid, "Vec radis posao!");
//dodaj za wanted level
GetPlayerPos(playerid, Pos, Pos, Pos);
if(radnovozilo != -1) {
DestroyVehicle(radnovozilo);
}
radnovozilo = AddStaticVehicle(431,1269.7939,-1814.9988,13.4845,180.1526, 0, 0);
radnovozilolabel = CreateDynamic3DTextLabel("{37E1E9}[VOZAC AUTOBUSA]", -1, Pos, Pos, Pos, 30.0, INVALID_PLAYER_ID, radnovozilo, 0,-1,-1, -1, STREAMER_3D_TEXT_LABEL_SD, -1, 0);
PutPlayerInVehicle(playerid, radnovozilo, 0);
SetCameraBehindPlayer(playerid);
radiposao = 1;
SCM(playerid,-1,"{24D6A1} "BELA"Zapoceli ste posao Vozaca Autobusa. Idite do prve stanice!");
SCM(playerid,-1,"{24D6A1} "BELA"Da prekinete posao, ukucajte /endjob.");
SetPlayerCheckpoint(playerid, 1595.8616,-1875.3226,13.4854, 5);
autobuscheckpoint = 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2542.6077,-1528.4862,23.8166)) // KOSAC TRAVE
{
if(PlayerInfo != 2) return Greska(playerid, "Ne radis kao Kosac Trave.");
else if(aduty == 1 || hduty == 1) return Greska(playerid, "Na duznosti si, ne mozes raditi posao!");
else if(PlayerInfo == 0) return Greska(playerid, "Nemas dozvolu za voznju motora!");
else if(radiposao == 1) return Greska(playerid, "Vec radis posao!");
//dodaj za wanted level
GetPlayerPos(playerid, Pos, Pos, Pos);
if(radnovozilo != -1) {
DestroyVehicle(radnovozilo);
}
radnovozilo = AddStaticVehicle(572,2544.2549,-1547.4746,23.3722,169.1259, 0, 0);
radnovozilolabel = CreateDynamic3DTextLabel("{1E5F0E}[KOSAC TRAVE]", -1, Pos, Pos, Pos, 30.0, INVALID_PLAYER_ID, radnovozilo, 0,-1,-1, -1, STREAMER_3D_TEXT_LABEL_SD, -1, 0);
PutPlayerInVehicle(playerid, radnovozilo, 0);
SetCameraBehindPlayer(playerid);
radiposao = 1;
SCM(playerid,-1,"{24D6A1} "BELA"Zapoceli ste posao Kosaca Trave. Idite do prvog checkpointa!");
SCM(playerid,-1,"{24D6A1} "BELA"Da prekinete posao, ukucajte /endjob.");
SetPlayerCheckpoint(playerid, 2532.9038,-1575.3029,21.9447, 3);
kosactravecheckpoint = 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 2.0, 637.5584,831.1437,-42.9609)) // DOSTAVLJAC ZLATA
{
if(PlayerInfo != 3) return Greska(playerid, "Ne radis kao Dostavljac Zlata.");
else if(aduty == 1 || hduty == 1) return Greska(playerid, "Na duznosti si, ne mozes raditi posao!");
else if(PlayerInfo == 0) return Greska(playerid, "Nemas dozvolu za voznju kamiona!");
else if(radiposao == 1) return Greska(playerid, "Vec radis posao!");
//dodaj za wanted level
GetPlayerPos(playerid, Pos, Pos, Pos);
if(radnovozilo != -1) {
DestroyVehicle(radnovozilo);
}
radnovozilo = AddStaticVehicle(609,617.3093,821.1633,-42.9534,357.5893, 0, 0);
radnovozilolabel = CreateDynamic3DTextLabel("{E5E50B}[DOSTAVLJAC ZLATA]", -1, Pos, Pos, Pos, 30.0, INVALID_PLAYER_ID, radnovozilo, 0,-1,-1, -1, STREAMER_3D_TEXT_LABEL_SD, -1, 0);
PutPlayerInVehicle(playerid, radnovozilo, 0);
SetCameraBehindPlayer(playerid);
radiposao = 1;
SCM(playerid,-1,"{24D6A1} "BELA"Zapoceli ste posao Dostavljaca Zlata. Idite do prvog odredista!");
SCM(playerid,-1,"{24D6A1} "BELA"Da prekinete posao, ukucajte /endjob.");
SetPlayerCheckpoint(playerid, -1994.1693,1319.5383,7.2142, 3);
dostavljaczlatacheckpoint = 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):
//
Neckiy
Shot Caller
pre 4 godine
neko?
Taylor Script
Made Man
pre 4 godine
Ne mogu uocit sta bi moglo bit a ovo

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

ne znam gdje dajes vrijednost -1 kad destroyas vozilo a trazis tu vrijednost
Exnas.pwn
Godfather
pre 4 godine
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.
Neckiy
Shot Caller
pre 4 godine
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.
Neckiy
Shot Caller
pre 4 godine
radi lock

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava