Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 14
  1. #1
    Аватар для Сергей
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Сообщений
    161
    Репутация:
    3 ±

    Вопрос по поводу SetVehicleVelocity

    Доброго времени суток, товарищи, у меня сложилась некая проблема.
    Делаю ограничитель скорости для своего мода...
    И вот не задача, не получается сделать нормальный ограничитель.
    В данный момент проблема такова:
    Включаю ограничитель, сбрасываю скорость а он меня толкает вперёд...

    Код:

    PHP код:
    stock SetOgranSpeed(vehicleidspeed_MH)
    {
        if (
    speed_MH 1speed_MH 1;
        new 
    Floatv[3], car_speed_veh;
        
    GetVehicleVelocity(vehicleidv[0], v[1], v[2]);
        
    car_speed_veh floatround(VectorSize(v[0], v[1], v[2]) * 100.3);
        if (
    car_speed_veh <= 0)
        {
            new 
    FloatzAngle;
            
    GetVehicleZAngle(vehicleidzAngle);
            new 
    Float:newVelX floatcos((zAngle -= 270.0), degrees) *speed_MH 100.3;
            
    SetVehicleVelocity(vehicleidnewVelXfloattan(zAngle,degrees) *newVelX0.0);
            return 
    1;
        }
        new 
    FloatvSpeeds float(speed_MH) / float(car_speed_veh);
        
    SetVehicleVelocity(vehicleidv[0] *vSpeedsv[1] *vSpeedsv[2] *vSpeeds);
        return 
    1;


  2. #2
    Аватар для qwezert
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2016
    Адрес
    Одесса, Украина
    Сообщений
    281
    Репутация:
    51 ±
    Цитата Сообщение от Сергей Посмотреть сообщение
    Доброго времени суток, товарищи, у меня сложилась некая проблема.
    Делаю ограничитель скорости для своего мода...
    И вот не задача, не получается сделать нормальный ограничитель.
    В данный момент проблема такова:
    Включаю ограничитель, сбрасываю скорость а он меня толкает вперёд...
    Наверно потому что это код не ограничителя скорости?) Это паблик код для установки скорости или вообще насколько я помню для разгона.
    Что бы сделать ограничитель - этот код нужно переделать. Получаешь текущую скорость машины, сверяешь с ограничителем и если скорость больше ограниченной (допустим 50) - устанавливаешь машине скорость ограничителя - 50.

  3. #3
    Аватар для Сергей
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Сообщений
    161
    Репутация:
    3 ±
    Цитата Сообщение от qwezert Посмотреть сообщение
    Наверно потому что это код не ограничителя скорости?) Это паблик код для установки скорости или вообще насколько я помню для разгона.
    Что бы сделать ограничитель - этот код нужно переделать. Получаешь текущую скорость машины, сверяешь с ограничителем и если скорость больше ограниченной (допустим 50) - устанавливаешь машине скорость ограничителя - 50.
    А пример твоих слов есть?

  4. #4
    Аватар для Сергей
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Сообщений
    161
    Репутация:
    3 ±
    Поможет кто-то, хоть примером?)

  5. #5
    Аватар для Saibot
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.08.2016
    Сообщений
    58
    Репутация:
    24 ±
    PHP код:
    stock LimitingVehicleSpeed(const vehicleid)
    {
        if(
    vehicleid == 0)
            return 
    1;
            
        new 
    Floatvelocity_x,
            
    Floatvelocity_y,
            
    Floatvelocity_z;

        const 
    MAX_VEHICLE_SPEED 50;//Максимальная скорость

        
    GetVehicleVelocity(vehicleidvelocity_xvelocity_yvelocity_z);

        if(
    floatround(VectorSize(velocity_xvelocity_yvelocity_z) * 100.0) >= MAX_VEHICLE_SPEED)
            
    SetVehicleVelocity(vehicleidvelocity_x*0.99velocity_y*0.99velocity_z);

        return 
    1;

    Пример использования:
    PHP код:
    LimitingVehicleSpeed(GetPlayerVehicleID(playerid)); 
    Последний раз редактировалось Saibot; 10.12.2016 в 01:00.

  6. Пользователь сказал cпасибо:
    Сергей (10.12.2016)
  7. #6
    Аватар для Сергей
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Сообщений
    161
    Репутация:
    3 ±
    Цитата Сообщение от Saibot Посмотреть сообщение
    PHP код:
    stock LimitingVehicleSpeed(const vehicleid)
    {
        if(
    vehicleid == 0)
            return 
    1;
            
        new 
    Floatvelocity_x,
            
    Floatvelocity_y,
            
    Floatvelocity_z;

        const 
    MAX_VEHICLE_SPEED 50;//Максимальная скорость

        
    GetVehicleVelocity(vehicleidvelocity_xvelocity_yvelocity_z);

        if(
    floatround(VectorSize(velocity_xvelocity_yvelocity_z) * 100.0) >= MAX_VEHICLE_SPEED)
            
    SetVehicleVelocity(vehicleidvelocity_x*0.99velocity_y*0.99velocity_z);

        return 
    1;

    Пример использования:
    PHP код:
    LimitingVehicleSpeed(GetPlayerVehicleID(playerid)); 
    Такой вопрос, по поводу
    PHP код:
    velocity_x*0.99velocity_y*0.99 
    Теперь мне нужно подобрать оптимальные числа для той скорости до которой мне нужно ограничить, да?

  8. #7
    Аватар для Saibot
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.08.2016
    Сообщений
    58
    Репутация:
    24 ±
    Цитата Сообщение от Сергей
    Теперь мне нужно подобрать оптимальные числа для той скорости до которой мне нужно ограничить, да?
    Нет, тут тебе ничего не нужно подбирать.
    Тебе только осталось указать максимальную скорость.
    PHP код:
    const MAX_VEHICLE_SPEED 50;//Максимальная скорость 

  9. Пользователь сказал cпасибо:
    Сергей (10.12.2016)
  10. #8
    Аватар для Сергей
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Сообщений
    161
    Репутация:
    3 ±
    Цитата Сообщение от Saibot Посмотреть сообщение
    Нет, тут тебе ничего не нужно подбирать.
    Тебе только осталось указать максимальную скорость.
    PHP код:
    const MAX_VEHICLE_SPEED 50;//Максимальная скорость 
    Хорошо, вот я сейчас по константе передаю скорость вот так:
    PHP код:
    new vehicle GetPlayerVehicleID(playerid);
    LimitingVehicleSpeed(playerid,vehicle,45); 
    Код использования:
    PHP код:
    stock LimitingVehicleSpeed(playerid,const vehicleid, const MAX_SPEEDS)
    {
        new 
    Floatvelocity_x,
            
    Floatvelocity_y,
            
    Floatvelocity_z;

        new 
    MAX_VEHICLE_SPEED MAX_SPEEDS;//Максимальная скорость
        
        
    GetVehicleVelocity(vehicleidvelocity_xvelocity_yvelocity_z);
        if(
    floatround(VectorSize(velocity_xvelocity_yvelocity_z) * 100.3) > MAX_VEHICLE_SPEED)
            
    SetVehicleVelocity(vehicleidvelocity_x*0.99velocity_y*0.99velocity_z);    
        return 
    1;


  11. #9
    Аватар для Saibot
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.08.2016
    Сообщений
    58
    Репутация:
    24 ±
    Тогда так:
    PHP код:
    stock LimitingVehicleSpeed(const vehicleid, const max_speed)
    {
        if(
    vehicleid == 0)
            return 
    1;

        new 
    Floatvelocity_x,
            
    Floatvelocity_y,
            
    Floatvelocity_z;

        
    GetVehicleVelocity(vehicleidvelocity_xvelocity_yvelocity_z);

        if(
    floatround(VectorSize(velocity_xvelocity_yvelocity_z) * 100.0) >= max_speed)
            
    SetVehicleVelocity(vehicleidvelocity_x*0.99velocity_y*0.99velocity_z);

        return 
    1;

    PHP код:
    LimitingVehicleSpeed(GetPlayerVehicleID(playerid), 45); 

  12. Пользователь сказал cпасибо:
    Сергей (10.12.2016)
  13. #10
    Аватар для Сергей
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Сообщений
    161
    Репутация:
    3 ±
    Цитата Сообщение от Saibot Посмотреть сообщение
    Тогда так:
    PHP код:
    stock LimitingVehicleSpeed(const vehicleid, const max_speed)
    {
        if(
    vehicleid == 0)
            return 
    1;

        new 
    Floatvelocity_x,
            
    Floatvelocity_y,
            
    Floatvelocity_z;

        
    GetVehicleVelocity(vehicleidvelocity_xvelocity_yvelocity_z);

        if(
    floatround(VectorSize(velocity_xvelocity_yvelocity_z) * 100.0) >= max_speed)
            
    SetVehicleVelocity(vehicleidvelocity_x*0.99velocity_y*0.99velocity_z);

        return 
    1;

    PHP код:
    LimitingVehicleSpeed(GetPlayerVehicleID(playerid), 45); 
    Даже при таком использовании, машина набирает 77км

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •