Pentru inceput optimizeaza codul...
if (playerVariables[playerid][pCrate10xVehiclesSkill] == 1) randomVehicles_td1 = random(10);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 2) randomVehicles_td1 = random(12);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 3) randomVehicles_td1 = random(15);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 4) randomVehicles_td1 = random(18);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 5) randomVehicles_td1 = random(20);
if (playerVariables[playerid][pCrate10xVehiclesSkill] == 1) randomVehicles_td2 = random(10);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 2) randomVehicles_td2 = random(12);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 3) randomVehicles_td2 = random(15);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 4) randomVehicles_td2 = random(18);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 5) randomVehicles_td2 = random(20);
if (playerVariables[playerid][pCrate10xVehiclesSkill] == 1) randomVehicles_td3 = random(10);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 2) randomVehicles_td3 = random(12);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 3) randomVehicles_td3 = random(15);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 4) randomVehicles_td3 = random(18);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 5) randomVehicles_td3 = random(20);
if (playerVariables[playerid][pCrate10xVehiclesSkill] == 1) randomVehicles_td4 = random(10);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 2) randomVehicles_td4 = random(12);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 3) randomVehicles_td4 = random(15);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 4) randomVehicles_td4 = random(18);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 5) randomVehicles_td4 = random(20);
if (playerVariables[playerid][pCrate10xVehiclesSkill] == 1) randomVehicles_td5 = random(10);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 2) randomVehicles_td5 = random(12);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 3) randomVehicles_td5 = random(15);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 4) randomVehicles_td5 = random(18);
else if (playerVariables[playerid][pCrate10xVehiclesSkill] == 5) randomVehicles_td5 = random(20);
cu urmatorul:
// Versiune modificata
new values[5] = { 10, 12, 15, 18, 20 };
for(new i = 0; i < 5; i++)
{
if(playerVariables[playerid][pCrate10xVehiclesSkill] == i+1)
{
randomVehicles_td1 = random(values[i]);
randomVehicles_td2 = random(values[i]);
randomVehicles_td3 = random(values[i]);
randomVehicles_td4 = random(values[i]);
randomVehicles_td5 = random(values[i]);
}
}
-- Array out of bounds se da atunci cand valoarea setata este mai mare decat matricea/array-ul
Ex:
new val = 5; // valorea setata
new matrice[4];
printf("valoare: %d", matrice[val]); // -> eroare array index out of bounds
Motivul pentru care apare aceasta eroare este datorat de valoarea "val" pentru ca este 5 iar in variabila "matrice" maximul este de 4, matricea/array-ul pleaca intodeauna de la 0 daca nu sunt conditii in functia "for/while", dar nu poate fi depasit de valoarea matricei
Nu ne-ai dat linia in care apare problema, nu o sa stau sa verific fiecare linie, pe langa ca nu sunt toate datele postate.