Перейти к содержанию
Thomas_Malibu

Ускорение для ГИБДД

Рекомендуемые сообщения

Thomas_Malibu

Всем привет! Сегодня покажу вам как сделать ускорения для авто полиции. Может быть кто искал , но не нашел , или кто то не знает , данная тема для этих людей. Начнем.

Ко всем стокам вставляем 

stock SetVehicleSpeed(vehicleid, Float:speed)
{
    new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2, Float:a;
    GetVehicleVelocity(vehicleid, x1, y1, z1);
    GetVehiclePos(vehicleid, x2, y2, z2);
    GetVehicleZAngle(vehicleid, a); a = 360 - a;
    x1 = (floatsin(a, degrees) * (speed/100) + floatcos(a, degrees) * 0 + x2) - x2;
    y1 = (floatcos(a, degrees) * (speed/100) + floatsin(a, degrees) * 0 + y2) - y2;
    SetVehicleVelocity(vehicleid, x1, y1, z1);
}

Это вставляем к командам, скорость , машина может быть другой

CMD:skorostaudi(playerid, params[])
{
			new Car = GetPlayerVehicleID(playerid);
			new model = GetVehicleModel(Car);
			new speed = SpeedVehicle(playerid)/2;
			if(speed > 90)//Проверка на  скорость на которой будет использоватся ускорение
			if(model == 598)//Проверяем машину
    		SetVehicleSpeed(Car,170);//Устанавливаем скорость
      		return true;
}
CMD:skorostpolo(playerid, params[])
{
			new Car = GetPlayerVehicleID(playerid);
			new model = GetVehicleModel(Car);
			new speed = SpeedVehicle(playerid)/2;
			if(speed > 70)
			if(model == 596)
    		SetVehicleSpeed(Car,170);
      		return true;
}

Чтобы ускорение работало на кнопку вставляем это в public OnPlayerKeyStateChange

	if(newkeys & KEY_FIRE)
	{
    cmd_skorostaudi(playerid, "");
	}
	if(newkeys & KEY_FIRE)
	{
    cmd_skorostpolo(playerid, "");
	}

Компилируем , проверяем и вуаля все работает! Скорость с которой работает ускорение на каждом моде может быть разная , подстраивайте под мод. Если вы захотите изменить команду , то изменяйте ее и в public OnPlayerKeyStateChange ! Если понравилось , не пожалейте Like) Если что пишите сюда , помогу

Изменено пользователем Thomas_Malibu
  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Вырезано из какого-то мода практически без понимания механизма работы.

Команды - лишний слой вызовов функций, оверхед.

Абсолютно аналогичные условия друг за другом - избыточные их проверки, оверхед.

В функции SetVehicleSpeed два умножения на ноль, возможный оверхед (не могу утверждать, оптимизирует ли компилятор). Плюсом константное "волшебное" число, переводящее скорость из километров в число с плавающей точкой, которое может отличаться от мода к моду.

Для целочисленных значений лучше использовать switch-выражения или доступ по индексу массива, а не if-выражения.

Уж про "скачок" скорости от потенциальных  70 к 170 я не буду говорить, каждому своё, хотя я в такой реализации смысла не вижу.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Thomas_Malibu
В 9/28/2020 в 1:07 PM, 16Shadows сказал:

Уж про "скачок" скорости от потенциальных  70 к 170 я не буду говорить, каждому своё, хотя я в такой реализации смысла не вижу.

Я же написал, скорость может быть другая, так сделал для примера.
Не вырезано.

Изменено пользователем Thomas_Malibu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
omfa
	if(newkeys & KEY_FIRE)
	{
    cmd_skorostaudi(playerid, "");
	}
	if(newkeys & KEY_FIRE)
	{
    cmd_skorostpolo(playerid, "");
	}

Как поставить именно тут ускорение на левую кнопку мыши.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Thomas_Malibu
В 10/1/2020 в 1:36 PM, omfa сказал:

	if(newkeys & KEY_FIRE)
	{
    cmd_skorostaudi(playerid, "");
	}
	if(newkeys & KEY_FIRE)
	{
    cmd_skorostpolo(playerid, "");
	}

Как поставить именно тут ускорение на левую кнопку мыши.

Срабатывает на L.ALT и на ЛКМ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Thomas_Malibu

Если неудобно будет писать тут, обращайтесь в ВК

  • Sad 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.