Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Тюрьма для любого мода 100% работает

Статус
В этой теме нельзя размещать новые ответы.

Merlin

Умник
Верху мода:​
PHP:
enum pInfo 
{ 
     pJailTime, 
     pMember, 
     pLeader, 
     pArrested, 
     pJailed, 
     pCash, 
} 

forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z); 
forward Float:GetDistanceBetweenPlayers(p1,p2); 
forward ServerGivePlayerMoney(playerid, money); 
forward jailtimer(); 
forward OOCNews(color,const string[]); 
new DengiTime[MAX_PLAYERS]; 
new gNews[MAX_PLAYERS]; 
new PlayerInfo[MAX_PLAYERS][pInfo]; 

#define COLOR_GREY 0xCCCCCAA 
#define COLOR_RED 0xFB0000FF //красный 
#define COLOR_LIGHTBLUE 0x33CCFFA //голубой 
#define COLOR_LIGHTRED 0xFF0000FF 
#define cmd(%1) if((strcmp(cmdtext,%1,true,strlen(%1))==0)&&(((cmdtext[strlen(%1)]==0)&&(d%1(playerid,"")))||((cmdtext[strlen(%1)]==32)&&(d%1(playerid,cmdtext[strlen(%1)+1]))))) return 1
После этого ищем public OnPlayerCommandText(playerid, cmdtext[]) и туда вставляем: ​
PHP:
    new WantedPoints[MAX_PLAYERS]; 
  new WantLawyer[MAX_PLAYERS]; 
  new giveplayerid; 
  new string[256]; 
  new cmd[256],tmp[256]; 
  new idx; 
  new glob973C[200]; 
  new giveplayer[MAX_PLAYER_NAME]; 
  new sendername[MAX_PLAYER_NAME]; 
  new var4[256]; 
  new var8 = 0; 
  new var2[24]; 
  new gTeam[MAX_PLAYERS]; 
  new OnDuty[MAX_PLAYERS]; 
  cmd = strtok(cmdtext, idx); 
  if(strcmp(cmd, "/arrest", true) == 0) 
  { 
   if(IsPlayerConnected(playerid)) 
   { 
  if(gTeam[playerid] == 7 || (playerid)) //в место 7 поставите на свое...который скин может использовать у меня это копы. 
  { 
  if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1) 
  { 
  SendClientMessage(playerid, COLOR_GREY, " Вы не обязаные!"); 
  return 1; 
  } 
    if(PlayerToPoint(3.2,playerid,-1604.7903,719.2490,11.8317)) 
  { 
  SendClientMessage(playerid, COLOR_GREY, " Вы не около тюрьмы!"); 
  return 1; 
  } 
  tmp = strtok(cmdtext, idx); 
  if(!strlen(tmp)) 
  { 
  SendClientMessage(playerid, COLOR_RED, " Подсказка: /arrest [ID] [время] [штраф]"); 
  return 1; 
  } 
   if(strval(tmp) == playerid) { 
    SendClientMessage(playerid, COLOR_RED, "Вы не можете себя арестовать"); 
     return 1; 
     } 
     giveplayerid = strval(tmp); 
    if(!IsPlayerConnected(giveplayerid)) 
    { 
     format(string, sizeof(string), "ID (%d) Не подключен", giveplayerid); 
    SendClientMessage(playerid, 0xFF9900AA, string); 
    return 1; 
     } 
  new pname[24]; 
  GetPlayerName(giveplayerid, pname, 24); 
  if(GetPlayerWantedLevel(giveplayerid) <= 2) 
  { 
  format(string, sizeof(string), "%s(%d) Ты не можешь арестовать нерозыскомого игрока",pname,giveplayerid); 
  SendClientMessage(playerid,COLOR_RED,string); 
     return 1; 
     } 
     if(GetDistanceBetweenPlayers(playerid,giveplayerid) > 5) { 
     format(string, sizeof(string), "%s(%d) Слишком далеко. Ты не можешь его арестовать",pname,giveplayerid); 
     SendClientMessage(playerid,COLOR_RED,string); 
     return 1; 
     } 
     if(IsPlayerInAnyVehicle(giveplayerid)) { 
     format(string, sizeof(string), "%s(%d) Сидит в авто. Вытащи его из авто прежде чем использовать эту комманду.",pname,giveplayerid); 
     SendClientMessage(playerid,COLOR_RED,string); 
     return 1; 
     } 
     SetPlayerVirtualWorld(giveplayerid,0); 
     if(GetPlayerWantedLevel(playerid) >=1) { 
     SendClientMessage(playerid,COLOR_RED,"Вы не можете использовать эту команду, если Вы разыскиваетесь полицией"); 
     return 1; 
     } 
  if(glob973C[var8] == 1) 
  { 
  format(var4, 256, "%s(%d) уже отбывает срок.", var2, var8); 
  SendClientMessage(playerid, 0xFF9900AA, var4); 
  return 1; 
  } 
  new playa,time,price; 
  playa = ReturnUser(tmp); 
  tmp = strtok(cmdtext, idx); 
  time= strval(tmp); 
  if(time < 1 || time > 5) { SendClientMessage(playerid, COLOR_GREY, " Время от 1 до 5!"); return 1; } 
  tmp = strtok(cmdtext, idx); 
  price = strval(tmp); 
  if(price < 10000 || price > 50000) { SendClientMessage(playerid, COLOR_GREY, " Штраф от $10000 до 50000!"); return 1; } 
  if(IsPlayerConnected(playa)) 
  { 
  if(GetDistanceBetweenPlayers(playerid,playa) < 5) 
  { 
  GetPlayerName(playa, giveplayer, sizeof(giveplayer)); 
  GetPlayerName(playerid, sendername, sizeof(sendername)); 
  format(string, sizeof(string), "* Вы арестовали %s на %d минут, штраф: $%d!", giveplayer,time,price); 
  SendClientMessage(playerid, COLOR_LIGHTBLUE, string); 
  ServerGivePlayerMoney(playa, -price); 
  format(string, sizeof(string), "%s арестовал тебя на %d минут, штраф: $%d", sendername,time,price); 
  SendClientMessage(playa, COLOR_LIGHTBLUE, string); 
  ResetPlayerWeapons(playa); 
  if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1) 
  { 
  format(string, sizeof(string), "<< Полицейский : %s арестовал подозреваемого %s >>", sendername, giveplayer); 
  OOCNews(COLOR_LIGHTRED, string); 
   } 
  else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2) 
  { 
  format(string, sizeof(string), "<< Федеральное Бюро Расследования : %s арестовал подозреваемого %s >>", sendername, giveplayer); 
  OOCNews(COLOR_LIGHTRED, string); 
  } 
  else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3) 
  { 
  format(string, sizeof(string), "<< Военный : %s арестовал подозреваемого %s >>", sendername, giveplayer); 
  OOCNews(COLOR_LIGHTRED, string); 
  } 
  SetPlayerInterior(playa, 10); 
  SetPlayerPos(playa,219.5246,111.0973,999.0156); 
  PlayerInfo[playa][pJailTime] = time * 60; 
  PlayerInfo[playa][pJailed] = 1; 
  PlayerInfo[playa][pArrested] += 1; 
  WantedPoints[playa] = 0; 
  WantLawyer[playa] = 1; 
  TogglePlayerControllable(playa, 1); 
   } 
  } 
  else 
  { 
  SendClientMessage(playerid, COLOR_GREY, " Неправильный ID!."); 
  return 1; 
  } 
   } 
  else 
  { 
  SendClientMessage(playerid, 0xFF9900AA, " Только копы могут использовать эту команду!"); 
  return 1; 
  } 
  }//not connected 
  return 1; 
  }
