Перейти к содержанию
Авторизация  
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-файлов, или продолжить без изменения настроек.