Проблема в том, что при попытке заключить какого-либо другого игрока, заключаешь всё-равно себя. Вот код:
Код:
if(strcmp(cmd, "/arrest", true) == 0)
{
if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)
{
if(PlayerInfo[playerid][pRank] <= 5)
{
SendClientMessage(playerid, COLOR_GREY, "Заключать в тюрьму можно с 6-го ранга");
return 1;
}
if(!PlayerToPoint(4,playerid,2571.8,-2410.8,22))
{
SendClientMessage(playerid, COLOR_GREY, "Вы не в полиции");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_ISPOLZUY, "Подсказка: /jail [id игрока] [Время в мин]");
return 1;
}
new playa;
new time;
tmp = strtok(cmdtext, idx);
time = strval(tmp);
if(time < 5 || time > 180) { SendClientMessage(playerid, COLOR_GREY, "Время от 5 до 180"); return 1; }
tmp = strtok(cmdtext, idx);
if(IsPlayerConnected(playa))
{
ResetPlayerWeapons(playa);
SetPlayerArmour(playerid, 0);
SetPlayerPos(playa,-1884.2,-2834.2,14.6);
SetPlayerFacingAngle(playerid, 180);
PlayerInfo[playa][pJailTime] = time * 60;
PlayerInfo[playa][pJailed] = 1;
PlayerInfo[playa][pCriminal] = 0;
SetPlayerWantedLevel(playa, PlayerInfo[playa][pCriminal]);
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s заключён вами в тюрьму на %d минут", giveplayer,time);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "%s заключил вас в тюрьму на %d минут", sendername,time);
SendClientMessage(playa, COLOR_LIGHTRED, string);
format(string, sizeof(string), "Полицейский %s арестовал игрока %s", sendername, giveplayer);
SendRadioMessage(1, TEAM_BLUE_COLOR, string);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Этот игрок оффлайн");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Вы не сотрудник полиции");
return 1;
}
return 1;
}