]x[vBeat
05.01.2014, 20:44
как сделать пикап что бы шлагбаум у АШ открывался по гудку?
Nike_Frost
12.01.2014, 09:17
зачем пикап?можно чтоб по сигналу открывался
Для начала, нам нужно объявить константу объекта и одну переменную, относительно который будет считаться поворот по оси:
new Shlak[1], rotating = -90;
Создаём объект:
Shlak[0] = CreateObject(2920, свои координаты , -60.0, 0.0, 0.0);
Напишем небольшую команду для открытия шлагбаума:
if(strcmp(cmdtext, "/avtoshcola", true) == 0)
{
SetTimer("OpenAh", 50, 0); // таймер, который будет поворачивать шлагбаум
return 1;
}
Теперь самое важное: управляющие таймеры. Начнём с того, который будет открывать шлагбаум:
Код:
forward OpeAh();
public OpenAh()
{
new Float:RotX, Float:RotY, Float:RotZ; // объявим переменные, в которые будут записаны углы поворота по осям
GetObjectRot(Object[0], RotX, RotY, RotZ); // получаем уголы поворота шлагбаума по осям и записываем их в объявленные переменные
SetObjectRot(Object[0], RotX + 1.0, RotY, RotZ); // устанавливаем угол поворота побольше (по оси X должен вертеться шлагбаум, чтобы открываться и закрываться)
if(rotating < 0) // т.к. базовый поворот -90, то поворот открытого - 0, а следовательно пишем такое условие
{
rotating += 1; // если ещё призакрыт, то поворачиваем
SetTimer("OpenAh", 50, 0); // запускаем таймер снова для повтора поворота
}
else
{
SetTimer("CloseAh", 5000, 0); // если открыт полностью - запускаем таймер, который через 5 секунд начнёт закрывать шлагбаум
}
return 1;
}
Будет закрывать шлагбаум:
forward CloseAh();
public CloseAh()
{
if(rotating > -90) // если шлагбаум ещё не закрыт
{
new Float:RotX, Float:RotY, Float:RotZ;
GetObjectRot(Object[0], RotX, RotY, RotZ);
SetObjectRot(Object[0], RotX - 1.0, RotY, RotZ);
rotating -= 1; // уменьшаем поворот
SetTimer("CloseAh", 50, 0); // повторно запускаем таймер закрытия
}
return 1;
}
Теперь в OnPlayerKeyStateChange:
if (newkeys == KEY_WALK || newkeys == KEY_CROUCH && IsPlayerInAnyVehicle(playerid)) OnPlayerCommandText(playerid,"/avtoshcola");
Впринципе всё!
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot