GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: foxkid11 - 2014. Május 08. - 23:22:03

Cím: runtime error
Írta: foxkid11 - 2014. Május 08. - 23:22:03
Sziasztok egy esti fejlesztes utan resiztuk a szervert az alabbi dolgokat irta a log.
 

21:32:03] [debug] Run time error 4: \"Array index out of bounds\" [21:32:03] [debug] Accessing element at index 65535 past array upper bound 1999 [21:32:03] [debug] AMX backtrace:
[21:32:03] [debug] #0 000b0b94 in ?? () from unitedrp.amx
[21:32:03] [debug] #1 0010d580 in ?? () from unitedrp.amx
[21:32:03] [debug] #2 000b3b68 in ?? () from unitedrp.amx
[21:32:03] [debug] #3 00118020 in public Itter_OnGameModeInit­­ () from unitedrp.amx [21:32:03] [debug] #4 native CallLocalFunction () [080d3870] from samp03svr [21:32:03] [debug] #5 00029658 in public SSCANF_OnGameModeIni­­t () from unitedrp.amx [21:32:03] [debug] #6 native CallLocalFunction () [080d3870] from samp03svr [21:32:03] [debug] #7 0000856c in public GPA_OnGameModeInit () from unitedrp.amx [21:32:03] [debug] #8 native CallLocalFunction () [080d3870] from samp03svr [21:32:03] [debug] #9 00003620 in public OnGameModeInit () from unitedrp.amx [21:32:03] Number of vehicle models: 11

 
Ezt tanulmanyozva betettuk a rwggwli mod mentest ami mukodott,de annal is ezt irta..
Cím: runtime error
Írta: KovaNovik - 2014. Május 08. - 23:43:41
A tömb vége után akartad elérni azt. Tipikusan ez akkor van, ha pl. a játékosod nincs kocsiban, és 65535-el tér vissza, akkor a tömbödnek meg nincs is annyi cellája.
Pl.:
 
CMD:motor(playerid)
{
    new kocsiid = GetPlayerVehicleID(playerid);
    //ellenõrzések, stb..
    JarmuInfo[kocsiid][Motor] = true;
    return 1;
}

 
Ha nincs kocsiban, akkor a 2000 kocsi közül hogy szedje ki a 65535.-et? Érted :D (jelentése (itt): nincs). Ja, és azért ír 1999. cellát, mert 0-tól kezdi a számolást.
Megoldás: az ilyesmi helyeket nézd át, ahol valami függvény visszatérési értékét adsz meg cellaszámnak
Azaz:
Lekérsz egy információt (pl. Játékos kocsijának ID-je), és azt egy tömbben használod, és nem ellenõrzöd elõtte, hogy nem-e hibá (nem létezõ) cellára mutat.
Tehát, ha lekérsz valamit, és tömbb megadásnál használod, elõtte nézd meg, hogy az a függvény, amivel lekérsz, nem térhet-e vissza olyan értékkel, ami nem lesz megfelelõ. Pl. az én LegkozelebbiJarmuvem -1-el tér vissza, ha nincs a közeledben egy sem. Így, ha a legközelebbi kocsinak akarom átírni egy változóját, akkor elõtte meg kell néznem, az nem -1-e. Vágod? :D


Lehet, hogy tudományosan hangzik, de vagy angolul mondom ezeket a szavakat, vagy ilyen hülye szaknyelven.


Pont az ilyesmi hibák megelõzésérõl akarok csinálni az eddigieknél sokkal átfogóbb tutorialt
Cím: runtime error
Írta: Dfoglalo - 2014. Május 09. - 23:16:34
[mod]Kiemelt téma, zárok![/mod]
Cím: runtime error
Írta: foxkid11 - 2014. Május 08. - 23:22:03
Sziasztok egy esti fejlesztes utan resiztuk a szervert az alabbi dolgokat irta a log.
 

21:32:03] [debug] Run time error 4: \"Array index out of bounds\" [21:32:03] [debug] Accessing element at index 65535 past array upper bound 1999 [21:32:03] [debug] AMX backtrace:
[21:32:03] [debug] #0 000b0b94 in ?? () from unitedrp.amx
[21:32:03] [debug] #1 0010d580 in ?? () from unitedrp.amx
[21:32:03] [debug] #2 000b3b68 in ?? () from unitedrp.amx
[21:32:03] [debug] #3 00118020 in public Itter_OnGameModeInit­­ () from unitedrp.amx [21:32:03] [debug] #4 native CallLocalFunction () [080d3870] from samp03svr [21:32:03] [debug] #5 00029658 in public SSCANF_OnGameModeIni­­t () from unitedrp.amx [21:32:03] [debug] #6 native CallLocalFunction () [080d3870] from samp03svr [21:32:03] [debug] #7 0000856c in public GPA_OnGameModeInit () from unitedrp.amx [21:32:03] [debug] #8 native CallLocalFunction () [080d3870] from samp03svr [21:32:03] [debug] #9 00003620 in public OnGameModeInit () from unitedrp.amx [21:32:03] Number of vehicle models: 11

 
Ezt tanulmanyozva betettuk a rwggwli mod mentest ami mukodott,de annal is ezt irta..
Cím: runtime error
Írta: KovaNovik - 2014. Május 08. - 23:43:41
A tömb vége után akartad elérni azt. Tipikusan ez akkor van, ha pl. a játékosod nincs kocsiban, és 65535-el tér vissza, akkor a tömbödnek meg nincs is annyi cellája.
Pl.:
 
CMD:motor(playerid)
{
    new kocsiid = GetPlayerVehicleID(playerid);
    //ellenõrzések, stb..
    JarmuInfo[kocsiid][Motor] = true;
    return 1;
}

 
Ha nincs kocsiban, akkor a 2000 kocsi közül hogy szedje ki a 65535.-et? Érted :D (jelentése (itt): nincs). Ja, és azért ír 1999. cellát, mert 0-tól kezdi a számolást.
Megoldás: az ilyesmi helyeket nézd át, ahol valami függvény visszatérési értékét adsz meg cellaszámnak
Azaz:
Lekérsz egy információt (pl. Játékos kocsijának ID-je), és azt egy tömbben használod, és nem ellenõrzöd elõtte, hogy nem-e hibá (nem létezõ) cellára mutat.
Tehát, ha lekérsz valamit, és tömbb megadásnál használod, elõtte nézd meg, hogy az a függvény, amivel lekérsz, nem térhet-e vissza olyan értékkel, ami nem lesz megfelelõ. Pl. az én LegkozelebbiJarmuvem -1-el tér vissza, ha nincs a közeledben egy sem. Így, ha a legközelebbi kocsinak akarom átírni egy változóját, akkor elõtte meg kell néznem, az nem -1-e. Vágod? :D


Lehet, hogy tudományosan hangzik, de vagy angolul mondom ezeket a szavakat, vagy ilyen hülye szaknyelven.


Pont az ilyesmi hibák megelõzésérõl akarok csinálni az eddigieknél sokkal átfogóbb tutorialt
Cím: runtime error
Írta: Dfoglalo - 2014. Május 09. - 23:16:34
[mod]Kiemelt téma, zárok![/mod]