PDA

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



DmX
21.06.2014, 20:50
Не понимаю, вроде всё настроено правильно, код не работает(

Мучаюсь уже довольно таки долго...



public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != INVALID_PLAYER_ID)
{
if(IsGangMaf(killerid))
{
if(PlayerInfo[playerid][pMemb] == PlayerInfo[killerid][pMemb]) return true;
if(IsGangMaf(playerid))
{
new asd[184];
ComInfo[PlayerInfo[killerid][pMemb]-9][cUpgrade]++;
format(asd, sizeof(asd), "[F] %s убил члена вражеского клана, ваша власть увеличилась на 1 (Теперь у вас: %d очков власти)",PlayerInfo[killerid][pName],ComInfo[PlayerInfo[killerid][pMemb]-9][cUpgrade]);
SendFamilyRMessage(PlayerInfo[killerid][pMemb],0xEFE543FF, asd);
mysql_format(MYSQL_ARG, asd, sizeof(asd),"UPDATE `common` SET `Upgrade` = '%d' WHERE BINARY `ID` = '%d'",
ComInfo[PlayerInfo[killerid][pMemb]-9][cUpgrade],
ComInfo[PlayerInfo[killerid][pMemb]-9][cID]);
mysql_function_query(MYSQL_ARG, asd, false, "", "");
return true;
}
}
}
return true;
}




[23:32:07] [debug] Run time error 4: "Array index out of bounds"
[23:32:07] [debug] Accessing element at index 65535 past array upper bound 19
[23:32:07] [debug] AMX backtrace:
[23:32:07] [debug] #0 00016a18 in public OnPlayerDeath (0x00000000, 0x0000ffff, 0x000000ff) from siman.amx
[23:32:07] [death] Crailians died 255


stock IsGangMaf(playerid)//Мафии банды
{
if(PlayerInfo[playerid][pMemb] == 9 || PlayerInfo[playerid][pMemb] == 10 || PlayerInfo[playerid][pMemb] == 11 || PlayerInfo[playerid][pMemb] == 12 ||
PlayerInfo[playerid][pMemb] == 13 || PlayerInfo[playerid][pMemb] == 14 || PlayerInfo[playerid][pMemb] == 15 || PlayerInfo[playerid][pMemb] == 16 ||
PlayerInfo[playerid][pMemb] == 17) return true;
return false;
}

underwoker
22.06.2014, 03:01
Скомпилируйте мод с параметром -d3. Узнаем строчку.
Ну а вообще попробуйте всунуть проверку IsPlayerConnected, ну и в стоке проверку на инвалид ид убийцы.

Salvacore
22.06.2014, 03:38
Скомпилируйте мод с параметром -d3. Узнаем строчку.
Ну а вообще попробуйте всунуть проверку IsPlayerConnected, ну и в стоке проверку на инвалид ид убийцы.
Уже сказал ему, молчит.

OKStyle
22.06.2014, 13:25
if(killerid != INVALID_PLAYER_ID && playerid != INVALID_PLAYER_ID)