Pomoc


Započeo Belii, April 18, 2023, 14:20:10 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Pravio sam da igrac moze promeniti boju td-ova sve radi ali ne sacuvava iako sam uradio cuvanje i u scriptfile se postavi boja koja je odabrana
Deo skripte:

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
[23:58:56] [debug] Run time error 4: "Array index out of bounds"
[23:58:56] [debug]  Attempted to read/write array element at index 34 in array of size 34
[23:58:56] [debug] AMX backtrace:
[23:58:56] [debug] #0 008c2220 in KreirajInGameTD (playerid=0) at C:\Users\PC\Desktop\main project\gamemodes\main-script.pwn:14657
[23:58:56] [debug] #1 009e54c0 in public OPBA_OnPlayerConnect (playerid=0) at C:\Users\PC\Desktop\main project\gamemodes\main-script.pwn:29913
[23:58:56] [debug] #2 000953e8 in public ASC_OnPlayerConnect (playerid=0) at C:\Users\PC\Desktop\Brzi Pawno\include\AirbreakTeleport.inc:1051
[23:58:56] [debug] #3 0008d578 in public AB_OnPlayerConnect (playerid=0) at C:\Users\PC\Desktop\Brzi Pawno\include\SpeedCheats.inc:98
[23:58:56] [debug] #4 0008b0b8 in public EVF_OnPlayerConnect (playerid=0) at C:\Users\PC\Desktop\Brzi Pawno\include\ACAirBreak.inc:107
[23:58:56] [debug] #5 00078f80 in public MP_OPC (playerid=0) at C:\Users\PC\Desktop\Brzi Pawno\include\EVF.inc:3030
[23:58:56] [debug] #6 native CallLocalFunction () from start-server.exe
[23:58:56] [debug] #7 00057e74 in public Iter_OnPlayerConnect (playerid=0) at C:\Users\PC\Desktop\Brzi Pawno\include\mSelection.inc:432
[23:58:56] [debug] #8 native CallLocalFunction () from start-server.exe
[23:58:56] [debug] #9 00041578 in ?? (... <1 argument>) at C:\Users\PC\Desktop\Brzi Pawno\include\foreach.inc:589
[23:58:56] [debug] #10 00033378 in public SSCANF_OnPlayerConnect (playerid=0) at C:\Users\PC\Desktop\Brzi Pawno\include\YSI\y_hooks/impl.inc:633
[23:58:56] [debug] #11 000251ac in public WC_OnPlayerConnect (playerid=0) at C:\Users\PC\Desktop\Brzi Pawno\include\sscanf2.inc:205
[23:58:56] [debug] #12 000082fc in public OnPlayerConnect (playerid=0) at C:\Users\PC\Desktop\Brzi Pawno\include\weapon-config.inc:2151
ovo mi izbacuje u server log
Slika/video ingame problema(obavezno ako je ingame problem): link slike


Problem je u tome sto ne znam gde je greska u kodu posto compiler ne izbacuje nista
ali ono sto pise u logu mozda i je i do ovoga
    new boja;
    if(PlayerInfo[playerid][xTDBoja] == 0) boja = 7393535;
    else if(PlayerInfo[playerid][xTDBoja] == 1) boja = -16776961;
    else if(PlayerInfo[playerid][xTDBoja] == 2) boja = -109248001;
    else if(PlayerInfo[playerid][xTDBoja] == 3) boja = 1497559807;
    else if(PlayerInfo[playerid][xTDBoja] == 4) boja = -2038833409;
    else if(PlayerInfo[playerid][xTDBoja] == 5) boja = -96479745;
    else if(PlayerInfo[playerid][xTDBoja] == 6) boja = -522241;
    else if(PlayerInfo[playerid][xTDBoja] == 7) boja = 1824152831;
    else if(PlayerInfo[playerid][xTDBoja] == 8) boja = 210177279;
    else if(PlayerInfo[playerid][xTDBoja] == 9) boja = 16711935;
    else if(PlayerInfo[playerid][xTDBoja] == 10) boja = 481532671;
    else if(PlayerInfo[playerid][xTDBoja] == 11) boja = 478516735;
    else if(PlayerInfo[playerid][xTDBoja] == 12) boja = 176909823;
    else boja = 8454143;

Pošalji nam celu funkciju KreirajInGameTD
- open.mp regional coordinator -

Array index out of bounds.
Attempted to read/write array element at index 34 in array of size 34.

- open.mp regional coordinator -

