Как запретить ездить на крыше

Описание: Уроки по скриптингу
Модератор: SJplayer

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 15 апреля 2013, 11:33

Автор I'm

Ко всем форвардам добавим:

Код: Выделить всё

forward NoRoof(playerid);
forward anim2(playerid);   


В public OnPlayerUpdate(playerid) добавим:

Код: Выделить всё

NoRoof(playerid);   


Далее создадим функцию NoRoof, естественно вне пабликов:

Код: Выделить всё

public NoRoof(playerid)
{
    new 
carid GetPlayerSurfingVehicleID(playerid); // получаем айди авто на котором игрок
    
if(carid != INVALID_VEHICLE_ID // если айди правильный(тоесть игрок на авто)
    
{
        new 
Float:speed GetVehicleSpeed(carid); // получаем скорость авто
        
new cm=GetVehicleModel(carid); // получаем модель авто
        
switch(cm)
        {
            case 
430,446,452,453,454,472,473,484,493,595:{return 1;} // если это лодка, скидывать ненадо)
            
default:{}
        }
        if(
speed 30// Если скорость больше 30км\час
        
{
            new 
Float:slxFloat:slyFloat:slz;
            
GetPlayerPos(playeridslxslyslz);
            
SetPlayerPos(playeridslxslyslz+2.5); // Немного подкинем игрока чтоб он не остался на авто
            
ApplyAnimation(playerid"ped""BIKE_fallR"4.001000,0); // Применим анимку падения
            
new Float:hp;
            
GetPlayerHealth(playeridhp);
            
SetPlayerHealth(playeridhp-15); // Отнимем 15хп
            
SetTimerEx("anim2"11000"d"playerid); // Поставим на таймер анимку чтобы игрок нормально встал
        
}
    }
    return 
1;
}   


Дальше надо показать вторую анимку, создать её так же надо через паблик, так как функция SetTimerEx этого требует

Код: Выделить всё

public anim2(playerid)
{
        
ApplyAnimation(playerid"ped""getup"4.001000,0);
        return 
1;
}  


И в конце мода вставим функцию получения скорости авто

Код: Выделить всё

stock GetVehicleSpeed(vehicleid)
{
    new 
Float:Px,Float:Py,Float:Pz;
    
GetVehicleVelocity(vehicleid,Px,Py,Pz);
    return 
floatround(floatsqroot(Px*Px+Py*Py+Pz*Pz) * 100.0);
}   
[center]i love you [s]mxIni[/s] Mysql[/center]


Вернуться в «Уроки»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 7 гостей