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

Description: Уроки по скриптингу
Moderator: SJplayer

Дим M
Topic author, Администратор
Администратор
Avatar
Дим M
Topic author, Администратор
Администратор
Posts: 1613
Joined: 5 Apr 2013
With us: 11 years 8 months

#1by Дим » 15 Apr 2013, 11:33

Автор I'm

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

Code: Select all

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


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

Code: Select all

NoRoof(playerid);   


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

Code: Select all

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 этого требует

Code: Select all

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


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

Code: Select all

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]


  • Similar Topics
    Replies
    Views
    Last post

Return to “Уроки”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest