Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Belii poslato April 18, 2023, 14:20:10 POSLE PODNE

Naslov: Pomoc
Poruka od: Belii poslato April 18, 2023, 14:20:10 POSLE PODNE
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: [pawn][/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [pawn][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[/pawn]ovo mi izbacuje u server log
Slika/video ingame problema(obavezno ako je ingame problem): link slike
Naslov: Odg: Pomoc
Poruka od: schatzi poslato April 18, 2023, 15:01:34 POSLE PODNE
posalji kod
Naslov: Odg: Pomoc
Poruka od: Belii poslato April 18, 2023, 15:54:19 POSLE PODNE
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
[pawn]    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;[/pawn]
Naslov: Odg: Pomoc
Poruka od: Mergevos poslato April 18, 2023, 16:03:23 POSLE PODNE
Pošalji nam celu funkciju KreirajInGameTD
Naslov: Odg: Pomoc
Poruka od: 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.

Naslov: Odg: Pomoc
Poruka od: Belii poslato April 18, 2023, 16:34:03 POSLE PODNE
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.
[pawn]    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);
            }
        }
    }[/pawn]ovo je dialog

a ovamo su samo te boje i textdraw ingame
Naslov: Odg: Pomoc
Poruka od: mrvica poslato April 18, 2023, 16:39:27 POSLE PODNE
probaj da operes kod mozda je do toga
       
Naslov: Odg: Pomoc
Poruka od: Mergevos poslato April 18, 2023, 17:05:36 POSLE PODNE
Citat: Belii poslato April 18, 2023, 16:34:03 POSLE PODNE
[pawn]    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);
            }
        }
    }[/pawn]ovo je dialog

a ovamo su samo te boje i textdraw ingame

Nisi me razumeo. Treba mi KreirajInGameTD funkcija. Cela, sa naslovom do zadnje }
Naslov: Odg: Pomoc
Poruka od: Belii poslato April 18, 2023, 17:14:40 POSLE PODNE
[pawn]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
}[/pawn]

inace ove errore u server logu sam resio
samo je problem sto ne cuva boju
Naslov: Odg: Pomoc
Poruka od: 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.
Naslov: Odg: Pomoc
Poruka od: Belii poslato April 18, 2023, 18:10:40 POSLE PODNE
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.
[pawn]new PlayerText:InGame_TD[MAX_PLAYERS][34];[/pawn]el ovo

i svaki td kome zelim da promenim boju je ovako[pawn]PlayerTextDrawColor(playerid, InGame_TD[playerid][0], boja);[/pawn]
Naslov: Odg: Pomoc
Poruka od: Mergevos poslato April 18, 2023, 18:30:06 POSLE PODNE
Citat: Belii poslato April 18, 2023, 18:10:40 POSLE PODNE
[pawn]new PlayerText:InGame_TD[MAX_PLAYERS][34];[/pawn]el ovo

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

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.
Naslov: Odg: Pomoc
Poruka od: schatzi poslato April 18, 2023, 18:47:34 POSLE PODNE
ne objasnjavas mu njemu se ne cuvaju boje
Naslov: Odg: Pomoc
Poruka od: Belii poslato April 18, 2023, 18:50:24 POSLE PODNE
popravio sam ja to sve ali se meni ne cuva boja td-a koju igrac odabere
Naslov: Odg: Pomoc
Poruka od: Mergevos poslato April 18, 2023, 18:57:36 POSLE PODNE
Onda nam daj kod gde čuvaš boje.
Naslov: Odg: Pomoc
Poruka od: Mergevos poslato April 18, 2023, 18:58:36 POSLE PODNE
Citat: undefined poslato April 18, 2023, 18:47:34 POSLE PODNE
ne objasnjavas mu njemu se ne cuvaju boje
Brate je l moguće objasnjavam čoveku 10 minuta da bih skontao da je problem skroz drugi nego onaj za koji mi je dao log
Naslov: Odg: Pomoc
Poruka od: Belii poslato April 18, 2023, 19:09:08 POSLE PODNE

Citat: Mergevos poslato April 18, 2023, 18:57:36 POSLE PODNE
Onda nam daj kod gde čuvaš boje.
[pawn]enum xPlayerInfo{
    xTDBoja
}[/pawn]

[pawn]    PlayerInfo[playerid][xTDBoja] = 0;
ovo je pod ResetPlayer[/pawn]

[pawn]INI_WriteInt(File,"TDBoja", PlayerInfo[playerid][xTDBoja]);
ovo pod SavePlayer[/pawn]

[pawn]INI_Int("TDBoja", PlayerInfo[playerid][xTDBoja]);
i ovo je pod OcitajKorisnika[/pawn]
Naslov: Odg: Pomoc
Poruka od: Mergevos poslato April 18, 2023, 19:17:04 POSLE PODNE
Je l čuvaš nakon izmene?
EDIT: video sam sad. Čekaj da pogledam još malo
Naslov: Odg: Pomoc
Poruka od: Belii poslato April 18, 2023, 19:19:35 POSLE PODNE
ono u sc sacuva primer ako je crvena broj 6 ono postavi broj 6 [pawn]TDBoja = 6[/pawn]
ali ne razumem sto ne ucitava
Naslov: Odg: Pomoc
Poruka od: Mergevos poslato April 19, 2023, 00:29:36 PRE PODNE
Citat: Belii poslato April 18, 2023, 19:19:35 POSLE PODNE
ono u sc sacuva primer ako je crvena broj 6 ono postavi broj 6 [pawn]TDBoja = 6[/pawn]
ali ne razumem sto ne ucitava

Ajde posalji kod gde ucitavas i funkciju koja ucitava
Naslov: Odg: Pomoc
Poruka od: njoBe_ poslato April 19, 2023, 20:56:17 POSLE PODNE
zar vam treba tema od 2 stranice zbog obicnog debuga koji izvris sa prinf funkcijom.. strasno
Naslov: Odg: Pomoc
Poruka od: Belii poslato April 19, 2023, 23:17:41 POSLE PODNE
Citat: Mergevos poslato April 19, 2023, 00:29:36 PRE PODNE
Ajde posalji kod gde ucitavas i funkciju koja ucitava
[pawn]if( dialogid == dialog_LOGIN ) {
       if( !response ) return Kick( playerid );
      if( response ) {
         if( !strcmp( inputtext, PlayerInfo[ playerid ][ xLozinka ], false ) && !isnull( inputtext ) ) {
            INI_ParseFile( Korisnici( playerid ), "OcitajKorisnika", .bExtra = true, .extra = playerid );[/pawn]ovo je deo dialoga kada se igrac ponovo konektuje na server

[pawn]public OcitajKorisnika( playerid, name[ ], value[ ] )
{
   INI_Int("TDBoja", PlayerInfo[playerid][xTDBoja]);
   return true;
}[/pawn]
Naslov: Odg: Pomoc
Poruka od: schatzi poslato April 19, 2023, 23:58:46 POSLE PODNE
Sex Droga @Galardo i Moda
Naslov: Odg: Pomoc
Poruka od: Goku ^ poslato April 20, 2023, 16:05:57 POSLE PODNE
[pawn]
Dodaj gore kod pinfo

pBojaTD,

Stavi kod saveplayer

INI_WriteInt(File,"BojaTD",PlayerInfo[playerid][pBojaTD]);

Kod Load

INI_Int(File,"BojaTD",PlayerInfo[playerid][pBojaTD]);

I kod odabir boja stavi

PlayerInfo[playerid][pBojaTD] = 0x000000AA;
i na kraj saveplayer(playerid);

i kod OnLoginPlayerEx ili kako je kod tebe definisano za spawn igraca.

PlayerTextDrawColor(playerid, TvojTD[ playerid ][ 0 ], PlayerInfo[playerid][pBojaTD]);

[/pawn]




Naslov: Odg: Pomoc
Poruka od: Belii poslato April 20, 2023, 17:45:35 POSLE PODNE
Citat: Goku ^ poslato April 20, 2023, 16:05:57 POSLE PODNE
[pawn]
Dodaj gore kod pinfo

pBojaTD,

Stavi kod saveplayer

INI_WriteInt(File,"BojaTD",PlayerInfo[playerid][pBojaTD]);

Kod Load

INI_Int(File,"BojaTD",PlayerInfo[playerid][pBojaTD]);

I kod odabir boja stavi

PlayerInfo[playerid][pBojaTD] = 0x000000AA;
i na kraj saveplayer(playerid);

i kod OnLoginPlayerEx ili kako je kod tebe definisano za spawn igraca.

PlayerTextDrawColor(playerid, TvojTD[ playerid ][ 0 ], PlayerInfo[playerid][pBojaTD]);

[/pawn]
pa sve je vec tako namesteno
Naslov: Odg: Pomoc
Poruka od: schatzi poslato April 20, 2023, 19:51:42 POSLE PODNE
Citat: undefined poslato April 19, 2023, 23:58:46 POSLE PODNE
Sex Droga @Galardo i Moda
Naslov: Odg: Pomoc
Poruka od: Fergosonn poslato April 21, 2023, 18:46:08 POSLE PODNE
Citat: Belii poslato April 18, 2023, 17:14:40 POSLE PODNE
[pawn]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
}[/pawn]

inace ove errore u server logu sam resio
samo je problem sto ne cuva boju
Umesto sto ovako radis mogao bi da cuvas boju koju igrac sam odabere
[pawn]PlayerInfo[playerid][xTDBoja] = 176909823;//Primer[/pawn]
Naslov: Odg: Pomoc
Poruka od: Belii poslato April 21, 2023, 19:59:54 POSLE PODNE
lock