Citat: Mergevos poslato April 18, 2023, 16:04:50 POSLE PODNE
Array index out of bounds.
Attempted to read/write array element at index 34 in array of size 34.
    if(dialogid == D_TDBOJE)
    {
        if(!response) return 1;
        switch(listitem)
        {
            case 0:
            {
                PlayerInfo[playerid][xTDBoja] = 1; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 1:
            {
                PlayerInfo[playerid][xTDBoja] = 2; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 2:
            {
                PlayerInfo[playerid][xTDBoja] = 3; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 3:
            {
                PlayerInfo[playerid][xTDBoja] = 4; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 4:
            {
                PlayerInfo[playerid][xTDBoja] = 5; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 5:
            {
                PlayerInfo[playerid][xTDBoja] = 6; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 6:
            {
                PlayerInfo[playerid][xTDBoja] = 7; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 7:
            {
                PlayerInfo[playerid][xTDBoja] = 8; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 8:
            {
                PlayerInfo[playerid][xTDBoja] = 9; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 9:
            {
                PlayerInfo[playerid][xTDBoja] = 10; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 10:
            {
                PlayerInfo[playerid][xTDBoja] = 11; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 11:
            {
                PlayerInfo[playerid][xTDBoja] = 12; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 12:
            {
                PlayerInfo[playerid][xTDBoja] = 0; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
        }
    }
ovo je dialog

a ovamo su samo te boje i textdraw ingame

probaj da operes kod mozda je do toga
       

Citat: Belii poslato April 18, 2023, 16:34:03 POSLE PODNE
    if(dialogid == D_TDBOJE)
    {
        if(!response) return 1;
        switch(listitem)
        {
            case 0:
            {
                PlayerInfo[playerid][xTDBoja] = 1; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 1:
            {
                PlayerInfo[playerid][xTDBoja] = 2; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 2:
            {
                PlayerInfo[playerid][xTDBoja] = 3; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 3:
            {
                PlayerInfo[playerid][xTDBoja] = 4; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 4:
            {
                PlayerInfo[playerid][xTDBoja] = 5; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 5:
            {
                PlayerInfo[playerid][xTDBoja] = 6; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 6:
            {
                PlayerInfo[playerid][xTDBoja] = 7; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 7:
            {
                PlayerInfo[playerid][xTDBoja] = 8; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 8:
            {
                PlayerInfo[playerid][xTDBoja] = 9; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 9:
            {
                PlayerInfo[playerid][xTDBoja] = 10; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 10:
            {
                PlayerInfo[playerid][xTDBoja] = 11; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 11:
            {
                PlayerInfo[playerid][xTDBoja] = 12; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
            case 12:
            {
                PlayerInfo[playerid][xTDBoja] = 0; SavePlayer(playerid);
                UnistiInGameTD(playerid); KreirajInGameTD(playerid); PrikaziInGameTD(playerid);
            }
        }
    }
ovo je dialog

a ovamo su samo te boje i textdraw ingame

Nisi me razumeo. Treba mi KreirajInGameTD funkcija. Cela, sa naslovom do zadnje }
- open.mp regional coordinator -

stock KreirajInGameTD(playerid)
{
//-------------------------------------------------------------------------------------------------------------ingametd
    new boja;
    if(PlayerInfo[playerid][xTDBoja] == 0) boja = 7393535;
    else if(PlayerInfo[playerid][xTDBoja] == 1) boja = -16776961;
    else if(PlayerInfo[playerid][xTDBoja] == 2) boja = -109248001;
    else if(PlayerInfo[playerid][xTDBoja] == 3) boja = 1497559807;
    else if(PlayerInfo[playerid][xTDBoja] == 4) boja = -2038833409;
    else if(PlayerInfo[playerid][xTDBoja] == 5) boja = -96479745;
    else if(PlayerInfo[playerid][xTDBoja] == 6) boja = -522241;
    else if(PlayerInfo[playerid][xTDBoja] == 7) boja = 1824152831;
    else if(PlayerInfo[playerid][xTDBoja] == 8) boja = 210177279;
    else if(PlayerInfo[playerid][xTDBoja] == 9) boja = 16711935;
    else if(PlayerInfo[playerid][xTDBoja] == 10) boja = 481532671;
    else if(PlayerInfo[playerid][xTDBoja] == 11) boja = 478516735;
    else if(PlayerInfo[playerid][xTDBoja] == 12) boja = 176909823;
    else boja = 8454143;

    ispod su tdovi 
    nema potrebe da saljem i njih
}


inace ove errore u server logu sam resio
samo je problem sto ne cuva boju

Zapravo ima potrebe da mi šalješ i tdove. I pošalji kako si deklarisao varijablu za jste.
- open.mp regional coordinator -

Citat: Mergevos poslato April 18, 2023, 17:56:35 POSLE PODNE
Zapravo ima potrebe da mi šalješ i tdove. I pošalji kako si deklarisao varijablu za jste.
new PlayerText:InGame_TD[MAX_PLAYERS][34];
el ovo

i svaki td kome zelim da promenim boju je ovako
PlayerTextDrawColor(playerid, InGame_TD[playerid][0], boja);

Citat: Belii poslato April 18, 2023, 18:10:40 POSLE PODNE
new PlayerText:InGame_TD[MAX_PLAYERS][34];
el ovo

i svaki td kome zelim da promenim boju je ovako
PlayerTextDrawColor(playerid, InGame_TD[playerid][0], boja);


E bravo. Vidiš. Error ti sve govori.

Array index out of bounds.
Attempted to read/write array element at index 34 in array of size 34.

Pokušavaš da pristupiš na 34 index a sam array ti je veličine 34. Moraš da znaš da array kreće od 0. A ovo je samo broj ukupan broj slotova. Znaci od 0-33 imaš 34 slota, ali od 0-34 imas 35. Kontaš?

new array[5];

array[0] = 3; // valja. 
array[5] = 4; // ne valja


Znači ti u ovom slucaju pristupaš elementu nekom na 34om indexu. Jednostavno stavi ovako

new PlayerText: InGame_TD[MAX_PLAYERS][35];


Ili proveri od kojeg ti indexa počinje kreiranje tih textdrawowa. Ako je od 1 prebaci da kreće od 0 i svaki naredni smanji za 1. A ako pocinje od 0, samo popravi ovako gore.
- open.mp regional coordinator -

ne objasnjavas mu njemu se ne cuvaju boje
Poslednja Izmena: April 18, 2023, 18:49:12 POSLE PODNE od undefined

popravio sam ja to sve ali se meni ne cuva boja td-a koju igrac odabere

Onda nam daj kod gde čuvaš boje.
- open.mp regional coordinator -