PDA

Просмотр полной версии : [Вопрос] По public MzCheck



Snoop_Dog
16.05.2014, 11:48
Всем привет! решил взять за основу samp-rp от Cherbet(Это не является рекламой)
И решил запустит его с plugin'ом crashdetect.dll
И увидел что он находит ошибку в public MzCheck
Сама ошибка:

[debug] Run time error 4: "Array index out of bounds"
[debug] Accessing element at index 1 past array upper bound 0
[debug] AMX backtrace:
[debug] #0 002361ac in public MzCheck () from RolePlay.amx

Как можно это исправить подскажите,и что это за ошибка?

wAx
16.05.2014, 13:21
Всем привет! решил взять за основу samp-rp от Cherbet(Это не является рекламой)
И решил запустит его с plugin'ом crashdetect.dll
И увидел что он находит ошибку в public MzCheck
Сама ошибка:

[debug] Run time error 4: "Array index out of bounds"
[debug] Accessing element at index 1 past array upper bound 0
[debug] AMX backtrace:
[debug] #0 002361ac in public MzCheck () from RolePlay.amx

Как можно это исправить подскажите,и что это за ошибка?

Ошибка в одном из циклов, подключи плагин crashdetect и кидай логи

Snoop_Dog
16.05.2014, 13:56
Вот короч подключил плагин с нахождением строчки
Выдал вот это:

[13:53:23] [debug] Run time error 4: "Array index out of bounds"
[13:53:23] [debug] Accessing element at index 1 past array upper bound 0
[13:53:23] [debug] AMX backtrace:
[13:53:23] [debug] #0 002d8d5c in public MzCheck () at D:\Game\GTA San Andreas\Мой сервер\0.3z\Samp-Rp.Ru Багофикс\gamemodes\RolePlay.pwn:46137

Строчка: OnmZONE[i][z] = 0;

Вот весь public

public MzCheck()
{
for(new i = 0; i < sizeof(MZInfo); i++)
{
if(ZoneOnBattlem[i] == 1 && MZSafeTime[i] == 0)
{
ZoneTimerm[i] -= 5;
if(ZoneTimerm[i] <= 0)
{
for(new h = 0; h < sizeof(BizzInfo); h++)
{
if(BizzInfo[h][bCapture] == 1)
{
BizzInfo[h][bMafia] = BizzInfo[h][bMafia];
SendFamilyMessage(BizzInfo[h][bMafia],0x114D71AA, "Вам удалось отстоять свой бизнес");
SendFamilyMessage(MZInfo[i][mNapad],COLOR_RED, "Вам не удалось взять под контроль новый бизнес");
BizzInfo[h][bCapture] = 0;
startwar = 0;
ZoneOnBattlem[i] = 0;
GangZoneStopFlashForAll(zons);
//ZoneTimerm[i] = 0;
OnPropUpdate();
}
}
}
for(new x = 0; x < MAX_PLAYERS; x++)
{
if(PlayerToKvadrat(x,328.755706, 2412.644531, 448.755706, 2564.644531))
{
new factionm;
if(PlayerInfo[x][pLeader] != 0) { factionm = PlayerInfo[x][pLeader]; }
else { factionm = PlayerInfo[x][pMember]; }
OnmZONE[i][factionm] ++;
}
}
new asd;
for(new x = 0; x < sizeof(FrakCDm); x++)
{
if(OnmZONE[i][x] > 0 && IsInAllowedM(x)) asd++;
}
if(asd == 1)
{
for(new x = 0; x < sizeof(FrakCDm); x++)
{
if(OnmZONE[i][x] > 0)
{
new zx,zl;
zx = x;
zl = i;
if(MZInfo[i][mFrakVlad] == x)
{
for(new h = 0; h < sizeof(BizzInfo); h++)
{
if(BizzInfo[h][bCapture] == 1)
{
BizzInfo[h][bMafia] = BizzInfo[h][bMafia];
SendFamilyMessage(BizzInfo[h][bMafia],0x114D71AA, "Вы отстояли свой бизнес");
SendFamilyMessage(MZInfo[i][mNapad],COLOR_RED, "Вам не удалось завоевать ещё один бизнес");
BizzInfo[h][bCapture] = 0;
startwar = 0;
}
}
}
else
{
for(new h = 0; h < sizeof(BizzInfo); h++)
{
new string[128];
if(BizzInfo[h][bCapture] == 1)
{
SendFamilyMessage(BizzInfo[h][bMafia],COLOR_RED, "Вы потеряли контроль над одним из своих бизнесов");
format(string,sizeof(string), "Вы взяли под контроль Бизнес: %s", BizzInfo[h][bMessage]);
SendFamilyMessage(MZInfo[i][mNapad],0x114D71AA,string);
BizzInfo[h][bMafia] = MZInfo[i][mNapad];
BizzInfo[h][bCapture] = 0;
startwar = 0;
}
}
}
ZoneOnBattlem[zl] =0;
MZInfo[zl][mFrakVlad] = 0;
MZInfo[zl][mFrakVlad] = zx;
GangZoneStopFlashForAll(zons);
GangZoneHideForAll(zons);
GangZoneShowForAll(zons, 0xB2B2B2AA);
OnPropUpdate();
break;
}
}
}
}
}
for(new i = 0; i < 3; i++)
{
for(new z = 0; z < sizeof(FrakCDm); z++)
{
OnmZONE[i][z] = 0;
}
}
}

DeimoS
16.05.2014, 14:13
Объявление массива OnmZONE покажите

Snoop_Dog
16.05.2014, 14:17
new OnmZONE[1][20];

DeimoS
16.05.2014, 14:25
А теперь MZInfo

Snoop_Dog
16.05.2014, 14:48
new MZInfo[1][MzoneInfo];