Run time error 4

Započeo ShomY071
8. Feb. 2018. Zaključano
1,327
pregleda
23
postova
MilosColbart
4
Enforcer
8. Feb. 2018.
Detaljan opis problema: Dodao sam salone na SG by Nelson modu, tj auto salon, i sada kad kupim vozilo znaci posle kupovine vozila meni ne radi /v,izbacuje mi u server logu ovo ispod.Bez dela kojeg cu ostaviti ispod sve radi..Tj dela de se igracu setuje vozilo na odredjenom slotu.
SERVER LOG

[08:49:56] Run time error 4: "Array index out of bounds"
[08:49:56]   Accessing element at negative index -400
[08:49:56] AMX backtrace:
[08:49:56] #0 002ca3a8 in public @_yCv (0, 29389744, 0) from Nelson-SG.amx
[08:49:56] #1 002c9b10 in public @yC_v (0, 29389744, 0, 0) from Nelson-SG.amx
[08:49:56] #2 native CallRemoteFunction () from samp-server.exe
[08:49:56] #3 0001d0dc in ?? (0, 29389732, 0) from Nelson-SG.amx
[08:49:56] #4 0001c920 in ?? (0, 29389732) from Nelson-SG.amx
[08:49:56] #5 00008734 in public OnPlayerCommandText (0, 29389732) from Nelson-SG.amx

DEO POSLE KUPOVINE

    if(dialogid == AUDI_KUPOVINA)
{
    if(response)
    {
        g_NovacMinus(playerid, 5);
        new b = IzabraoVozilo;
  new idveha = SledeceVozilo();
new vfiles;
  if(idveha >= MAX_AUTA) return Error(playerid, "Trenutno nemamo vozila na prodaju,probajte kasnije!");
format(vfiles, sizeof(vfiles), AUTO_FILE, idveha);
VoziloInfo = IzabraoVozilo;
VoziloInfo = 1575.0807;
VoziloInfo = -1242.2964;
VoziloInfo = 17.2003;
VoziloInfo = -181.3199;
VoziloInfo = 1;
VoziloInfo = 1;
VoziloInfo = 1;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 999;
VoziloInfo = -1;
VoziloInfo = -1;
VoziloInfo = -1;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 0;
VoziloInfo = 5;
VoziloInfo = 0;
VoziloInfo = 0;
strmid(VoziloInfo, ImeIgraca(playerid), 0, strlen(ImeIgraca(playerid)), 999);
VoziloInfo = CreateVehicle(VoziloInfo, VoziloInfo,VoziloInfo,VoziloInfo,VoziloInfo, VoziloInfo, VoziloInfo, 30000);
SacuvajVozilo(idveha);
SavePlayer(playerid);
  if(PI == -1) { PI = b; } // BEZ OVOGA DELA SVE RADI
          else if(PI == -1) { PI = b; }
          else if(PI == -1) { PI = b; }
          else if(PI == -1) { PI = b; }
          else if(PI == -1) { PI = b; }
          else if(PI == -1) { PI = b; }
          else{ return 1; } /// KRAJ DELA
IzabraoVozilo = -1;
  SCM(playerid, -1, ""SERVERPLAVA"#AUDI | "C_BELA"Uspesno ste kupili svoje vozilo,da vidite komande koristite /v!");
        SCM(playerid, -1, ""SERVERPLAVA"#AUDI | "C_BELA"U obavezi ste da sklonite(parkirate na drugom mestu) vozilo sa parkinga AUDI Salona!");
for(new i = 0; i < 20; i++) { TextDrawShowForPlayer(playerid, InGameTD); }
for(new i = 0; i < 8;  i++) { TextDrawShowForPlayer(playerid, Gornji_TD); }
for(new i = 0; i < 10; i++) { TextDrawShowForPlayer(playerid, MiniInfoTD); }
for(new i = 0; i < 3; i++) { PlayerTextDrawShow(playerid, GamesTD); }
}
else if(!response)
{
    SCM(playerid, -1, "Odustali ste od kupovine vozila!");
for(new i = 0; i < 20; i++) { TextDrawShowForPlayer(playerid, InGameTD); }
for(new i = 0; i < 8;  i++) { TextDrawShowForPlayer(playerid, Gornji_TD); }
for(new i = 0; i < 10; i++) { TextDrawShowForPlayer(playerid, MiniInfoTD); }
for(new i = 0; i < 3; i++) { PlayerTextDrawShow(playerid, GamesTD); }
IzabraoVozilo = -1;
}
}

