Потом создать эти объекты : Опора для шлакбаума. Шлагбаум в закрытом положении. Шлагбаум в открытом положении.
Теперь узнав координаты проделаем следующее. Ставим эту значение
Code
forward SlakClose1();
вверх где все forward\'ы.
Потом ставим где все new
Code
new Slak1;
Далее в public OnGameModeInit() добавляем :
Code
Slak1= CreateObject(968,Координаты закрытого шлагбаума);//968 - ID шлагбаума. CreateObject(966,Координаты неподвижного основания шлагбаума);//966 -Основание шлагбаума
Далее в public OnPlayerCommandText(playerid, cmdtext[])
Добавляем:
Code
if(strcmp(cmdtext, "/Команда для открытия шлаг", 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 который будет выглядеть так :
Code
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 секунд(Установленное время). }
Это был пример простого шлагбаума который могут открываться все кто введёт команду. Если вы хотите чтобы только могли фракции открыват:
Code
if(PlayerInfo[playerid][pMember] == [Номер фракции] || PlayerInfo[playerid][pLeader] == [Номер фракции]) // НОмер фракции указывать без "[" *"]" То есть все тоже самое,но :
public OnPlayerCommandText(playerid, cmdtext[])
Если не понятно куда ставить то выглядит так.
Code
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); SetTimer("SlakClose1", 5000, 0); // Эта строка вызовит таймер который закроет Шлагбаум через 5000 милисекунд (5 секунд) SendClientMessage(playerid, COLOR_GREY, " Проезжайте! "); } else { SendClientMessage(playerid, COLOR_GREY, " Вы не ..... "); } else { SendClientMessage(playerid, COLOR_GREY, " вы далеко от шлагбаума"); return 1; } }