• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Проблемы с арестом /arrest, смерть и никого невидно

Easyofhappy

Ученик
Ребят, помогите пожалуйста у меня уже нет сил, 2 день ломаю голову.

Суть проблемы.
Приведу пример, тест был в ЛСПД.
Человек из ЛСПД даёт розыск и т.д всё проходит гладко, после чего пишет /arrest, преступник оказывается в камере и его видят все кто находится рядом с камерой преступника, это всё хорошо, НО, если преступника кто-то убивает через решётку или внутри камеры, то игрок появляется снова в этой же камере, только он никого не видит и его никто не видит, хотя люди стоят возле его камеры. После смерти преступника пишет: "За повторную попытку сбежать из тюрьмы вы можете получить бан."

C++:
CMD:arrest(playerid, params[])
{
    if(!IsACop(playerid)) return true;
    if(IsPlayerInRangeOfPoint(playerid, 15.0, 268.3327,77.8972,1001.0391) || IsPlayerInRangeOfPoint(playerid, 6.0, 227.7436,114.5075,999.0156) || IsPlayerInRangeOfPoint(playerid, 6.0, 188.7124,157.6917,1003.0234)|| IsPlayerInRangeOfPoint(playerid, 6.0, 218.2263,114.9286,999.0156) || IsPlayerInRangeOfPoint(playerid, 6.0, 198.3940,157.9389,1003.0234))
    {
        if(sscanf(params, "d",params[0])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /arrest [время]");
        if(params[0] < 1 || params[0] > 20) return SendClientMessage(playerid, COLOR_GREY, "От 1 минуты до 20");
        new suspect = GetClosestPlayer(playerid);
        if(!IsPlayerConnected(suspect)) return true;
        if(!ProxDetectorS(4.0, playerid, suspect)) return true;
        if(PlayerInfo[suspect][pWanted] < 1) return  SendClientMessage(playerid, COLOR_GREY, "Человек должен иметь хотя бы один уровень розыска!");
        format(stringer1, sizeof(stringer1), "Вы арестовали %s, штраф 5 вирт",PlayerInfo[suspect][pNames]);
        SendClientMessage(playerid, COLOR_WHITE, stringer1);
        PlayerInfo[suspect][pCash]-= 5;
        GiveMoney(playerid, 5);
        GameTextForPlayer(suspect,"~r~-5", 5000, 5);
        ResetWeapons(suspect);
        switch(PlayerInfo[playerid][pMember])
        {
        case 1,10,21,25: { format(stringer1, sizeof(stringer1), "<< Офицер %s арестовал %s >>",PlayerInfo[playerid][pNames],PlayerInfo[suspect][pNames]); SendClientMessageToAll(COLOR_LIGHTRED, stringer1); }
        case 2: { format(stringer1, sizeof(stringer1), "<< Агент FBI %s арестовал %s >>",PlayerInfo[playerid][pNames],PlayerInfo[suspect][pNames]); SendClientMessageToAll(COLOR_LIGHTRED, stringer1); }
        }
        if(IsPlayerInRangeOfPoint(playerid, 15.0, 268.3327,77.8972,1001.0391))
        {
            SetPlayerInteriorEx(suspect, 6);
            SetPPos(suspect,264.1425,77.4712,1001.0391);
            SetPlayerFacingAngle(suspect, 263.0160);
            PlayerInfo[suspect][pMestoJail] = 1;
        }
        else if(IsPlayerInRangeOfPoint(playerid, 6.0, 218.2263,114.9286,999.0156))
        {
            SetPlayerInteriorEx(suspect, 10);
            SetPPos(suspect,219.5400,109.9767,999.0156);
            SetPlayerFacingAngle(suspect, 1.0000);
            PlayerInfo[suspect][pMestoJail] = 2;
        }
        else if(IsPlayerInRangeOfPoint(playerid, 6.0, 198.3940,157.9389,1003.0234))
        {
            SetPlayerInteriorEx(suspect, 3);
            SetPPos(suspect,198.3642,161.8103,1003.0300);
            SetPlayerFacingAngle(suspect, 1.0000);
            PlayerInfo[suspect][pMestoJail] = 3;
        }
        SetPlayerWantedLevel(suspect, 0);
        PlayerInfo[suspect][pJailTime] = params[0]*60;
        PlayerInfo[suspect][pWanted] = 0;
        PlayerInfo[suspect][pZakonp] -= 1;
        SetPlayerSpecialAction(suspect,SPECIAL_ACTION_NONE);
        RemovePlayerAttachedObject(suspect,0);
        TogglePlayerControllable(suspect, 1);
        PlayerInfo[suspect][pJailed] = 1;
        PlayerCuffed[suspect] = 0;
    }
    return true;
}

C++:
else if(!IsPlayerInRangeOfPoint(i,40.0,264.1425,77.4712,1001.0391) && PlayerInfo[i][pMestoJail] == 1)
                {
                    SetPlayerInteriorEx(i, 6);
                    SetPPos(i,264.1425,77.4712,1001.0391);
                    SetPlayerFacingAngle(i, 263.0160);
                    PlayerHealth[i] = 0;
                    SendClientMessage(i,COLOR_GREY,"За повторную попытку сбежать из тюрьмы вы можете получить бан.");
                }
C++:
            if(PlayerInfo[i][pJailTime] > 0) PlayerInfo[i][pJailTime]--;
            if(PlayerInfo[i][pJailTime] <= 0)
            {
                if(PlayerInfo[i][pJailed] == 1)
                {
                    if(PlayerInfo[i][pMestoJail] == 1)
                    {
                        SetPPos(i,1547.11,-1675.76,13.94);//Тюрьма
                        SetPlayerFacingAngle(i, 95.0636);
                    }
 
Сверху Снизу