Dio skripte:
Neke slike/video za lakse dobivanje pomoci(neobavezno): //
StefanSkripter
4
Enforcer
8. Feb. 2018.
Ja burazeru mislam da ti je zbog MySQL
ophion
5
OG Legend
8. Feb. 2018.
Kolika ti je velicina MAX_VEHICLES
MilosColbart
4
Enforcer
8. Feb. 2018.

#define MAX_VOZILA  2000

#define MAX_AUTA        1000
#define AUTO_FILE    "Vozila/Vozilo_%d.ini"

Mislim da nije do toga,zato sto sa cmd /napravivozilo radi sve lepo
SejnurHD
5
OG Legend
8. Feb. 2018.
Zasta ti sluzi dva define za max vozila?
Verovatno je do toga posto je limit vozila 2k.
ophion
5
OG Legend
8. Feb. 2018.
Raptorâ„¢ wrote on February 8, 2018, 9:59 am:
Zasta ti sluzi dva define za max vozila?
max_auta vjerojatno da se ne moze kupiti vise od 1000 a max_vozila 2000 zato sto ima i org auta itd pa i ovako i onako nece preci 2000 limit
MilosColbart
4
Enforcer
8. Feb. 2018.
Bas tako @Łuk  😄,nego ima li neko da zna kako da fixam ovo?  😢
Adam_Lay
6
Underboss
8. Feb. 2018.
Daj komandu /v ..
MilosColbart
4
Enforcer
8. Feb. 2018.

YCMD:v(playerid, params[],help)
{
new ImaAuto = 0;
if(PI != -1) { ImaAuto = ImaAuto+1; }
if(PI != -1) { ImaAuto = ImaAuto+1; }
if(PI != -1) { ImaAuto = ImaAuto+1; }
if(PI != -1) { ImaAuto = ImaAuto+1; }
if(PI != -1) { ImaAuto = ImaAuto+1; }
if(PI != -1) { ImaAuto = ImaAuto+1; }
if(ImaAuto == 0)
{
return Error(playerid, "Ne posedujete nijedno vozilo.");
}
new stringg,str,text1,text2,text3,text4,text5,text6;
if(PI != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo[PI], true) == 0)
{
format(str,sizeof(str)," %s (%d)",ImenaVozila[VoziloInfo[PI] - 400], VoziloInfo[PI]);
    text1 = str;
}
else
{
text1 = " "C_CRVENA"Prazno";
}
if(PI != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo[PI], true) == 0)
{
format(str,sizeof(str)," %s (%d)",ImenaVozila[VoziloInfo[PI] - 400], VoziloInfo[PI]);
    text2 = str;
}
else
{
text2 = " "C_CRVENA"Prazno";
}
if(PI != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo[PI], true) == 0)
{
format(str,sizeof(str)," %s (%d)",ImenaVozila[VoziloInfo[PI] - 400], VoziloInfo[PI]);
    text3 = str;
}
else
{
text3 = " "C_CRVENA"Prazno";
}
if(PI != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo[PI], true) == 0)
{
format(str,sizeof(str)," %s (%d)",ImenaVozila[VoziloInfo[PI] - 400], VoziloInfo[PI]);
    text4 = str;
}
else
{
text4 = " "C_CRVENA"Prazno";
}
if(PI != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo[PI], true) == 0)
{
format(str,sizeof(str)," %s (%d)",ImenaVozila[VoziloInfo[PI] - 400], VoziloInfo[PI]);
    text5 = str;
}
else
{
text5 = " "C_CRVENA"Prazno";
}
if(PI != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo[PI], true) == 0)
{
format(str,sizeof(str)," %s (%d)",ImenaVozila[VoziloInfo[PI] - 400], VoziloInfo[PI]);
    text6 = str;
}
else
{
text6 = " "C_CRVENA"Prazno";
}
format(stringg,sizeof(stringg),"%s\n%s\n%s\n%s\n%s\n%s", text1, text2, text3,text4,text5,text6);
ShowPlayerDialog(playerid,DIALOG_VOZILOMENI,DIALOG_STYLE_LIST,"{00C0FF}Odaberite vozilom kojim ce te upravljati:",stringg,"Potvrdi","Odustani");
return 1;
}

