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

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

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

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

Система гардероба для законников как на samp-rp.ru

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

Nike_

Умник
Этот мануал сделан в качестве примера!
Для других законников вы сделаете сами основываясь на этом коде
Просто если делать тут для всех то это заёмет гораздо больше времени

Я видел похожую тему но там был так сказать просто примерный код для основы!
Тут я основываюсь на переменных аккаунта игрока со значениями 0 и 1

Начнём

Ко всем new
PHP:
new formacopls;
В public OnPlayerPickUpPickup(playerid, pickupid) // добавим
PHP:
else if(pickupid == formacopls)
  {
if(PlayerInfo[playerid][pMember] == 1)
{
  ShowPlayerDialog(playerid,1010,DIALOG_STYLE_MSGBOX  , "Раздевалка","Выберите одежду", "Форма", "Обычная");
  }
}
В enum pInfo добавим
PHP:
pFormaCopLs,
В public OnPlayerConnect(playerid) добавим
PHP:
PlayerInfo[playerid][pFormaCopLs] = 0;
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) добавим
PHP:
  case 1010:
    {
        if(response)
        {  
    if(PlayerInfo[playerid][pFormaCopLs] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже надели форму!");
    SendClientMessage(playerid, COLOR_GREEN, "Рабочий день начат");  
    SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); 
    PlayerInfo[playerid][pFormaCopLs] = 1;  
    return 1; 
   }else
    {  
    if(PlayerInfo[playerid][pFormaCopLs] == 0) return SendClientMessage(playerid, COLOR_GREY, "Вы не надевали форму!"); 
    SendClientMessage(playerid, COLOR_GREEN, "Рабочий день окончен");  
    SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]);  
    PlayerInfo[playerid][pFormaCopLs] = 0;  
     } 
  }
public SetPlayerSpawn(playerid) заменим
PHP:
if(PlayerInfo[playerid][pMember] > 0)
	{
	SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);
	}
На
PHP:
if(PlayerInfo[playerid][pMember] > 2)
	{
	SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);
	}
	if(PlayerInfo[playerid][pMember] == 1)
	{
	if(PlayerInfo[playerid][pFormaCopLs] == 1)
	{
	SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);
	}
	if(PlayerInfo[playerid][pFormaCopLs] == 0)
	{
	SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]);
	}
	}
Этим мы сделаем так что если человек без формы он будет спауница в обычном скине

В том же public SetPlayerSpawn(playerid) ниже заменим case 1; на
PHP:
case 1:
			{
			if(PlayerInfo[playerid][pFormaCopLs] == 1)  
      {
		    SetPlayerInterior(playerid, 6);
		    SetPlayerPos(playerid, 235.8750,73.5106,1005.0391);
		    PlayerInfo[playerid][pInt] = 6;
		    SetPlayerVirtualWorld(playerid, 0);
		    return 1;
			}
			}
У нас получиться если человек без формы он не спауница в участке а на респауне со всеми

Далее в public OnPlayerSelectedMenuRow(playerid, row) там где
начинаются скины ЛСПД - примерно так - case 1: //LSPD
Заменим этот case 1; на этот или тем самым просто добавим туда проверку
PHP:
case 1: //LSPD
				{
				if(PlayerInfo[playerid][pFormaCopLs] == 1)
				{ 
				     if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, JoinPed[0][0]); SelectCharPlace[playerid] = 2; InviteSkin[playerid] = JoinPed[0][0]; }
				    else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[1][0]); SelectCharPlace[playerid] = 3; InviteSkin[playerid] = JoinPed[1][0]; }
				    else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, JoinPed[2][0]); SelectCharPlace[playerid] = 4; InviteSkin[playerid] = JoinPed[2][0]; }
				    else if(SelectCharPlace[playerid] == 4) { SetPlayerSkin(playerid, JoinPed[3][0]); SelectCharPlace[playerid] = 5; InviteSkin[playerid] = JoinPed[3][0]; }
				    else if(SelectCharPlace[playerid] == 5) { SetPlayerSkin(playerid, JoinPed[4][0]); SelectCharPlace[playerid] = 6; InviteSkin[playerid] = JoinPed[4][0]; }
				    else if(SelectCharPlace[playerid] == 6) { SetPlayerSkin(playerid, JoinPed[5][0]); SelectCharPlace[playerid] = 7; InviteSkin[playerid] = JoinPed[5][0]; }
				    else if(SelectCharPlace[playerid] == 7) { SetPlayerSkin(playerid, JoinPed[6][0]); SelectCharPlace[playerid] = 8; InviteSkin[playerid] = JoinPed[6][0]; }
				    else if(SelectCharPlace[playerid] == 8) { SetPlayerSkin(playerid, JoinPed[7][0]); SelectCharPlace[playerid] = 1; InviteSkin[playerid] = JoinPed[7][0]; }
		      		ShowMenuForPlayer(ChoseSkin,playerid);
				}
				}
