Привет! Если вы читаете это - Вы еще не зарегистрированы. Это займет не больше минуты. Нажмите здесь, чтобы пройти регистрацию в несколько простых шагов, чтобы пользоваться всеми возможностями нашего форума. Обратите внимание, запрещены непристойные, матерные, бессмысленные (цифры, случайный набор букв) ники. Удачи!

Реклама






 
SAMP АДМИНКИ 15 ЛВЛ ПРИ ВХОДЕ КОМАНДА /MAKEADMIN2017 Адрес сервера:176.32.36.34:7777

500р
Маленький баннер400р/мес(Статический показ)
,400рТекстовая реклама300р/мес(Статический показ)
Большой баннер статический
1200р 1000/мес

Внимание ЦЕНЫ СНИЖЕНЫ!!!
Писать по поводу рекламы VK: vk.com/sergey68

** Как получить V.I.P --> КЛИК **
Показано с 1 по 6 из 6
  1. #1
    Пользователь
    Аватар для ppzvovka
    Статус
    Оффлайн
    Регистрация
    15.11.2010
    Сообщений
    77
    Репутация
    99 [+/-] 

    Создание ворот на кнопке/автоматическое закрытие

    Сегодня мы научимся создавать ворота которые будут открываться по клавише и закрываться они тоже будут по клавише/автоматически (по вашему выбору)
    И так начнём сначала нужно добавить в мод/фильтрскрипт новую переменную точнее две :

    PHP код:
    new gateactekos// ВЫ можете по своему я делал для ацтеков
    new gatetimeract// это переменная для таймера…(если вам автоматическое закрытие не нужно не пишите эту строку)
    далее к #define :
    #define COLOR_RED 0xAA3333AA //это для цвета
    Далее переходим к forward ставим это:
    forward gateactClose(playerid// в конце это будет пабликом закрытых ворот
    дальше создадим как бы объект (ворота)  пишем в :
    public 
    OnGameModeInit

    gateactekos CreateObject(9801810.90 -1893.9115.2,0.0,0.0,90);//Мои ворота на вокзал к ацтекам (980 == ид объекта,1810.90 -1893.91, 15.2 == Y,X,Z координаты и  0.0,0.0,90 ==  rY,rX,rZ – угол поворота.) УКАЗЫВАТЬ КООРДИНАТЫ ЗАКРЫТЫЙХ ВОРОТ!!!
    И так мы создали ворота как объект теперь нам нужно заставить его шевелиться (двигаться
    Для этого мы пишем следующее в этот паблик:
    public OnPlayerCommandText(playerid, cmdtext[])
    PHP код:
    if(!strcmp(cmdtext"/aopen"true)) //  сама команда для открытия ворот
    {
    if(
    PlayerInfo[playerid][pLeader] == 13 | | PlayerInfo[playerid][pMember] == 13)// проверка на фракцию, банду .В моем случае это ацтеки их ид банды == 13
    {
    if (
    PlayerToPoint(15playerid,1823.19,-1861.68,15.025))//Где должен стоять игрок что бы ворота открывались (15 == это радиус отталкивается  от координат , playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех), 1823.19,-1861.68,15.025 ==  Y,X,Z  координаты где должен стоять игрок (не забывайте про радиус!) ).
     
    {
    MoveObject(gateactekos1810.90,-1887.3,15.22);//куда будут двигаться ворота
    (gateactekos == переменная которой мы обозначили объект в public OnGameModeInit1810.90,-1887.3,15.2 == координаты Y,X,Z куда двигаются ворота,  == скорость движения ворот (2 оптимальная))
    Если вы хотите что бы ворота закрывались автоматически то пишите то что ниже ,если хотите только по клавишам то пропускайте этот пункт и читайте далее!
    SetTimer("gateactClose"100000);
    gatetimeract SetTimer("gateactClose"100000);//Таймер открытия через сколько ворота закроются (gateactekos == переменная которой мы обозначили объект в public OnGameModeInit,10000 == время через сколько закроются ворота(указываются в миллисекундах) 
     
    SendClientMessage(playeridCOLOR_RED," Ворота открылись. Он будет закрыт через 10 секунд."); //отсылка игроку сообщение о том что гараж открылся (playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех), COLOR_RED == это тот самый #define которым мы заменяли хекс-код = 0xAA3333AA *это как бы цвет, " ворота открылись. Они будут закрыты через 10 секунд." == содержимое самого сообщения ).
    }
    else 
    {
     
    SendClientMessage(playeridCOLOR_RED," Ты слишком далеко.");
     }
     
    // это предложение действия если функция PlayerToPoint и её содержимое не совпадает с положением игрока (ну типо если игрок не стоит в радиусе при котором открываются ворота ). (отсылка игроку сообщение о том что он слишком далеко),(playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех),СOLOR_RED == это тот самый #define которым мы заменяли хекс-код = 0xAA3333AA *это как бы цвет, " Ты слишком далеко." = содержимое самого сообщения)
    }
    else
     {
     
    SendClientMessage(playeridCOLOR_RED,"Вы не из El Corona."); // это предложение действия если функция (PlayerInfo[playerid][pLeader] == 13 | | PlayerInfo[playerid][pMember] == 13) и её содержимое не совпадает со статистикой игрока (ну типо если игрок не состоит в этой банде/фракции)(отсылка игроку что он не состоит в этой фракции/банде),(playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех),СOLOR_RED == это тот самый #define которым мы заменяли хекс-код = 0xAA3333AA *это как бы цвет, "Вы не из El Corona ." = содержимое самого сообщения)

    return 1;
    }
    Далее ставим это в конец самого мода (то есть создаём новый паблик):   
    public 
    gateactClose (playerid)
    {
    MoveObject(gateactekos1810.90 -1893.9115.22);// куда будут двигаться ворота
    (gateactekos == переменная которой мы обозначили объект в public OnGameModeInit1810.90 -1893.9115.2 == координаты Y,X,Z куда двигаются ворота,  == скорость движения ворот (2 оптимальная))

    KillTimer(gatetimeract);// убивает таймер
    return 1;
    }
    Далее что бы открывать по клавише пишем в паблик OnPlayerKeyStateChange следующее :
    public 
    OnPlayerKeyStateChange(playeridnewkeysoldkeys)
    {
    if (
    newkeys == 1024// newkeys == 1024 (клавиша которой будут открываться ворота (в данном случае это клавиша прыжка) Вот mysan вылаживал все айди клавиш :
     
    Действие
    Присесть
    Огонь
    Спринт
    16 
    Вторичная атака
    32 
    Прыжок
    64 
    Смотреть в право
    128 
    Ручной тормоз
    256 
    Смотреть в лево
    512 
    Субмиссия(в машине), Смотреть назад(пешком)
    1024 Идти шагом
    2048 
    Аналог вверх (по умолчанию 8 )
    4096 Аналог ввниз (по умолчанию 2)
    8192 Аналог влево (по умолчанию 4)
    16384 Аналог вправо (по умолчанию 665408 Вперёд
    128 
    Назад
    65408 
    Влево
    128 
    Вправо

    {
     
    OnPlayerCommandText(playerid, /aopen)// OnPlayerCommandText == функция в которой выполняются команды , playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех), /aopen == сама команда которая открывает ворота .
    В итоге у вас получиться такой код
    #define COLOR_RED 0xAA3333AA
    forward gateactClose(playerid)
    new 
    gateactekos;
    new 
    gatetimeract;
    public 
    OnGameModeInit

    gateactekos CreateObject(9801810.90 -1893.9115.2,0.0,0.0,90);
    }
    }

    public OnPlayerCommandText(playerid, cmdtext[])
    PHP код:
    if(!strcmp(cmdtext"/aopen"true))
    {
    if(
    PlayerInfo[playerid][pLeader] == 13 | | PlayerInfo[playerid][pMember] == 13)
    {
    if (
    PlayerToPoint(15playerid,1823.19,-1861.68,15.025))
    {
    MoveObject(gateactekos1810.90,-1887.3,15.22);
    SetTimer("gateactClose"100000);
    gatetimeract SetTimer("gateactClose"100000);
    SendClientMessage(playeridCOLOR_RED," Ворота открылись. Он будет закрыт через 10 секунд.");

    }
    else 
    {
     
    SendClientMessage(playeridCOLOR_RED," Ты слишком далеко.");
     }

    else
     {
     
    SendClientMessage(playeridCOLOR_RED,"Вы не из El Corona.");
    return 
    1;
    }
    public 
    gateactClose (playerid)
    {
    MoveObject(gateactekos1810.90 -1893.9115.22);
    KillTimer(gatetimeract);
    return 
    1;
    }
    public 
    OnPlayerKeyStateChange(playeridnewkeysoldkeys)
    {
    if (
    newkeys == 1024)
    {
     
    OnPlayerCommandText(playerid, /aopen)
    }
    }


    И так мы закончили творение ворот *полуавтоматических , но я написал что скажу как создать открытие на кнопке а закрытие на клавише/автоматически .Так вот открытие по клавише мы зделали и закрытие автоматически тоже перейдем к второй части урока :
    ОТКРЫТИЕ И ЗАКРЫТИЕ ПО КЛАВИШЕ
    Здесь уже очень легко :
    public OnPlayerCommandText(playerid, cmdtext[])
    PHP код:
    if(!strcmp(cmdtext"/aopen"true))
    {
    if(
    PlayerInfo[playerid][pLeader] == 13 | | PlayerInfo[playerid][pMember] == 13)
    {
    if (
    PlayerToPoint(15playerid,1823.19,-1861.68,15.025))
    {
    MoveObject(gateactekos1810.90,-1887.3,15.22);
    SetTimer("gateactClose"100000);
    gatetimeract SetTimer("gateactClose"100000);
    SendClientMessage(playeridCOLOR_RED," Ворота открылись. Он будет закрыт через 10 секунд.");

    }
    else 
    {
     
    SendClientMessage(playeridCOLOR_RED," Ты слишком далеко.");
     }

    else
     {
     
    SendClientMessage(playeridCOLOR_RED,"Вы не из El Corona.");
    return 
    1;

    Теперь в OnPlayerKeyStateChange
    Пихаем это :
    PHP код:
    public OnPlayerKeyStateChange(playeridnewkeysoldkeys)
    {
    if (
    newkeys == 1024)
    {
    OnPlayerCommandText(playerid, /aopen)

    }
    {
    If(
    newkeys == 32)
    {
    MoveObject(gateactekos1810.90 -1893.9115.22);
    }
    }

    На этом наш урок закончен , Есть не много дурности на счет команд и бинда прошу строго не судить просто хотел объеснить как можно больше еще и про команды ВСЕМ пока
    Автор: kalawNash

  2. #2
    Пользователь
    Аватар для Сeрёга
    Статус
    Оффлайн
    Регистрация
    16.03.2011
    Сообщений
    7
    Репутация
    0 [+/-] 
    а ты можешь обьеснить как добавить ворота для своего дома что бы они открывались по команде?

  3. #3
    Пользователь
    Аватар для [Corleone]
    Статус
    Оффлайн
    Регистрация
    10.03.2011
    Адрес
    Канада,Биг Вайт..
    Сообщений
    102
    Репутация
    12 [+/-] 
    Цитата Сообщение от Серёга Посмотреть сообщение
    а ты можешь обЪяснить как добавить ворота для своего дома что бы они открывались по команде?
    Да хороший он вопрос задал..распиши только все по полочкам а то ведь сёровно потом не поймёт -_-
    [Есть умные люди, а есть продуманные] (c)
    Вернулся в PAWNO =D

  4. #4
    Пользователь
    Аватар для Vanek
    Статус
    Оффлайн
    Регистрация
    19.04.2011
    Сообщений
    28
    Репутация
    0 [+/-] 
    спс большое. долго искал урок по воротам и всетаки нашел норм урок =) лови +

  5. #5
    Пользователь
    Аватар для Goldman
    Статус
    Оффлайн
    Регистрация
    17.03.2011
    Сообщений
    297
    Репутация
    41 [+/-] 
    Цитата Сообщение от Серёга Посмотреть сообщение
    а ты можешь обьеснить как добавить ворота для своего дома что бы они открывались по команде?
    Если ты Админ, ставь проверку, не кто не сможешь из простолюдишек их открыть

  6. #6
    Пользователь
    Аватар для zuganshin
    Статус
    Оффлайн
    Регистрация
    02.10.2012
    Сообщений
    66
    Репутация
    2 [+/-] 
    MoveObject(gateactekos, 1810.90 -1893.91, 15.2, 2);


    А вот это что?? это где стоять ворота??


Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •