PDA

Просмотр полной версии : [Вопрос] Array index out of bounds



DoN_SancheS
18.02.2017, 13:19
Здравствуйте!
Если не сложно подскажите как исправить это:

#0 00274904 in UpdateSBizz (idx=12) at C:\Users\Karen\Desktop\OBM\gamemodes\Obmalion.pwn:36941
#1 00277aa4 in public sBiz1 () at C:\Users\Karen\Desktop\OBM\gamemodes\Obmalion.pwn:37227
Run time error 4: "Array index out of bounds"
Attempted to read/write array element at index 37 in array of size 37
AMX backtrace:
#0 002743b0 in UpdateBizz (idx=37) at C:\Users\Karen\Desktop\OBM\gamemodes\Obmalion.pwn:36926
#1 00277818 in public Biz1 () at C:\Users\Karen\Desktop\OBM\gamemodes\Obmalion.pwn:37204
Run time error 4: "Array index out of bounds"
Attempted to read/write array element at index 12 in array of size 12
AMX backtrace:
#0 00274904 in UpdateSBizz (idx=12) at C:\Users\Karen\Desktop\OBM\gamemodes\Obmalion.pwn:36941
#1 00277aa4 in public sBiz1 () at C:\Users\Karen\Desktop\OBM\gamemodes\Obmalion.pwn:37227

UpdateSbizz (idx):

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;
}

Publick Sbizz1 ()

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);
}

UpdateBizz (idx):

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;
}

Public Bizz1 ():

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);
}

vovandolg
18.02.2017, 14:28
массивы SBizzInfo и BizzInfo
нужно увеличить или делать Update функции на 1 меньше



public sBiz1()
{
for(new i = 0, size_i = sizeof(SBizzInfo); i != size_i; i++) UpdateSBizz(i);
}

public Biz1()
{
for(new i = 0, size_i = sizeof(BizzInfo); i != size_i; i++) UpdateBizz(i);
}

DoN_SancheS
18.02.2017, 18:04
массивы SBizzInfo и BizzInfo
нужно увеличить или делать Update функции на 1 меньше



public sBiz1()
{
for(new i = 0, size_i = sizeof(SBizzInfo); i != size_i; i++) UpdateSBizz(i);
}

public Biz1()
{
for(new i = 0, size_i = sizeof(BizzInfo); i != size_i; i++) UpdateBizz(i);
}



то-есть мне нужно удалить все UpdateSBizz(); и UpdateBizz() и под Пабликом Biz1() и sBizz1() добавить только то что ты написал?

vovandolg
18.02.2017, 21:35
Я хз что там у тебя,
если ты не сам тот код писал то меняй на моё,
если твоё изобретение то расширять размер массива.

DoN_SancheS
18.02.2017, 23:03
Я хз что там у тебя,
если ты не сам тот код писал то меняй на моё,
если твоё изобретение то расширять размер массива.

Всё сработала, как всегда выручил, а я как всегда благодарен.