Run time error 4: "Array index out of bounds" HITNO


Započeo TheBadzoo, Avgust 27, 2018, 18:28:26 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Pa kada treba timer da seta neaktivnost izbaci mi u konzoli ovo dole,a pritom na serveru sve lepo radi,znaci seta neaktivnost.
Dio skripte:Evo linija
(nidje veze)  18727 :print(" ");

18465: if( VehicleInfo[ c ][ vUsage ] == PRIVATNO_VOZILO && VehicleInfo[ c ][ vOwned ] == 1 ) {

(nidje veze)   23941 : for( new i = 1; i < MAX_GZONE; i++ ) {

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Run time error 4: "Array index out of bounds"
Attempted to read/write array element at index 1500 in array of size 1500

Slika/video ingame problema(obavezno ako je ingame problem): Evo tacno sta mi izbacuje  https://pastebin.com/dAMGNjSK
Poslednja Izmena: Avgust 31, 2018, 09:40:59 PRE PODNE od Bašovski

Pošalji čitav kod od VozilaNeaktivnost () i DodajNeaktivnost ().
Ovo se javlja kada pristupaš element-indexu niza koji nije deklarisan u nizu istog.
Moguce je da si zamjenio definiciju tipa MAX_VOZILA sa MAX_???, npr.
MAX_VOZILA je označena brojem od 2000 vozila, dok je neki drugi MAX_??? označen sa 5000, itd.


bilo je lijepo dok je trajalo.


FUNCTION: VozilaNeaktivnost()
{
	for( new c = 0; c < MAX_VEHICLES; c++) {

		if( VehicleInfo[ c ][ vUsage ] == PRIVATNO_VOZILO && VehicleInfo[ c ][ vOwned ] == 1 ) {


	        VehicleInfo[ c ][ vRegVreme ]--;
	        if( VehicleInfo[ c ][ vRegVreme ] == 0 ) {

		    	VehicleInfo[ c ][ vReg ] = 0;
				VehicleInfo[ c ][ vTeh ] = 0;

			}
			if( VehicleInfo[ c ][ vRegVreme ] == -800) {

			    Badzo_DestroyVehicle( VehicleInfo[ c ][ vID ] );

				VehicleInfo[ c ][ vVirtualWorld ] = 0;
				VehicleInfo[ c ][ vInterior ] = 0;

				VehicleInfo[ c ][ vOwned ] = 0;
				VehicleInfo[ c ][ vNeaktivnost ] = 0;
				VehicleInfo[ c ][ vPrice ] = -1;

				VehicleInfo[ c ][ vLokacijaX ] = -2112.0281;
				VehicleInfo[ c ][ vLokacijaY ] = 2729.6250;
				VehicleInfo[ c ][ vLokacijaZ ] = 166.0840;
				VehicleInfo[ c ][ vLokacijaA ] = 202.9713;

				VehicleInfo[ c ][ vID ] = Badzo_CreateVehicle( c, PRIVATNO_VOZILO, -1, -1, -1, VehicleInfo[ c ][ vModel ], VehicleInfo[ c ][ vLokacijaX ], VehicleInfo[ c ][ vLokacijaY ], VehicleInfo[ c ][ vLokacijaZ ]+1.0, VehicleInfo[ c ][ vLokacijaA ], VehicleInfo[ c ][ vColor1 ], VehicleInfo[ c ][ vColor2 ], 300000 );
				LinkVehicleToInterior( VehicleInfo[ c ][ vID ], VehicleInfo[ c ][ vInterior ] );
	    		SetVehicleVirtualWorld( VehicleInfo[ c ][ vID ], VehicleInfo[ c ][ vVirtualWorld ] );

	    		strmid( VehicleInfo[ c ][ vOwner ], "Drzava", 0, strlen( "Drzava" ), 32);

				TuneVehicle( c );

		   		SetVehicleParamsEx( VehicleInfo[ c ][ vID ], 0, 0, 0, VehicleInfo[ c ][ vLocked ], 0, 0, 0 );
			    if( IsVehicleBajs( VehicleInfo[ c ][ vID ] ) ) {
					SetVehicleParamsEx( VehicleInfo[ c ][ vID ], 1, 0, 0, VehicleInfo[ c ][ vLocked ], 0, 0, 0 );
				}

			}

			VehicleInfo[ c ][ vNeaktivnost ]++;
			if( VehicleInfo[ c ][ vNeaktivnost ] >= 700) {

				new string[ 256 ];

				format( string, sizeof( string ), "VoziloID: %d | Prodano zbog neaktivnosti vlasnika %s ", c, VehicleInfo[ c ][ vOwner ] );
				LogSave( "Ostalo/LogVozilaNeaktivnost.log", string );

			    Badzo_DestroyVehicle( VehicleInfo[ c ][ vID ] );

				VehicleInfo[ c ][ vVirtualWorld ] = 0;
				VehicleInfo[ c ][ vInterior ] = 0;

				VehicleInfo[ c ][ vOwned ] = 0;
				VehicleInfo[ c ][ vNeaktivnost ] = 0;
				VehicleInfo[ c ][ vPrice ] = -1;

				VehicleInfo[ c ][ vLokacijaX ] = -2112.0281;
				VehicleInfo[ c ][ vLokacijaY ] = 2729.6250;
				VehicleInfo[ c ][ vLokacijaZ ] = 166.0840;
				VehicleInfo[ c ][ vLokacijaA ] = 202.9713;

				VehicleInfo[ c ][ vID ] = Badzo_CreateVehicle( c, PRIVATNO_VOZILO, -1, -1, -1, VehicleInfo[ c ][ vModel ], VehicleInfo[ c ][ vLokacijaX ], VehicleInfo[ c ][ vLokacijaY ], VehicleInfo[ c ][ vLokacijaZ ]+1.0, VehicleInfo[ c ][ vLokacijaA ], VehicleInfo[ c ][ vColor1 ], VehicleInfo[ c ][ vColor2 ], 300000 );
				LinkVehicleToInterior( VehicleInfo[ c ][ vID ], VehicleInfo[ c ][ vInterior ] );
	    		SetVehicleVirtualWorld( VehicleInfo[ c ][ vID ], VehicleInfo[ c ][ vVirtualWorld ] );

	    		strmid( VehicleInfo[ c ][ vOwner ], "Drzava", 0, strlen( "Drzava" ), 32);

				TuneVehicle( c );

		   		SetVehicleParamsEx( VehicleInfo[ c ][ vID ], 0, 0, 0, VehicleInfo[ c ][ vLocked ], 0, 0, 0 );
			    if( IsVehicleBajs( VehicleInfo[ c ][ vID ] ) ) {
					SetVehicleParamsEx( VehicleInfo[ c ][ vID ], 1, 0, 0, VehicleInfo[ c ][ vLocked ], 0, 0, 0 );
				}
		    }
		    SaveVehicle( c );
		}
	}
}


FUNCTION: DodajNeaktivnost()
{
    print(" ");
    print("*******TEST DODAVANJE NEAKTIVNOSTI POKRENUTO");

	ImovinaNeaktivnost();
	StanNeaktivnost();
	VikendicaNeaktivnost();
	FirmaNeaktivnost();
	VozilaNeaktivnost();

    print(" ");
	print("DODAVANJE NEAKTIVNOSTI USPESNO ZAVRSENO*******");
    print(" ");
}




Bašovski ti je sve rekao.

for( new c = 0; c < MAX_VEHICLES; c++) {


MAX_VEHICLES je 2000 po defaultu a tvoj VehicleInfo vjerovatno nije 2000,i vjerovatno si zamjenio MAX_VEHICLES sa MAX_VOZILA(primjer) kako ti je već rečeno.
Provjeri kod new VehicleInfo veličinu arraya i postavi je u toj for petlji umjesto MAX_VEHICLES i neće biti problema.

Citat: Paul Castellano poslato Avgust 31, 2018, 01:04:24 PRE PODNE
Bašovski ti je sve rekao.

for( new c = 0; c < MAX_VEHICLES; c++) {


MAX_VEHICLES je 2000 po defaultu a tvoj VehicleInfo vjerovatno nije 2000,i vjerovatno si zamjenio MAX_VEHICLES sa MAX_VOZILA(primjer) kako ti je već rečeno.
Provjeri kod new VehicleInfo veličinu arraya i postavi je u toj for petlji umjesto MAX_VEHICLES i neće biti problema.
Hvala burazeru,fixano  :)