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
posalji kod
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]
Pošalji nam celu funkciju KreirajInGameTD
Array index out of bounds.
Attempted to read/write array element at index 34 in array of size 34.
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
probaj da operes kod mozda je do toga
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 }
[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
Zapravo ima potrebe da mi šalješ i tdove. I pošalji kako si deklarisao varijablu za jste.
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]
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.
ne objasnjavas mu njemu se ne cuvaju boje
popravio sam ja to sve ali se meni ne cuva boja td-a koju igrac odabere
Onda nam daj kod gde čuvaš boje.
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
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]
Je l čuvaš nakon izmene?
EDIT: video sam sad. Čekaj da pogledam još malo
ono u sc sacuva primer ako je crvena broj 6 ono postavi broj 6 [pawn]TDBoja = 6[/pawn]
ali ne razumem sto ne ucitava
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
zar vam treba tema od 2 stranice zbog obicnog debuga koji izvris sa prinf funkcijom.. strasno
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]
Sex Droga
@Galardo i Moda
[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]
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
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]
lock