Pomoc hitno ??


Započeo Risticc, Jul 31, 2020, 18:52:46 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Treba mi pomoc na ATH modu nakon nekog vremena pojavi mi se u logovima neke greske i kada udjem na server nemam tdova i ne radi pola stvari a pre nego sto se to desi radi sve kao bombona
Deo skripte: Nema deo al evo vam slika toga https://imgur.com/a/NMwDkrT
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
[18:50:57] [debug] Run time error 4: "Array index out of bounds"
[18:50:57] [debug]  Accessing element at index 100 past array upper bound 99
[18:50:57] [debug] AMX backtrace:
[18:50:57] [debug] #0 00591714 in public LoadSports () at D:\Project X Slash\gamemodes\ATH.pwn:21719
[18:50:57] [debug] #1 0063e534 in LoadScriptfiles () at D:\Project X Slash\gamemodes\ATH.pwn:29527
[18:50:57] [debug] #2 00646b3c in public CB_OnGameModeInit () at D:\Project X Slash\gamemodes\ATH.pwn:30009
[18:50:57] [debug] #3 00020ed8 in public zcmd_OnGameModeInit () at D:\Project X Slash\pawno\include\newsamp.inc:444
[18:50:57] [debug] #4 native CallLocalFunction () from samp-server.exe
[18:50:57] [debug] #5 0001ed88 in ?? () at D:\Project X Slash\pawno\include\zcmd.inc:68
[18:50:57] [debug] #6 0000f104 in public ScriptInit_OnGameModeInit () at D:\Project X Slash\pawno\include\YSI\y_hooks/impl.inc:498
[18:50:57] [debug] #7 00008a38 in public SSCANF_OnGameModeInit () at D:\Project X Slash\pawno\include\YSI\internal\..\y_scriptinit.inc:171
[18:50:57] [debug] #8 00001ce0 in public od_OnGameModeInit () at D:\Project X Slash\pawno\include\sscanf2.inc:211
[18:50:57] [debug] #9 00001464 in public OnGameModeInit () at D:\Project X Slash\pawno\include\od_hooks.inc:42
Poslednja Izmena: Avgust 01, 2020, 03:21:21 PRE PODNE od Švabо

OBOE vrv

Proveri ove linije i vidi koje varijable su tu da imaju veličinu [100]

EDIT: https://en.wikipedia.org/wiki/Off-by-one_error



Rust, Python, TypeScript, Kotlin, WebAssembly, Swift, Clojure, Elixir, Go, SQL

Ne shvatam pojasni malo bolje sta da uradim

Veličina tvog array-a je 100 (0-99) i neka operacija je pokušala da upiše podatak (vrednost) posle 99og slota (100og npr)
Poslednja Izmena: Jul 31, 2020, 18:58:29 POSLE PODNE od Alhemičar



Rust, Python, TypeScript, Kotlin, WebAssembly, Swift, Clojure, Elixir, Go, SQL


Citat: slash dev poslato Jul 31, 2020, 18:56:55 POSLE PODNE
A kako da promenim sad to ?
Daj mi linije ove koje ti pokazuje

21719
29527
30009



Rust, Python, TypeScript, Kotlin, WebAssembly, Swift, Clojure, Elixir, Go, SQL

supportInfo[ i ][ supportID ] = strval( arrCoords[ 0 ] );
Linija 21719
LoadVports( );
Linija 29527
LoadVehicles( );
Linija 30009

Aj daj malo više od 21719, malo iznad i dole da vidim šta je tačno (verovatno je [ i ] problem)



Rust, Python, TypeScript, Kotlin, WebAssembly, Swift, Clojure, Elixir, Go, SQL

forward LoadSports( );
public LoadSports( ) {

	if( fexist( F_SPORT ) ) {
		new File:_h_handler = fopen( F_SPORT, io_read ), _l_str[256], i = 0;
        new arrCoords[ 6 ][ 64 ];
		while( fread( _h_handler, _l_str ) ) {
			split( _l_str, arrCoords, ',' );
			supportInfo[ i ][ supportID ] = strval( arrCoords[ 0 ] );
			supportInfo[ i ][ supportCreated ] = strval( arrCoords[ 1 ] );
            strmid( supportInfo[ i ][ supportName ], arrCoords[ 2 ], 0, strlen( arrCoords[ 2 ] ), 255);
            supportInfo[ i ][ supportPos ][ 0 ] = floatstr( arrCoords[ 3 ] );
            supportInfo[ i ][ supportPos ][ 1 ] = floatstr( arrCoords[ 4 ] );
            supportInfo[ i ][ supportPos ][ 2 ] = floatstr( arrCoords[ 5 ] );

			i++;
		}

		fclose(_h_handler);
	}

	return 1;
}

Pošalji mi Anydesk ako možeš



Rust, Python, TypeScript, Kotlin, WebAssembly, Swift, Clojure, Elixir, Go, SQL


u while loop provera: if(i >= MAX_SPORTS - 1) break;

MAX_SPORTS ti se moze ne zove tako pa mu ime nadji na pocetku skripte gde ti je inicijalizacija dela za te portove sta su vec..

Citat: nikola_knezev poslato Jul 31, 2020, 22:19:15 POSLE PODNE
u while loop provera: if(i >= MAX_SPORTS - 1) break;

MAX_SPORTS ti se moze ne zove tako pa mu ime nadji na pocetku skripte gde ti je inicijalizacija dela za te portove sta su vec..
Rešeno je odavno, nije napisao



Rust, Python, TypeScript, Kotlin, WebAssembly, Swift, Clojure, Elixir, Go, SQL