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
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
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)
A kako da promenim sad to ?
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
[pawn]supportInfo[ i ][ supportID ] = strval( arrCoords[ 0 ] );[/pawn] Linija 21719
[pawn]LoadVports( );[/pawn] Linija 29527
[pawn]LoadVehicles( );[/pawn] Linija 30009
Aj daj malo više od 21719, malo iznad i dole da vidim šta je tačno (verovatno je [ i ] problem)
[pawn]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;
}[/pawn]
Pošalji mi Anydesk ako možeš
ae u priv cu da ti posaljem
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
Reseno lock