Easyofhappy
Ученик
Ребят, помогите пожалуйста у меня уже нет сил, 2 день ломаю голову.
Суть проблемы.
Приведу пример, тест был в ЛСПД.
Человек из ЛСПД даёт розыск и т.д всё проходит гладко, после чего пишет /arrest, преступник оказывается в камере и его видят все кто находится рядом с камерой преступника, это всё хорошо, НО, если преступника кто-то убивает через решётку или внутри камеры, то игрок появляется снова в этой же камере, только он никого не видит и его никто не видит, хотя люди стоят возле его камеры. После смерти преступника пишет: "За повторную попытку сбежать из тюрьмы вы можете получить бан."
Суть проблемы.
Приведу пример, тест был в ЛСПД.
Человек из ЛСПД даёт розыск и т.д всё проходит гладко, после чего пишет /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);
}
