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

Создание шлагбаума

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

#AMG

Привет всем дорогие друзья. Сегодня я разжую вам урок по созданию шлагбаума.
Давайте преступим.
Вот полный код: 
Ко всем переменным

new opengate;

В public OnGameModeInit():

 opengate = CreateObject(980,935.29998779297,-836.20001220703,96.5,0,0,0,300);

В public OnPlayerCommandText:
 

if(strcmp("/open", cmd, true) == 0)
{
        new open[MAX_PLAYERS];
        if(open[playerid] == 0) // Проверяем закрыты ли ворота
        {
        MoveObject(opengate,935.29998779297,-836.20001220703,96.5,10); // Открываем ворота
        open[playerid] = 1; // Устанавливаем значение открытых ворот
        }
        if(open[playerid] == 1) // Проверяем открыты ли ворота
        {
        MoveObject(opengate,935.29998779297,-831.90002441406,96.5,10); // Закрываем ворота
        open[playerid] = 0; // Устанавливаем значение закрытых ворот
        }
        return 1;
}

И так, давайте разжёвывать каждую строчку и слово в этом коде. 
Первое что мы рассмотрим это переменную 
new opengate;

Создали мы ее для того что бы записать, прикрепить (как вам угодно) в нее объект
А делаем мы это вот таким образом: 
opengate = CreateObject(980,935.29998779297,-836.20001220703,96.5,0,0,0,300);
Функция CreateObject создает объект по заданным координатам
Координаты к этой функции мы пишем в () таких вот скобках. 
Сами координаты состоят из 6 частей и разделяются запятыми всего частей кода 8, так как вы уже поняли, что координаты это 6 частей, а оставшиеся 2 это id создаваемого объекта и расстояние на котором его будет видно. Рассмотрим 6 частейCreateObject(id объекта,Координаты по оси X,Координаты по оси Y,Координаты по оси Z,Координаты по оси R-X,Координаты по оси R-Y,Координаты по оси R-Z, Расстояние видимости объекта);
Кстати максимальное значение видимости объекта = 300

Так, ну что, объект мы записали в переменную, теперь когда мы будем использовать opengate то pawno разу будет знать что мы вызываем объект. 
Идем дальше
Создаем команду для того что бы наш шлагбаум открывался и закрывался.

 if(strcmp("/open", cmd, true) == 0)
{
        new open[MAX_PLAYERS];
        if(open[playerid] == 0) // Проверяем закрыты ли ворота
        {
        MoveObject(opengate,935.29998779297,-836.20001220703,96.5,10); // Открываем ворота
        open[playerid] = 1; // Устанавливаем значение открытых ворот
        }
        if(open[playerid] == 1) // Проверяем открыты ли ворота
        {
        MoveObject(opengate,935.29998779297,-831.90002441406,96.5,10); // Закрываем ворота
        open[playerid] = 0; // Устанавливаем значение закрытых ворот
        }
        return 1;
}
Строка if(strcmp("/open", cmd, true) == 0)значит что если мы ввели в консоль вызываемую кнопкой F6 команду /open то она вызывает следующие действия. 
Строка new open[MAX_PLAYERS];переменная open присваивается для каждого игрока индивидуально. Ею мы будем смотреть закрыты ли наши двери или нет. 
Строка if(open[playerid] == 0) If в переводе с английского означает "Если" То естьЕсли(переменная open[id игрока который использует команду]== 0)
{ то делаем следующее действие.
СтрокаMoveObject(opengate,935.29998779297,-836.20001220703,96.5,10); // Открываем воротаДвигает наш объект по заданным координата. А именно это делает функция MoveObject, после этой функции мы задаем координаты. 
Сейчас распишу вам полностью строку
Двигаем объект(сам объект, помните мы в переменную opengate записали объект, вот сейчас мы его используем,Координаты по оси X,Координаты по оси Y,Координаты по оси Z,Скорость предвидения объекта,Координаты по оси R-X,Координаты по оси R-Y,Координаты по оси R-Z);
В данном случаи мы не используем координаты R-X, R-Z, R-Y, но если вам надо то знайте что они ставятся только после скорости передвижения объекта и ни как до его. 
Дальше строкаopen[playerid] = 1; // Устанавливаем значение открытых воротпоказывает что наш шлагбаум открыт, и закроется только тогда, когда переменной open будет присвоено значение 0.
дальше думаю все логично.
Кстати строкаreturn1;возвращает действие обратно.

Спасибо за внимание!
Автор Romio2517 

  • Like 4

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


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

Спасибо, помог! + тебе.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

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

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

×

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

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