Перейти к содержанию
Авторизация  
Marvellous

Ворота на кнопку/сигналом

Рекомендуемые сообщения

Marvellous

Всем привет,а точнее доброй ночи!

Сегодня мне в соц.сеть написал пользователь с данного портала и попросил помочь сделать ему ворота!

Но ворота нужны ему были что бы на кнопку Y и не сидя в машине!

 

Посмотрел я данный портал и не нашел этого решения,есть решение только в машине,а пешком нет!

 

И так думаю начнем:

 

Ко всем new

new GateCop; 
new GateMove = 0;

В public OnPlayerKeyStateChange добавим(для тех кто в авто)

if(newkeys == 65536 && !IsPlayerInAnyVehicle(playerid) || newkeys == 2 && IsPlayerInAnyVehicle(playerid))
        {
        if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)//ID фракции пишем свой
        if(IsPlayerInRangeOfPoint( playerid, 15.0, 2579.8472, -2435.3928, 23.5669))//координаты закрытых ворот
        {
        if(GateMove == 0)
        {
        MoveObject(GateCop, 2579.8472, -2435.3928, 17.9227, 2.0);//координаты открытых
        GateMove = 1;
        }
        else if(GateMove == 1)
        {
        MoveObject(GateCop, 2579.8472, -2435.3928, 23.5669, 2.0);//координаты закрытых
        GateMove = 0;
        }
        }
        }
 

В public OnGameModeInit добавим:

GateCop = CreateObject(980, 2579.85, -2435.39, 23.57,   0.00, 0.00, 90.00);//закрытые

Ну и:

 

В public OnPlayerKeyStateChange добавим(для тех кто в пешком "Y")

if(newkeys & 65536 || newkeys & 2)        {
        if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)//ID фракции пишем свой
        if(IsPlayerInRangeOfPoint( playerid, 15.0, 2579.8472, -2435.3928, 23.5669))//координаты закрытых ворот
        {
        if(GateMove == 0)
        {
        MoveObject(GateCop, 2579.8472, -2435.3928, 17.9227, 2.0);//координаты открытых
        GateMove = 1;
        }
        else if(GateMove == 1)
        {
        MoveObject(GateCop, 2579.8472, -2435.3928, 23.5669, 2.0);//координаты закрытых
        GateMove = 0;
        }
        }
        }

Ну вот и все! Спасибо за внимание!

Автор: Carl

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Серый Дождь

Полезная функция, кстати, на некоторых серверах можно открывать ворота/шлагбаумы пешком, например полицейские на посту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

@Серый Дождь,  Пешком,но водя команду,к примеру "open", а тут просто нажали "Y" и они открылись,не нужно писать ни что уже!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

@Marvellous, лучше так

new bool: GateMove = false;

и тогда

GateMove == true/false

Потому что ты приравниваешь её к нулю, если ворота откроешь, не закроешь и выйдешь с сервера, они будут открываться, потому что переменная будет обнулена.

А вообще, лучше так:

if(newkeys == 65536 && !IsPlayerInAnyVehicle(playerid) || newkeys == 2 && IsPlayerInAnyVehicle(playerid))
{
	if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)//если так оставить, то это бессмысленная проверка, так нужно:
	if(PlayerInfo[playerid][pLeader] != 1 || PlayerInfo[playerid][pMember] != 1) return SCM(playerid, цвет, "Вы не состоите во фракции 1!");//ну или:
	if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)//если во фраке 1
	{
		if(IsPlayerInRangeOfPoint( playerid, 15.0, 2579.8472, -2435.3928, 23.5669))//координаты закрытых ворот
		{
			if(GateMove == false)
			{
				MoveObject(GateCop, 2579.8472, -2435.3928, 17.9227, 2.0);//координаты открытых
				GateMove = 1;
			}
			else
			{
				MoveObject(GateCop, 2579.8472, -2435.3928, 23.5669, 2.0);//координаты закрытых
				GateMove = 0;
			}
		}
	}
}
if(newkeys & 65536 || newkeys & 2)
{
	if(PlayerInfo[playerid][pLeader] != 1 || PlayerInfo[playerid][pMember] != 1) return SCM(playerid, цвет, "Вы не состоите во фракции 1!");//ID фракции пишем свой
	if(IsPlayerInRangeOfPoint( playerid, 15.0, 2579.8472, -2435.3928, 23.5669))//координаты закрытых ворот
	{
		if(GateMove == false)
		{
			MoveObject(GateCop, 2579.8472, -2435.3928, 17.9227, 2.0);//координаты открытых
			GateMove = 1;
		}
		else
		{
			MoveObject(GateCop, 2579.8472, -2435.3928, 23.5669, 2.0);//координаты закрытых
			GateMove = 0;
		}
	}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.