25.04.2016, 03:18
Всем доброго времени суток! Сразу перейду к теме, принимаю игрока в организацию как лидер - отправляю приглошение он жмёт "Да" и 0 реакции.
Сам кейс
Crashdetect:
PHP код:
CMD:invite(playerid, params[])
{
if(IsAbleToInvite(playerid) || (PI[playerid][pMember] > 0 && strcmp(GetName(playerid),FracInfo[PI[playerid][pMember]][fAssistant],true) == 0))
{
new targetid;
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /invite [id игрока]");
else if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotOnline);
else if(PlayerLogged[targetid] == false) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotAuthorized);
else if(PI[targetid][pLeader] > 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок лидер другой организации!");
else if(PI[targetid][pMember] > 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок находиться в другой организации!");
else if(PI[targetid][pWarn] > 0) return SendClientMessage(playerid, COLOR_GREY, "У игрока предупреждение!");
else if(IsPlayerInAnyVehicle(targetid)) return SendClientMessage(playerid, COLOR_GREY, "Игрок не должен находиться в транспорте!");
else if(!IsPlayerInRangeOfPlayer(8.0, playerid, targetid)) return SendClientMessage(playerid, COLOR_GREY, "Игрок слишком далеко!");
SendMes(playerid,COLOR_BLUE,"Вы предложили %s присоединиться в вашу организацию",GetName(targetid));
new string[128];
format(string,sizeof(string),"%s %s предлагает вам присоединиться к \"%s\"\n\nВы согласны?",FracRank[PI[playerid][pMember]][PI[playerid][pRank]], GetName(playerid), FracInfo[PI[playerid][pMember]][fName]);
ShowPlayerDialog(targetid, D_INVITEFRAC, 0, "{FFCC00}Вступление во фракцию",string,"Да","Нет");
SetPVarInt(playerid, "actplayerid", targetid);
}
else SendClientMessage(playerid, COLOR_GREY, YouCanNot);
return 1;
}
PHP код:
case D_INVITEFRAC:
{
if(!response) return 1;
new actplayerid = GetPVarInt(playerid, "actplayerid");
new memberid = PI[playerid][pMember];
new mes[128];
for(new i; i < 8; i++)
{
new skinid = gFractionSkin[memberid-1][i];
if(!skinid) break;
if(!i) format(mes, sizeof(mes), "Скин %d [%d]", i+1, skinid);
else format(mes, sizeof(mes), "%s\nСкин %d [%d]", mes, i+1, skinid);
}
SendClientMessage(actplayerid, COLOR_BLUE, "Ждите, пока лидер выберет одежду для Вас");
ShowPlayerDialog(playerid, D_INVITESKIN, 2, "{FFCC00}Выбор скина", mes, "Принять", "");
}
PHP код:
[06:25:29] [debug] Run time error 4: "Array index out of bounds"
[06:25:29] [debug] Accessing element at negative index -1
[06:25:29] [debug] AMX backtrace:
[06:25:29] [debug] #0 00070508 in public OnDialogResponse (1, 18, 1, -1, 4569720) from new.amx