Перейти к содержанию
Авторизация  
DoZoR_Team

открытие/закрытие ворота

Рекомендуемые сообщения

DoZoR_Team

Всем привет! Дорогие форумчане как сделать что бы данная воротина(так назовем ее) открывалась только фракциями ДПС,ПДД,Армия? и именно своей командой! Подскажите что да как!Буду благодарен! Скрин и все что нужно выложу ниже!

 Закрытая:

-2395.6216, 1746.6266, 55.4840

Открытая:

-2395.6616, 1746.6866, 58.8922

Ид объекта 4374

 

fe4wW3k.jpg

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Max_Eitzen
new gatestatus;
new GateObject;

public OnGameModeInit()
{
    GateObject = CreateObject(4374, -2395.6216, 1746.6266, 55.4840, 0.0, 0.0, 0.0);//Если ворота будут криво повернуты, замени последние три значения на значения из Map Construction
    Create3DTextLabel("Нажмите «Y»", 0xffffffaa, -2395.6216, 1746.6266, 55.4840, 20.0, 0, 0);
    return true;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys & KEY_YES)//Кнопка Y
    {
        if(PlayerInfo[playerid][pMember] == 3)//Проверка на фракцию 3
        {
            if(!IsPlayerInRangeOfPoint(playerid, 5.0, -2395.6216, 1746.6266, 55.4840)) return true;
            switch(gatestatus)
            {
                case 0: MoveObject(GateObject, -2395.6616, 1746.6866, 58.8922, 2.0);
                case 1: MoveObject(GateObject, -2395.6216, 1746.6266, 55.4840, 2.0);
            }
        }
    }
    return true;
}

Вот пример, изменяйте под себя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ArtemLOL12

@Max_Eitzen,не помогло ворота вообще пропали. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vladimir_Kulkov

@ArtemLOL12,Вы автор темы?! Нет! так что!!! не решайте за других! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ArtemLOL12

, Не по теме - Тот человек зам.создателя моего сервера. Он спросил. А мод у меня. Я его вставил и не работает 

Изменено пользователем ArtemLol12

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vladimir_Kulkov

лол, еще раз повторю!!! Вы не автор темы! Вы не имеете права писать по этому поводу!!! создайте отдельную тему!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DoZoR_Team

,А где тут правила то что нельзя другим спрашивать? зачем создавать новые темы по одному и тому же поводу если можно решить все в одной теме,найти правильный ответ и закрыть тему! 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
vsergeenko

, ты какой то не понятный вообще. Сначала пишешь "лол", а потом официально на "вы" пишешь "Вы не имеете права писать по этому поводу". Как и ответил тебе модератор, в ЕПФ такого пункта нет.

Изменено пользователем JoKeR_2020
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vladimir_Kulkov

,Если Вы не поняли, то Я отношусь с уважением к другому пользователю!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
hteppl

Что за срач в теме?

 

Ко всем переменным 

new gateactekos; // Можете по-своему 
new gatetimeract; // это переменная для таймера…(если вам автоматическое закрытие не нужно не пишите эту строку)

Ко всем #define добавим:

#define COLOR_RED 0xAA3333AA // Это цвет

Ко всем forward ставим:

forward gateactClose(playerid) // в конце это будет пабликом закрытых ворот

В public OnGameModeInit вставим:
 

gateactekos = CreateObject(4374, -2395.6216, 1746.6266, 55.4840,0.0,0.0,90);

Это сам объект ворот (4374 - ид объекта,-2395.6216,1746.6266,55.4840 - Y,X,Z координаты и 0.0,0.0,90 == rY,rX,rZ – угол поворота.) Это координаты закрытых ворот.

 

И так мы создали ворота как объект теперь нам нужно заставить его шевелиться (двигаться)

В public OnPlayerCommandText вставим:

if(!strcmp(cmdtext, "/aopen", true)) //  Команда для открытия ворот
{ 
if(PlayerInfo[playerid][pLeader] == 11 || PlayerInfo[playerid][pMember] == 11) 
// проверка на фракцию, банду .
{ 
if (PlayerToPoint(15, playerid,-2395.6616, 1746.6866, 58.8922)) 
//Где должен стоять игрок что бы ворота открывались (15 == это радиус отталкивается  от координат , playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех), 1823.19,-1861.68,15.025 ==  Y,X,Z  координаты где должен стоять игрок (не забывайте про радиус!) ). 
 { 
MoveObject(gateactekos, -2395.6216, 1746.6266, 55.4840, 2); 
//куда будут двигаться ворота (gateactekos == переменная которой мы обозначили объект в public OnGameModeInit, -2395.6216, 1746.6266, 55.4840 - координаты Y,X,Z куда двигаются ворота,  2 == скорость движения ворот (2 оптимальная)) 
Если вы хотите что бы ворота закрывались автоматически то пишите то что ниже.
//============================== 
SetTimer("gateactClose", 10000, 0); 
gatetimeract = SetTimer("gateactClose", 10000, 0); 
//Таймер открытия через сколько ворота закроются (gateactekos == переменная которой мы обозначили объект в public OnGameModeInit,10000 == время через сколько закроются ворота(указываются в миллисекундах)  
 SendClientMessage(playerid, COLOR_RED," Ворота открылись. Он будет закрыт через 10 секунд.");  
//отсылка игроку сообщение о том что гараж открылся (playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех), COLOR_RED == это тот самый #define которым мы заменяли хекс-код = 0xAA3333AA *это как бы цвет, " ворота открылись. Они будут закрыты через 10 секунд." == содержимое самого сообщения ). 
} 
} 
return 1; 
}

Автор мануала не я.Надеюсь,поможет.

Изменено пользователем ExPlaY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.