Примерно так должен быть public: ​
PHP:
public OnPlayerCommandText(playerid, cmdtext[]) 
{ 
  new WantedPoints[MAX_PLAYERS]; 
  new WantLawyer[MAX_PLAYERS]; 
  new giveplayerid; 
  new string[256]; 
  new cmd[256],tmp[256]; 
  new idx; 
  new glob973C[200]; 
  new giveplayer[MAX_PLAYER_NAME]; 
  new sendername[MAX_PLAYER_NAME]; 
  new var4[256]; 
  new var8 = 0; 
  new var2[24]; 
  new gTeam[MAX_PLAYERS]; 
  new OnDuty[MAX_PLAYERS]; 
  cmd = strtok(cmdtext, idx); 
  if(strcmp(cmd, "/arrest", true) == 0) 
  { 
   if(IsPlayerConnected(playerid)) 
   { 
  if(gTeam[playerid] == 7 || (playerid)) //в место 7 поставите на свое...который скин может использовать у меня это копы. 
  { 
  if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1) 
  { 
  SendClientMessage(playerid, COLOR_GREY, " Вы не обязаные!"); 
  return 1; 
  } 
    if(PlayerToPoint(3.2,playerid,-1604.7903,719.2490,11.8317)) 
  { 
  SendClientMessage(playerid, COLOR_GREY, " Вы не около тюрьмы!"); 
  return 1; 
  } 
  tmp = strtok(cmdtext, idx); 
  if(!strlen(tmp)) 
  { 
  SendClientMessage(playerid, COLOR_RED, " Подсказка: /arrest [ID] [время] [штраф]"); 
  return 1; 
  } 
   if(strval(tmp) == playerid) { 
    SendClientMessage(playerid, COLOR_RED, "Вы не можете себя арестовать"); 
     return 1; 
     } 
     giveplayerid = strval(tmp); 
    if(!IsPlayerConnected(giveplayerid)) 
    { 
     format(string, sizeof(string), "ID (%d) Не подключен", giveplayerid); 
    SendClientMessage(playerid, 0xFF9900AA, string); 
    return 1; 
     } 
  new pname[24]; 
  GetPlayerName(giveplayerid, pname, 24); 
  if(GetPlayerWantedLevel(giveplayerid) <= 2) 
  { 
  format(string, sizeof(string), "%s(%d) Ты не можешь арестовать нерозыскомого игрока",pname,giveplayerid); 
  SendClientMessage(playerid,COLOR_RED,string); 
     return 1; 
     } 
     if(GetDistanceBetweenPlayers(playerid,giveplayerid) > 5) { 
     format(string, sizeof(string), "%s(%d) Слишком далеко. Ты не можешь его арестовать",pname,giveplayerid); 
     SendClientMessage(playerid,COLOR_RED,string); 
     return 1; 
     } 
     if(IsPlayerInAnyVehicle(giveplayerid)) { 
     format(string, sizeof(string), "%s(%d) Сидит в авто. Вытащи его из авто прежде чем использовать эту комманду.",pname,giveplayerid); 
     SendClientMessage(playerid,COLOR_RED,string); 
     return 1; 
     } 
     SetPlayerVirtualWorld(giveplayerid,0); 
     if(GetPlayerWantedLevel(playerid) >=1) { 
     SendClientMessage(playerid,COLOR_RED,"Вы не можете использовать эту команду, если Вы разыскиваетесь полицией"); 
     return 1; 
     } 
  if(glob973C[var8] == 1) 
  { 
  format(var4, 256, "%s(%d) уже отбывает срок.", var2, var8); 
  SendClientMessage(playerid, 0xFF9900AA, var4); 
  return 1; 
  } 
  new playa,time,price; 
  playa = ReturnUser(tmp); 
  tmp = strtok(cmdtext, idx); 
  time= strval(tmp); 
  if(time < 1 || time > 5) { SendClientMessage(playerid, COLOR_GREY, " Время от 1 до 5!"); return 1; } 
  tmp = strtok(cmdtext, idx); 
  price = strval(tmp); 
  if(price < 10000 || price > 50000) { SendClientMessage(playerid, COLOR_GREY, " Штраф от $10000 до 50000!"); return 1; } 
  if(IsPlayerConnected(playa)) 
  { 
  if(GetDistanceBetweenPlayers(playerid,playa) < 5) 
  { 
  GetPlayerName(playa, giveplayer, sizeof(giveplayer)); 
  GetPlayerName(playerid, sendername, sizeof(sendername)); 
  format(string, sizeof(string), "* Вы арестовали %s на %d минут, штраф: $%d!", giveplayer,time,price); 
  SendClientMessage(playerid, COLOR_LIGHTBLUE, string); 
  ServerGivePlayerMoney(playa, -price); 
  format(string, sizeof(string), "%s арестовал тебя на %d минут, штраф: $%d", sendername,time,price); 
  SendClientMessage(playa, COLOR_LIGHTBLUE, string); 
  ResetPlayerWeapons(playa); 
  if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1) 
  { 
  format(string, sizeof(string), "<< Полицейский : %s арестовал подозреваемого %s >>", sendername, giveplayer); 
  OOCNews(COLOR_LIGHTRED, string); 
   } 
  else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2) 
  { 
  format(string, sizeof(string), "<< Федеральное Бюро Расследования : %s арестовал подозреваемого %s >>", sendername, giveplayer); 
  OOCNews(COLOR_LIGHTRED, string); 
  } 
  else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3) 
  { 
  format(string, sizeof(string), "<< Военный : %s арестовал подозреваемого %s >>", sendername, giveplayer); 
  OOCNews(COLOR_LIGHTRED, string); 
  } 
  SetPlayerInterior(playa, 10); 
  SetPlayerPos(playa,219.5246,111.0973,999.0156); 
  PlayerInfo[playa][pJailTime] = time * 60; 
  PlayerInfo[playa][pJailed] = 1; 
  PlayerInfo[playa][pArrested] += 1; 
  WantedPoints[playa] = 0; 
  WantLawyer[playa] = 1; 
  TogglePlayerControllable(playa, 1); 
   } 
  } 
  else 
  { 
  SendClientMessage(playerid, COLOR_GREY, " Неправильный ID!."); 
  return 1; 
  } 
   } 
  else 
  { 
  SendClientMessage(playerid, 0xFF9900AA, " Только копы могут использовать эту команду!"); 
  return 1; 
  } 
  }//not connected 
  return 1; 
  } 
  return 0; 
}
И после этого добавляем функции: ​
PHP:
DengiTime[playerid] = 15; 
if(money > 0) 
{ 
PlayerInfo[playerid][pCash] += money; 
GivePlayerMoney(playerid,money); 
} 
else 
{ 
GivePlayerMoney(playerid,money); 
PlayerInfo[playerid][pCash] += money; 
} 
return 1; 
} 
public jailtimer() 
  { 
      for(new i = 0; i < MAX_PLAYERS; i++) { 
          if(PlayerInfo[i][pJailed] > 0) { 
              if(PlayerInfo[i][pJailTime] > 0) { 
                  PlayerInfo[i][pJailTime]--; 
              } 
              if(PlayerInfo[i][pJailTime] <= 0) { 
                  PlayerInfo[i][pJailTime] = 0; 
                  PlayerInfo[i][pJailed] = 0; 
                  switch(random(2)) { //где 2 там меняем скок камер мы создали.по счету мы щяс создали 2. а это и есть case 0 , case 1 
                      case 0: //это 1 тюрьма 
                      { 
                          SetPlayerInterior(i, 0); //тут интейнер 
                          SetPlayerPos(i, X, Y, Z); //тут координаты 
                          return 1; 
                      } 
                      case 1: //это у нас 2 тюрьма. 
                      { 
                          SetPlayerInterior(i, 0); //тут интейнер 
                          SetPlayerPos(i, X, Y, Z); //тут координаты 
                          return 1; 
                      } 
                  } 
              } 
          } 
      } 
      return 1; 
  }
После этого ищем public OnGameModeInit и туда вставляем: ​
PHP:
SetTimer("jailtimer", 1000, 1);
где 1000 - это у нас стандартно игрок будет сидеть 1 мин в тюрьме!
Вырезано с мода​
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу