Mozart_Amadei
Умник
Итак сейчас я вам расскажу, как сделать фракционные ворота, работающие по нажатию кнопки. Когда вы пешком, это кнопка C, а когда вы за рулем это кнопка H, также эти ворота можно открыть командой, которую вы установите. Итак приступим.
В Поиске Вибаваем Forward Там где Много Форвародов Добовляем на 2 строчку
Далее ко Всем New Добовляем,Также там где будет много new туда ставим
Далее Вбиваем в Поиске CreateDynamicObject(там их будет Мноого)В Самый Низ Вставляем
//=======Фрак Ворота
(пример VorotaGate = CreateObject(988,1422.341,-1838.589,13.586,0.0,0.0,-90.000);
Далее в Поиске Пишем OnPlayerCommandText
Потом Ниже неё пишем
в Сааамый Конец Мода Добовляем
Дальше в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
Пишем
Итак Сейчас Напишу Часто Задоваемые Вопросы
1.На одни ворота используется одна команда. Например если вы поставили ворота в сапр с командой /открыть, то если вы будите ставить еще где то ворота то команду уже другую пишем например /открыть2.
2.id кнопки не меняем, а то все глюкнет.
3.Теперь насчет координат задают много вопросов. Так слушаем:
Вот мой закрытые ворота CreateObject(988,1422.341,-1838.589,13.586,0.0,0.0,-90.000);
Из них в координаты закрытых пойдут токо числа 1422.341,-1838.589,13.586
Тоже самое и с открытыми.
4.В этой строчке MoveObject(VorotaGate,1422.341,-1844.044,13.586,2.00);
Цифры 2.00 не трогаем!!! Их оставляем как и есть, просто меням координаты на свои.
Таких строчек две в команде одна в шаге 4 и в шаге 5 одна.
5. В этой строчке if(!PlayerToPoint(15.0,playerid,1422.341,-1844.044,13.586))
15.0-это место открывания ворот. Чем больше цифра чем с большего расстояния можно открыть ворота.
Автор:Sasha
Доделал:Mozart_Amadei(так как там не все было)
Незабываем Про Спасибо)и +сики)
В Поиске Вибаваем Forward Там где Много Форвародов Добовляем на 2 строчку
PHP:
forward VorotaGateClose();//
PHP:
new VorotaGate;//
new VorotaGateTimer;//
Далее Вбиваем в Поиске CreateDynamicObject(там их будет Мноого)В Самый Низ Вставляем
//=======Фрак Ворота
PHP:
VorotaGate = тут сам объект ворота в закрытом состоянии.
Далее в Поиске Пишем OnPlayerCommandText
Потом Ниже неё пишем
PHP:
//==============================================================================
if (strcmp(cmdtext, "/команда", true) == 0) //ваша команда на открытие
{
if(PlayerInfo[playerid][pMember] == 7 ||PlayerInfo[playerid][pLeader] == 7) //7 это id фракции
{
if(!PlayerToPoint(15.0,playerid,1422.341,-1844.044,13.586)) //тут координаты открытых ворот. Меняем на свои.
{
return 1;
}
MoveObject(VorotaGate,1422.341,-1844.044,13.586,2.00); //тут координаты открытых ворот. Меняем на свои.2.00 не трогать!
VorotaGateTimer = SetTimer("VorotaGateClose", 10000, 0);
PlayerPlaySound(playerid, 1190, 0.0, 0.0, 0.0); //Звук открывания ворот
GetPlayerName(playerid, sendername, sizeof(sendername));
new stringtosee[128];
new ftext[32];
if(PlayerInfo[playerid][pMask] == 1) { format(stringtosee, sizeof(stringtosee), "* Незнакомец достаёт пульт управления и открывает ворота.", ftext); }
else { format(stringtosee, sizeof(stringtosee), "* %s достаёт пульт управления и открывает ворота.", sendername , ftext); }
ProxDetector(15.0, playerid, stringtosee, 0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA);
return 1;
}
else
{
return 1;
}
}
в Сааамый Конец Мода Добовляем
PHP:
public VorotaGateClose(){
MoveObject(VorotaGate,1422.341,-1838.589,13.586,2.00);//координаты закрытых ворот. Меняем на свои.2.00 не трогать!
KillTimer(VorotaGateTimer);
return 1;}
Пишем
PHP:
if (newkeys == 2) // 2 это ид кнопки, не трогать
{
OnPlayerCommandText(playerid,"/команда"); // тут пишем ту команду, которая у вас стоит на открывание ворот
}
1.На одни ворота используется одна команда. Например если вы поставили ворота в сапр с командой /открыть, то если вы будите ставить еще где то ворота то команду уже другую пишем например /открыть2.
2.id кнопки не меняем, а то все глюкнет.
3.Теперь насчет координат задают много вопросов. Так слушаем:
Вот мой закрытые ворота CreateObject(988,1422.341,-1838.589,13.586,0.0,0.0,-90.000);
Из них в координаты закрытых пойдут токо числа 1422.341,-1838.589,13.586
Тоже самое и с открытыми.
4.В этой строчке MoveObject(VorotaGate,1422.341,-1844.044,13.586,2.00);
Цифры 2.00 не трогаем!!! Их оставляем как и есть, просто меням координаты на свои.
Таких строчек две в команде одна в шаге 4 и в шаге 5 одна.
5. В этой строчке if(!PlayerToPoint(15.0,playerid,1422.341,-1844.044,13.586))
15.0-это место открывания ворот. Чем больше цифра чем с большего расстояния можно открыть ворота.
Автор:Sasha
Доделал:Mozart_Amadei(так как там не все было)
Незабываем Про Спасибо)и +сики)
Последнее редактирование:
