Итак, чтобы создать шлагбаум понадобиться: 1) МТА мап эдитор либо просто знания места где должен находиться ваш шлагбаум. 1 шт. 2) Умение читать . 1шт. 3) Руки прямые (Не обязательно). 1-2 шт. Для начала нам нужно создать эти объекты : Опора для шлакбаума. Шлагбаум в закрытом положении. Шлагбаум в открытом положении. Узнав их координаты проделываем следующие: Создаём в своём моде :
В начале где все forward`ы прибавляем ещё один, название роли не играет я создал такой :
forward Shlack(); скобки после слова-обязательны. там же,после всехnew Добовляем ещё один :
new Shlack; Далее в public OnGameModeInit() добовляем
Shlack= CreateObject(968,Координаты закрытого шлагбаума);//968 - ID планки шлагбаума И CreateObject(966,Координаты неподвижного основания шлагбаума);//966 -Основание шлагбаума Далее в public OnPlayerCommandText(playerid, cmdtext[]) Добовляем:
if(strcmp(cmdtext, "/KomandaDlyaOtkritiya", true)==0) { if (PlayerToPoint(7.0,playerid,-1412.812,2638.127,54.688))// Тут Координаты того места откуда можно открыть шлагбаум(x,y,z). { SetObjectRot(Slak1,0.0,0.0,90.937);// Тут используем Последнии 3 значения у ОТКРЫТОЙ палки шлагбаума,тоесть: CreateObject(968,-1412.782,2638.077,55.478,0.0,0.0,90.937); SetTimer("SlakClose1", 5000, 0); // Эта строка вызовит таймер который закроет Шлагбаум через 5000 милисекунд (5 секунд) SendClientMessage(playerid, COLOR_GREY, " Проезжайте! "); } else // А если не в точке указанной выше то : { SendClientMessage(playerid, COLOR_GREY, " Вы не у шлагбаума. "); } }
Теперь мы создаём в конце мода Public который будет выглядеть так : public SlakClose1() { SetObjectRot(Slak1 ,0.0,-90.241,-89.149); // А тут последние три значения в ЗАКРЫТОЙ палке : CreateObject(968,-1412.785,2637.976,55.538,0.0,-90.241,-89.149); Данная строка вернёт в исходное положение Палку шлагбаума через 5 секунд(Установленное время). }
А если вы хотите чтобы только для определённой фракции (наапример), то используйте : if(PlayerInfo[playerid][pMember] == [Номер фракции] || PlayerInfo[playerid][pLeader] == [Номер фракции]) // НОмер фракции указывать без "[" "]" Тоесть все тоже самое,но : public OnPlayerCommandText(playerid, cmdtext[]) Будет выглядеть так:
if(strcmp(cmdtext, "/KomandaDlyaOtkritiya", true)==0) { if(PlayerToPoint(7.0,playerid,-1412.812,2638.127,54.688))// Тут Координаты того места откуда можно открыть шлагбаум(x,y,z). { if(PlayerInfo[playerid][pMember] == Номер фракции || PlayerInfo[playerid][pLeader] == номер Фракции) { SetObjectRot(Slak1,0.0,0.0,90.937);// Тут используем Последнии 3 значения у ОТКРЫТОЙ палки шлагбаума,тоесть: CreateObject(968,-1412.782,2638.077,55.478,0.0,0.0,90.937);
|