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

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

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

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

Ворота с паролем(не только ворота, можно сделать все, что хочешь)

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

slonplutalov

Умник
У меня ворота-бункер в зоне 51

Добавляем форварды

PHP:
forward BunkerClose();//таймер
forward IsAtCandyBunker(playerid);//место ввода пароля
Добавляем new
PHP:
new bunkers;
new bunkpass;
new bunker;
new bunker1;
В public OnGameModeInit()
PHP:
bunkers = 0;
new bpass = 1000000 + random(10000000);//рандомный пароль мин 1000000 макс 10000000
bunkpass = bpass;//устанавливаем пароль
Добавляем объекты

PHP:
bunker = CreateObject(2927,215.87713623,1875.73901367,13.93899250,0.00000000,0.00000000,0.00000000); //object(a51_blastdoorr) (1)
bunker1 = CreateObject(2927,211.80000305,1875.73901367,13.93899250,0.00000000,0.00000000,180.00000000); //object(a51_blastdoorr) (2)
CreateObject(2190,209.73933411,1876.87145996,13.28450108,0.00000000,0.00000000,96.00000000); //object(pc_1) (1)
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
PHP:
if (newkeys == 16)
	{
		if (IsAtCandyBunker(playerid))
		{
            TogglePlayerControllable(playerid, 1);
            new strina[256];
			format(strina,sizeof(strina),"Введите пароль",PlayerInfo[playerid][pAccount]);
	        ShowPlayerDialog(playerid,135,DIALOG_STYLE_INPUT,strina,"Введите пароль от бункера","Ввел","Отмена");//ID диалога вставьте свой(тут 135)
		 }
	}
Добавляем диалог
PHP:
if(dialogid == 135)//Ваш диалог
	{
	    if(response == 1)
	    {
			if(!strlen(inputtext))
			{
			    SendClientMessage(playerid,COLOR_GREY,"Вы не ввели пароль");
			    PlayerPlaySound(playerid, 1055, 0.0, 0.0, 0.0);
			    return 1;
			}
			new vvel;
			vvel = strval(inputtext);
			if(vvel == bunkpass)
			{
                if(bunkers == 0)
                {
			        MoveObject(bunker, 219.97000122,1875.73901367,13.93899250,1);
                    MoveObject(bunker1, 207.80000305,1875.73901367,13.93899250,1);
                    PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
                    SendClientMessage(playerid, COLOR_YELLOW,"Бункер открыт на 10 секунд");
                    if(statusa >= 25)
                    {
                        statusa -= 25;
		            }
		            bunkers = 1;
		            SetTimer("BunkerClose", 10000, 0);
				}
	        }
	        else
	        {
				SendClientMessage(playerid, COLOR_RED,"Пароль неверен");
				PlayerPlaySound(playerid, 1055, 0.0, 0.0, 0.0);
			}
        }
	}
Добавляем паблик
PHP:
public BunkerClose()
{
    MoveObject(bunker, 215.87713623,1875.73901367,13.93899250,1);
    MoveObject(bunker1, 211.80000305,1875.73901367,13.93899250,1);
    if(statusa <= 75 && bunkers == 1)
    {
        statusa += 25;
    }
    bunkers = 0;
    return 1;
}
Добавляем паблик

PHP:
public IsAtCandyBunker(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 2, 210.4791,1877.2212,13.1406)) return 1;
else return 0;
}
Добавляем команду

PHP:
if(!strcmp(cmdtext, "/bpass", true)) //команду можете изменить на свою
{
    if(PlayerInfo[playerid][pLeader] == 19 || PlayerInfo[playerid][pAdmin] > 0)//Можете изменить условие, у меня: Лидер 19(зона 51) и админы
    {
        format(string, sizeof(string), "Пароль бункера: %d", bunkpass);
	    SendClientMessage(playerid, COLOR_WHITE, string);
        return 1;
    }
}

Все, если что то забыл, дополню, скажите если не будет работать
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу