Для этого вам нужно МТА.
Потом создать эти объекты :
Опора для шлакбаума.
Шлагбаум в закрытом положении.
Шлагбаум в открытом положении.
Теперь узнав координаты проделаем следующее.
Ставим эту значение forward SlakClose1(); вверх где все forward\'ы.
Потом ставим где все new
Далее в 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, " Вы не у шлагбаума. ");
}
}
Добавлено (02.07.2011, 16:39)
---------------------------------------------
Теперь мы создаём в конце мода 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] == [Номер фракции]) // НОмер фракции указывать без "[" *"]"
То есть все тоже самое,но :
Code
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;
}
}
Автор: Rasim_Gabitov