-
плавный шлакбаум
Чето гон, сделал для LSPD все норм пашет, сделал для lvpd тут гон. Открывается резко и закрывается тоже резко, хотя должно все плавно.
PHP код:
new lvpdslak[2];
PHP код:
forward lvpdslakclose();
PHP код:
if (PlayerToPoint(15, playerid,2238.1997, 2450.2256, 10.6574))
{
if((IsACop(playerid)) || (PlayerInfo[playerid][pAdmin]>=1))
{
if(lvpdslak[0] == 0)
{
MoveObject(lvpdslak[1], 2238.1997, 2450.2256, 10.6574, 0.3, 0.00,0.00,90.00);
lvpdslak[0] = 1;
SetTimer("lvpdslakclose", 5000, 0);
}
else if(lvpdslak[0] == 1)
{
MoveObject(lvpdslak[1],2238.1997, 2450.2256, 10.6574, 0.3, 0.00,90.00,90.00);
lvpdslak[0] = 0;
}
}
}
PHP код:
lvpdslak[1] = CreateObject(968, 2238.1997, 2450.2256, 10.6574, 0.00,90.00,90.00);//в закрытом положении
PHP код:
public lvpdslakclose()
{
if(lvpdslak[0] == 1)
{
MoveObject(lvpdslak[1], 2238.1997, 2450.2256, 10.6574, 0.2, 0.00,90.00,90.00);
lvpdslak[0] = 0;
}
return false;
}
-
PHP код:
forward CloseBarrier(); // форвард
PHP код:
new barrier; // переменная шлагбаума
PHP код:
if(newkeys == KEY_CROUCH && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) // на какую кнопку открывается шлагбаум
{
if(IsPlayerInRangeOfPoint(playerid, 8.0, x, y, z)) // Дистанция + координаты с какого место открываем шлагбаум
{
if((IsACop(playerid)) || (PlayerInfo[playerid][pAdmin]>=1)) // Проверка кто может открыть шлагбаум
{
MoveDynamicObject(barrier, x, y, z+0.004,0.004(+0.004 скорость движения), rx, ry, rz); // открытие шлагбаума
SetTimer("CloseBarrier", 3000, 0); // Таймер, через которое время закрывается наш шлагбаум
return 1;
}
}
}
PHP код:
public CloseBarrier() return MoveDynamicObject(barrier, x, y, z-0.004,0.004(скорость движения), rx, ry, rz); // закрытие шлагбаума
PHP код:
barrier = CreateObject(id, x, y, z, rx, ry, rz); // сам объект
-
Для того, чтоб объекты двигались плавно, нужно менять им координату Z (можно даже на 0.00001) при подъёме вверх и возвращать обратно при подъёме вниз. Тогда всё должно двигаться плавно.
P.S. Это объяснение кода выше
-