Этим мы сделаем так чтобы - когда игрок приходил брать скин без формы
ему предлагались скины гражданских

Далее заменим в public OnPlayerStateChange(playerid, newstate, oldstate) эти строчки
PHP:
if(newcar >= sapdcar[0] && newcar <= sapdcar[26])
		{
		    if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1) { }
			else
			{
			    SendClientMessage(playerid, COLOR_GRAD1, "Вы не состоите в LSPD!");
				RemovePlayerFromVehicleRich(playerid);
			}
		}
На эти
PHP:
if(newcar >= sapdcar[0] && newcar <= sapdcar[26])
		{
		    if(PlayerInfo[playerid][pFormaCopLs] == 1) { }
			else
			{
			    SendClientMessage(playerid, COLOR_GRAD1, "Вы не состоите в LSPD!");
				RemovePlayerFromVehicleRich(playerid);
			}
		}
Тем самым если игрок без формы из машины по прежнему выкидывает

Далее добавим в public OnPlayerRegister(playerid, password[])
PHP:
ini_setInteger(File,"FormaCopLs",PlayerInfo[playerid][pFormaCopLs]);
И в public OnPlayerLogin(playerid,password[])
PHP:
ini_getInteger(File,"FormaCopLs",PlayerInfo[playerid][pFormaCopLs]);
Потом в команду /uninvite добавим к ЛСПД
PHP:
PlayerInfo[para1][pFormaCopLs] = 0;
В public OnGameModeInit()
PHP:
formacopls = CreatePickup(1275, 23, 255.1582,78.4345,1003.6406);
В команде /makeleader замените эту строчку
PHP:
if(level == 1){   PlayerInfo[para1][pRank] = 15;	InviteSkin[para1] = 280; if(PlayerInfo[para1][pAdmin] <=0) { ini_removeKey  (iniFile, "LSPD" );
					    ini_setString(iniFile, "LSPD",giveplayer); }}
На эту
PHP:
if(level == 1){   PlayerInfo[para1][pRank] = 15;	PlayerInfo[para1][pFormaCopLs] = 1;	InviteSkin[para1] = 280; if(PlayerInfo[para1][pAdmin] <=0) { ini_removeKey  (iniFile, "LSPD" );
					    ini_setString(iniFile, "LSPD",giveplayer); }}
Потом если вы хотите чтобы игрок который без формы
не мог пользоваться командами полицейских
то нужно во всех его командах заменить проверку
PHP:
if(PlayerInfo[playerid][pMember] == 1)
На
PHP:
if(PlayerInfo[playerid][pFormaCopLs] == 1)
Все теперь человек будучи полицейским LS при спауне
будет респауница на спауне со всеми
или у себя дома если он имеется
и ему будет нужно ехать в участок в раздевалку - вставать на пикап
чтобы надеть форму и начать рабочий день
Вообщем как на samp-rp.ru

Автор: Nike_
Будут вопросы/проблемы пишите всегда помогу!
:ay::ay::ay::ay::ay::ay::ay::ay:
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу