Spawn Kola

Započeo Goku ^, Oktobar 10, 2022, 00:40:59 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Komanda za spawnovanje vozila ingame pravi problem
Deo skripte:
Pawno Code: [Izaberi]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
[pawn]
[debug] Run time error 4: "Array index out of bounds"
[debug] AMX backtrace:
[debug] #0 0056b424 in main (playerid=0, params[]=@02868d50 "") at F:\Backup\Server Update\v1.3\gamemodes\eg-script.pwn:34090
[/pawn]
Pawno Code: [Izaberi]
Komanda
[pawn]
CMD:vspawnkola(playerid, params[])
{
   new str[15000];
   new iId = PlayerInfo[playerid][pPosedovanjeAviona];
   new bId = PlayerInfo[playerid][pPosedovanjeBicikla];
   if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid, NS_ORANGE, "* Ne mozete da koristite ovu komandu ukoliko ste u vasem vozilu.");
    format( str, sizeof( str ), "[1] Auto\t\t%s\n"BELA"[2] Auto[2]\t%s\n"BELA"[3] Motor\t%s\n"BELA"[4] Plovilo\t%s\n"BELA"[5] Avion\t\t%s\n"BELA"[6] Bicikla\t%s", PlayerInfo[playerid][pPosedovanjeAuta] != -1 ? GetVehicleNameEx(VoziloInfo[PlayerInfo[playerid][pPosedovanjeAuta]][vModel]) : "{FF0000}Nema{FFFFFF}", PlayerInfo[playerid][pPosedovanjeAuta2] != -1 ? GetVehicleNameEx(VoziloInfo[PlayerInfo[playerid][pPosedovanjeAuta2]][vModel]) : "{FF0000}Nema{FFFFFF}", PlayerInfo[playerid][pPosedovanjeMotora] != -1 ? GetVehicleNameEx(MotorInfo[PlayerInfo[playerid][pPosedovanjeMotora]][mModel]) : "{FF0000}Nema{FFFFFF}", PlayerInfo[playerid][pPosedovanjePlovila] != -1 ? GetVehicleNameEx(PlovilaInfo[PlayerInfo[playerid][pPosedovanjePlovila]][plModel]) : "{FF0000}Nema{FFFFFF}", iId != -1 ? GetVehicleNameEx(AvionInfo[iId][avModel]) : "{FF0000}Nema{FFFFFF}", bId != -1 ? GetVehicleNameEx(BiciklaInfo[bId][biModel]) : "{FF0000}Nema{FFFFFF}");
   Dialog_Show(playerid, SpawnVozila, DIALOG_STYLE_LIST, "Spawn vozila", str, "Dalje", "Odustani");
   return 1;
}
[/pawn]

LINIJA KOJA PRAVI WARNING
[pawn]
format( str, sizeof( str ), "[1] Auto\t\t%s\n"BELA"[2] Auto[2]\t%s\n"BELA"[3] Motor\t%s\n"BELA"[4] Plovilo\t%s\n"BELA"[5] Avion\t\t%s\n"BELA"[6] Bicikla\t%s", PlayerInfo[playerid][pPosedovanjeAuta] != -1 ? GetVehicleNameEx(VoziloInfo[PlayerInfo[playerid][pPosedovanjeAuta]][vModel]) : "{FF0000}Nema{FFFFFF}", PlayerInfo[playerid][pPosedovanjeAuta2] != -1 ? GetVehicleNameEx(VoziloInfo[PlayerInfo[playerid][pPosedovanjeAuta2]][vModel]) : "{FF0000}Nema{FFFFFF}", PlayerInfo[playerid][pPosedovanjeMotora] != -1 ? GetVehicleNameEx(MotorInfo[PlayerInfo[playerid][pPosedovanjeMotora]][mModel]) : "{FF0000}Nema{FFFFFF}", PlayerInfo[playerid][pPosedovanjePlovila] != -1 ? GetVehicleNameEx(PlovilaInfo[PlayerInfo[playerid][pPosedovanjePlovila]][plModel]) : "{FF0000}Nema{FFFFFF}", iId != -1 ? GetVehicleNameEx(AvionInfo[iId][avModel]) : "{FF0000}Nema{FFFFFF}", bId != -1 ? GetVehicleNameEx(BiciklaInfo[bId][biModel]) : "{FF0000}Nema{FFFFFF}");
[/pawn]
Slika/video ingame problema(obavezno ako je ingame problem): ///

Proveri array za pPosedovanjeAviona/pPosedovanjeBicikla, error ti sam kaze da je index u arrayu veci nego sto si ti definisao, kao primer navodim arr[3], if(playerid != INVALID) arr[4]; Ovo bi bacilo error zato sto je arr max 3... I taj str od 15k ti ne treba...

Citat: Fr0z3n poslato Oktobar 10, 2022, 20:27:10 POSLE PODNE
Proveri array za pPosedovanjeAviona/pPosedovanjeBicikla, error ti sam kaze da je index u arrayu veci nego sto si ti definisao, kao primer navodim arr[3], if(playerid != INVALID) arr[4]; Ovo bi bacilo error zato sto je arr max 3... I taj str od 15k ti ne treba...
str od 15k stavio jer vise nisam znao sta da radim (uglavnom je tu 512), proverio sam array za pposedovanje i sve i nikako nisam uspeo da resim, i na kraj sam dosao do fixa, problem je bio to kada ja kupim vozilo i vozilo se sacuva jelte u scriptfiles eh kada ja udjem u scriptfiles i obrisem vozilo sa servera, igracu i dalje stoji da poseduje to vozilo gde kada udjem na sever idem da spawn, ne postoji model ne moze da ucita ime modela jer ne postoji obrisan je sa servera i stvara se taj bug [pawn]GetVehicleNameEx(VoziloInfo[PlayerInfo[playerid][pPosedovanjeAuta]][vModel])[/pawn], ima neko ideju kako bih mogao to da fixam??.

Validujes  PlayerInfo[playerid][pPosedovanjeAuta]][vModel], pa validujes VoziloInfo[PlayerInfo[playerid][pPosedovanjeAuta]][vModel] i za svaki slucaj dodas proveru u GetVehicleNameEx kako i treba da bude (ako je vec nema).

E sad ja tu vidim vModel da pokusavas da strpas u VoziloInfo koje bi po logici trebalo biti MAX_VEHICLES, tako da ili je nebulozno nazivanje variabli to jest vModel je u stvari vehicleid, ili pokusavas pogresnu stvar da prosledis nizu.

Inace imas https://open.mp/docs/scripting/functions/IsValidVehicle samo procitaj lepo a ne pola preskocis i vadis svoje zakljucke

Citat: Deleted User poslato Oktobar 10, 2022, 22:26:00 POSLE PODNE
Validujes  PlayerInfo[playerid][pPosedovanjeAuta]][vModel], pa validujes VoziloInfo[PlayerInfo[playerid][pPosedovanjeAuta]][vModel] i za svaki slucaj dodas proveru u GetVehicleNameEx kako i treba da bude (ako je vec nema).

E sad ja tu vidim vModel da pokusavas da strpas u VoziloInfo koje bi po logici trebalo biti MAX_VEHICLES, tako da ili je nebulozno nazivanje variabli to jest vModel je u stvari vehicleid, ili pokusavas pogresnu stvar da prosledis nizu.

Inace imas https://open.mp/docs/scripting/functions/IsValidVehicle samo procitaj lepo a ne pola preskocis i vadis svoje zakljucke
vModel jeste vehicle id koji cita po imenu tipa ako je 411 id onda ce pisati infernus itd itd, https://open.mp/docs/scripting/functions/IsValidVehicle nisam gledao pogledacu uvek citam do kraja lepo ne preskacem :D

Citat: Goku ^ poslato Oktobar 10, 2022, 23:28:23 POSLE PODNE
vModel jeste vehicle id koji cita po imenu tipa ako je 411 id onda ce pisati infernus itd itd, https://open.mp/docs/scripting/functions/IsValidVehicle nisam gledao pogledacu uvek citam do kraja lepo ne preskacem :D
Ne citas izgleda, makar nisi procitao pazljivo post iznad. Vehicle ID i Model ID nisu isto. VehiclInfo po ideji je niz za MAX_VEHICLES koji ima svoj enumerator za imenovanje elemenata niza (makar se tako obicno radi u samp-u).
E sad tebi ako je vModel, modelid to jest model vozila od 400 do 611, a VehicleInfo je niz za svako vozilo (MAX_VEHICLES), onda VehicleInfo ocekuje vehicleid a ne modelid (i to su dve razlicite stvari).

[pawn]Dialog_Show(playerid, SpawnVozila, DIALOG_STYLE_TABLIST, "Spawn Vozila.", "Auto 1\t%s\nAuto 2\t%s\nMotor\t%s\nPlovilo\t%s\nLetjelica\t%s\nPoslovno vozilo", "Dalje", "Izlaz", PlayerInfo[playerid][pPosedovanjeAuta] != -1 ? GetVehicleName(VehicleInfo[PlayerInfo[playerid][pPosedovanjeAuta]][vModel]) : ""BELA"N/A", PlayerInfo[playerid][pPosedovanjeAuta2] != -1 ? GetVehicleName(VehicleInfo[PlayerInfo[playerid][pPosedovanjeAuta2]][vModel]) : ""BELA"N/A", PlayerInfo[playerid][pPosedovanjeMotora] != -1 ? GetVehicleName(MotorInfo[PlayerInfo[playerid][pPosedovanjeMotora]][mModel]) : ""BELA"N/A", PlayerInfo[playerid][pPosedovanjePlovila] != -1 ? GetVehicleName(PlovilaInfo[PlayerInfo[playerid][pPosedovanjePlovila]][plModel]) : ""BELA"N/A", PlayerInfo[playerid][pPosedovanjeAviona] != -1 ? GetVehicleName(AvionInfo[PlayerInfo[playerid][pPosedovanjeAviona]][avModel]) : ""BELA"N/A");
[/pawn]
Meni ovako radi i nedaje error