Komanda /v kao sto sam i rekao radi normalno kad kupis vozilo koje je napravljeno sa /napravivozilo ili bez onog dela
ophion
5
OG Legend
8. Feb. 2018.
koliko los kod lol, probaj taj prvi dio zamijeniti sa ovim
new ImaAuto = 0;
if(PI != -1) { ImaAuto = ImaAuto+1; }
if(PI != -1) { ImaAuto = ImaAuto+1; }
if(PI != -1) { ImaAuto = ImaAuto+1; }
if(PI != -1) { ImaAuto = ImaAuto+1; }
if(PI != -1) { ImaAuto = ImaAuto+1; }
if(PI != -1) { ImaAuto = ImaAuto+1; }
MilosColbart
4
Enforcer
8. Feb. 2018.
Nop ne radi  😢
Rax_King
5
Godfather
8. Feb. 2018.
Obicno ti je to do imena vozila jer obicno getas to iz arraya ex.
veh_name[modelid - 400] 

ako se desi da je modelid = 0 pa 0 - 400 = -400 desi se da array iskace iz bounda...
MilosColbart
4
Enforcer
8. Feb. 2018.
.ксундер wrote on February 8, 2018, 9:33 pm:
Obicno ti je to do imena vozila jer obicno getas to iz arraya ex.
veh_name[modelid - 400] 

ako se desi da je modelid = 0 pa 0 - 400 = -400 desi se da array iskace iz bounda...

Pa razmisljam nesto al opet nikako da shvatim, stavio sam nesto opet nista,mozda lose radim al nzm stvarno
Mozes da mi pojasnis malo detaljnije.
Rax_King
5
Godfather
8. Feb. 2018.
Ubaci debug... Fix sam ti malo kod ovako se nmgu snaci

YCMD:v(playerid, params[],help)
{
if (
        PI != -1 &&
        PI != -1 &&
        PI != -1 &&
        PI != -1 &&
        PI != -1 &&
        PI != -1
)
return Error(playerid, "Ne posedujete nijedno vozilo.");

new string,
vehicleid = PI;

if (vehicleid != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo, true) == 0) {
printf(" Model id: %d | vID: %d", VoziloInfo, VoziloInfo);
format(string, sizeof(string)," %s (%d)", ImenaVozila[VoziloInfo - 400], VoziloInfo);
}
else strmid(string, " "C_CRVENA"Prazno", 0, 20);

vehicleid = PI;
if(vehicleid != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo, true) == 0) {
printf(" Model id: %d | vID: %d", VoziloInfo, VoziloInfo);
format(string,sizeof(string),"%s %s (%d)",string, ImenaVozila[VoziloInfo - 400], VoziloInfo);
}
else strcat(string, " "C_CRVENA"Prazno");

vehicleid = PI;
if(vehicleid != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo, true) == 0) {
printf(" Model id: %d | vID: %d", VoziloInfo, VoziloInfo);
format(string,sizeof(string),"%s %s (%d)",string, ImenaVozila[VoziloInfo - 400], VoziloInfo);
}
else strcat(string, " "C_CRVENA"Prazno");

vehicleid = PI;
if(vehicleid != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo, true) == 0) {
printf(" Model id: %d | vID: %d", VoziloInfo, VoziloInfo);
format(string,sizeof(string),"%s %s (%d)",string, ImenaVozila[VoziloInfo - 400], VoziloInfo);
}
else strcat(string, " "C_CRVENA"Prazno");

vehicleid = PI;
if(vehicleid != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo, true) == 0) {
printf(" Model id: %d | vID: %d", VoziloInfo, VoziloInfo);
format(string,sizeof(string),"%s %s (%d)",string, ImenaVozila[VoziloInfo - 400], VoziloInfo);
}
else strcat(string, " "C_CRVENA"Prazno");

vehicleid = PI;
if(vehicleid != -1 && strcmp(Ime_Igraca(playerid), VoziloInfo, true) == 0) {
    printf(" Model id: %d | vID: %d", VoziloInfo, VoziloInfo);
format(string,sizeof(string),"%s %s (%d)",string, ImenaVozila[VoziloInfo - 400], VoziloInfo);
}
else strcat(string, " "C_CRVENA"Prazno");

ShowPlayerDialog(playerid,DIALOG_VOZILOMENI,DIALOG_STYLE_LIST,"{00C0FF}Odaberite vozilom kojim ce te upravljati:",string,"Potvrdi","Odustani");
return 1;
}


Vidi sta ti izbaci model id, takodje napravi pawn.cfg u pawno folderu i upisi -d3 pa compilaj skriptu.
MilosColbart
4
Enforcer
8. Feb. 2018.
Jedino sto pawno izbaci jeste ovo...

Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

Header size:          40492 bytes
Code size:          5300676 bytes
Data size:        29390288 bytes
Stack/heap size:      16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements:34747840 bytes

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha