PDA

Просмотр полной версии : [Вопрос] Ошибка в логах (Array index out of bounds)



DoN_SancheS
27.05.2017, 14:28
Здравствуйте народ!
Подскажите пожалуйста, как исправить эту ошибку.

Run time error 4: "Array index out of bounds"
[00:12:16] [debug] Attempted to read/write array element at index 37 in array of size 37
[00:12:16] [debug] AMX backtrace:
[00:12:16] [debug] #0 00277e80 in UpdateBizz (idx=37) at C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn:37642
[00:12:16] [debug] #1 0027b2e8 in public Biz1 () at C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn:37920
[00:12:16] [debug] Run time error 4: "Array index out of bounds"
[00:12:16] [debug] Attempted to read/write array element at index 12 in array of size 12
[00:12:16] [debug] AMX backtrace:
[00:12:16] [debug] #0 002783d4 in UpdateSBizz (idx=12) at C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn:37657
[00:12:16] [debug] #1 0027b574 in public sBiz1 () at C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn:37943

Строка 37642

stock UpdateBizz(idx)
{
new text[600];
if(BizzInfo[idx][bOwned] == 0)
{
format(text,sizeof(text),"{7FFF00}< Áèçíåñ [%d] >{ffffff}\n\n{7FFF00}\n{7FFF00}Öåíà:{ffffff} $%d\n{7FFF00}Óðîâåíü:{ffffff} %d\n{7FFF00}Íàçâàíèå:{ffffff} %s\n\nÄëÿ ïîêóïêè èñïîëüçóé /buybiz{ffffff}",idx,BizzInfo[idx][bBuyPrice],BizzInfo[idx][bLevelNeeded],BizzInfo[idx][bMessage]);
Update3DTextLabelText(Bizz3D[idx], 0xA9C4E4FF, text);
}
else if(BizzInfo[idx][bOwned] == 1)
{
format(text,sizeof(text),"{7FFF00}< Áèçíåñ [%d] >{ffffff}\n\n{7FFF00}Âëàäåëåö:{ffffff} %s\n{7FFF00}Íàçâàíèå:{ffffff} %s\n{7FFF00}Ïëàòà çà âõîä:{ffffff} $%d\n{7FFF00}Óðîâåíü:{ffffff} %d\n\n{3393E7}Ïðîäóêòû: %d/%d\n Öåíà çà ïðîäóêò: $%d",idx,BizzInfo[idx][bOwner],BizzInfo[idx][bMessage],BizzInfo[idx][bEntranceCost],BizzInfo[idx][bLevelNeeded],BizzInfo[idx][bProducts], BizzInfo[idx][bMaxProducts], BizzInfo[idx][bPriceProd]);
Update3DTextLabelText(Bizz3D[idx], COLOR_RED2, text);
}
return true;
}

Строка 37920 (UpdateBizz(38);)

public Biz1()
{
UpdateBizz(0);
UpdateBizz(1);
UpdateBizz(2);
UpdateBizz(3);
UpdateBizz(4);
UpdateBizz(5);
UpdateBizz(6);
UpdateBizz(7);
UpdateBizz(8);
UpdateBizz(9);
UpdateBizz(10);
UpdateBizz(11);
UpdateBizz(12);
UpdateBizz(13);
UpdateBizz(14);
UpdateBizz(15);
UpdateBizz(16);
UpdateBizz(17);
UpdateBizz(18);
UpdateBizz(19);
UpdateBizz(20);
UpdateBizz(21);
UpdateBizz(22);
UpdateBizz(23);
UpdateBizz(24);
UpdateBizz(25);
UpdateBizz(26);
UpdateBizz(27);
UpdateBizz(28);
UpdateBizz(29);
UpdateBizz(30);
UpdateBizz(31);
UpdateBizz(32);
UpdateBizz(33);
UpdateBizz(34);
UpdateBizz(35);
UpdateBizz(36);
UpdateBizz(37);
UpdateBizz(38);
UpdateBizz(39);
UpdateBizz(40);
UpdateBizz(41);
UpdateBizz(42);
UpdateBizz(43);
UpdateBizz(44);
}

Строка 37657

stock UpdateSBizz(idx)
{
new text[600];
if(SBizzInfo[idx][sbOwned] == 0)
{
format(text,sizeof(text),"{7FFF00}< Ìàëûé Áèçíåñ [%d] >{ffffff}\n\n{7FFF00}Öåíà:{ffffff} $%d\n{7FFF00}Óðîâåíü: {ffffff}%d\n{7FFF00}Íàçâàíèå:{ffffff} %s\n\nÄëÿ ïîêóïêè èñïîëüçóé /buybiz{ffffff}",idx,SBizzInfo[idx][sbBuyPrice],SBizzInfo[idx][sbLevelNeeded],SBizzInfo[idx][sbMessage]);
Update3DTextLabelText(SBizz3D[idx], 0xA9C4E4FF, text);
AddStaticPickup(1239, 23, SBizzInfo[idx][sbEntranceX], SBizzInfo[idx][sbEntranceY], SBizzInfo[idx][sbEntranceZ]);
}
if(SBizzInfo[idx][sbOwned] == 1)
{
format(text,sizeof(text),"{7FFF00}< Ìàëûé Áèçíåñ [%d] >\n\n{7FFF00}Âëàäåëåö:{ffffff} %s\n{7FFF00}Íàçâàíèå: {ffffff}%s\n{7FFF00}Óðîâåíü:{ffffff} %d\n\n{3393E7}Ïðîäóêòû: %d/%d\n Öåíà çà ïðîäóêò: $%d",idx,SBizzInfo[idx][sbOwner],SBizzInfo[idx][sbMessage],SBizzInfo[idx][sbLevelNeeded],SBizzInfo[idx][sbProducts], SBizzInfo[idx][sbMaxProducts], SBizzInfo[idx][sbPriceProd]);
Update3DTextLabelText(SBizz3D[idx], COLOR_RED2, text);
AddStaticPickup(1239, 23, SBizzInfo[idx][sbEntranceX], SBizzInfo[idx][sbEntranceY], SBizzInfo[idx][sbEntranceZ]);
}
CreateDynamicMapIcon(SBizzInfo[idx][sbEntranceX], SBizzInfo[idx][sbEntranceY], SBizzInfo[idx][sbEntranceZ], 52, COLOR_WHITE, 0, -1, -1, 500.0);
return true;
}

И строка 37943 (UpdateSBizz(13);)

public sBiz1()
{
UpdateSBizz(0);
UpdateSBizz(1);
UpdateSBizz(2);
UpdateSBizz(3);
UpdateSBizz(4);
UpdateSBizz(5);
UpdateSBizz(6);
UpdateSBizz(7);
UpdateSBizz(8);
UpdateSBizz(9);
UpdateSBizz(10);
UpdateSBizz(11);
UpdateSBizz(12);
UpdateSBizz(13);
UpdateSBizz(14);
UpdateSBizz(15);
UpdateSBizz(16);
UpdateSBizz(17);
UpdateSBizz(18);
UpdateSBizz(19);
UpdateSBizz(20);
UpdateSBizz(21);
UpdateSBizz(22);
UpdateSBizz(23);
UpdateSBizz(24);
UpdateSBizz(25);
UpdateSBizz(26);
UpdateSBizz(27);
UpdateSBizz(28);
UpdateSBizz(29);
UpdateSBizz(30);
UpdateSBizz(31);
UpdateSBizz(32);
UpdateSBizz(32);
UpdateSBizz(33);
UpdateSBizz(34);
UpdateSBizz(35);
UpdateSBizz(36);
UpdateSBizz(37);
}

VVWVV
27.05.2017, 14:35
В данной теме (http://pro-pawn.ru/showthread.php?12957) все подробно изложено.

DeimoS
27.05.2017, 14:35
public Biz1()
{
for(new i; i < sizeof(BizzInfo); i++)
UpdateBizz(i);
}

public sBiz1()
{
for(new i; i < sizeof(sBizzInfo); i++)
UpdateSBizz(i);
}

DoN_SancheS
27.05.2017, 14:47
public Biz1()
{
for(new i; i < sizeof(BizzInfo); i++)
UpdateBizz(i);
}

public sBiz1()
{
for(new i; i < sizeof(sBizzInfo); i++)
UpdateSBizz(i);
}

Сделал так, пришли варнинги

C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn(37887) : error 017: undefined symbol "sBizzInfo"
C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn(37887) : error 036: empty statement
C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn(37887) : error 017: undefined symbol "i"
C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn(37887) : fatal error 107: too many error messages on one line

DeimoS
27.05.2017, 14:54
Попроси их уйти, посмотрев на то, как у тебя названа переменная и изменив sBizzInfo на то название

DoN_SancheS
27.05.2017, 15:17
Попроси их уйти, посмотрев на то, как у тебя названа переменная и изменив sBizzInfo на то название

Отлично!
Спасибо тебе большое)