PDA

Просмотр полной версии : [Вопрос] Странность в консоли



koberman
07.05.2017, 18:30
[debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at negative index -1
[debug] AMX backtrace:
[debug] #0 0010d8a8 in public FIXES_OnPlayerKeyStateChange (... <3 arguments>) at C:\Users\User\Documents\GTA San Andreas User Files\SAMP\server\gamemodes\typicalrp.pwn:4674
[debug] #1 00007cdc in public OnPlayerKeyStateChange (playerid=0, newkeys=4, oldkeys=0) at C:\Users\User\Documents\GTA San Andreas User Files\SAMP\server\pawno\include\fixes.inc:5249

Строка 4674:

if(IsPlayerInRangeOfPoint(playerid, 3.0, house_info[h][hmusorx], house_info[h][hmusory], house_info[h][haenterz]))
Строка 5249 инклуда:

return FIXES_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
Немного про 4674 строку:

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_FIRE)
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, house_info[h][hmusorx], house_info[h][hmusory], house_info[h][haenterz]))
{
if(house_info[h][hmusor] < 49) return 1;
DestroyDynamicObject(hmusorobj[h]);
UpdateDynamic3DTextLabelText(hmusortext[h], 0x1FC9FFFF, "Мусор: {FFFFFF}0%{1FC9FF}/{FFFFFF}100%");
RemovePlayerAttachedObject(playerid, 1);
SPAO(playerid, 1, 1265, 6, 0.202998, -0.017000, -0.001000, 0.000000, -83.000000, 0.000000, 0.284999, 0.513000, 0.652000);
SetPVarInt(playerid, "bagpercent", house_info[h][hmusor]);
SetPVarInt(playerid, "withbag", 1);
house_info[h][hmusor] = 0;
SCM(playerid, COLOR_WHITE, "Вы взяли мешок с мусором в руку. Отнести его в контейнер с мусором");
static const fmt_query[] = "UPDATE `house` SET `hmusor` = 0 WHERE `hid` = '%d'";
new query[sizeof(fmt_query)+(-2+3)];
format(query, sizeof(query), fmt_query, house_info[h][hid]);
mysql_query(dbHandle, query);
return 1;
}
}
}

Pa4enka
07.05.2017, 18:46
Элемент массива является отрицательным числом.

koberman
08.05.2017, 04:19
Это мне ясно. Я не понимаю почему это происходит. Я нахожусь в транспорте, нажимаю на на любые клавиши и вместо действий по коду идет флуд в консоль. Хотя действия находятся на 50 строках ниже 4679 и с проверкой на транспорт.

DeimoS
08.05.2017, 04:26
Так а ты уверен, что в "h" хранится нормальное значение, а не "-1"?

Pa4enka
08.05.2017, 14:59
Выводите в консоль значения и проблема будет ясна.