Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Ускорение машины по клику - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ All ]
Ускорение машины по клику
Оценка: ***** 1 Голосов

#1
Пользователь офлайн   Avisomik 

  • Знаток
  • Вставить ник
  • Раскрыть информацию
Всем привет, вот вам готовый код с помощью которого Вы сможете легко увеличить скорость любой машины от Медленой до Гоночной.


Вставляете это в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
	if(newkeys & KEY_FIRE) // Проверка на кнопку 'Огонь' или же ЛКМ
	{
	    new vehicleid = GetPlayerVehicleID(playerid); // Заводим под переменную GetPlayerVehicleID
		if(vehicleid > 0) // Проверка в машине ли игрок
		{
		    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) // Проверка за рулём ли игрок
		    {
		     	const Float:velocity = 0.999; // Тут можете менять как хотите. Но 0.999 вам думаю хватит
		     	new Float:X, Float:Y, Float:A; // Создаём локальные переменные
		     	GetVehicleZAngle(vehicleid, A); // Узнаём угол поворота машины

				X = velocity * -floatcos(A - 90.0, degrees); // Вычисляем скорость машины X
				Y = velocity * -floatsin(A - 90.0, degrees); // Вычисляем скорость машины Y

				SetVehicleVelocity(vehicleid, X, Y, 0.0); // Устанавливаем скорость машине
		    }
		}
	}


Для тех кто хочет сделать ограничения возможен такой вариант:
Добавляем в самый конец stock (он моду никак не навредить, но если уже есть сток вычисления скорости, то можете не добавлять, а заменить на свой!).
stock SpeedVehicle(playerid)
{
    new Float:ST[4];
    if(IsPlayerInAnyVehicle(playerid))
        GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[
2]);
        else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
    ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100.3;
    return floatround(ST[3]);
}


И в само ускорение вставляете (Перед const Float:velocity = 0.999;!) это:

				if(SpeedVehicle(playerid) < 20) return 1; // Минимальная скорость, по умолчанию: 20
				else if(SpeedVehicle(playerid) > 100) return 1; // Максимальная скорость, по умолчанию: 100


Данное ускорение пойдёт на ДМ серверах, для Админов самое то.

Вычисления взял с WIKI, всё остальное делал я.

Автор: avisomik

Понравилось? Ставь +

Сообщение отредактировал Avisomik: 22 Февраль 2019 - 08:03

1

#2
Пользователь офлайн   Romzes 

  • © Pawn-Wiki.Ru
  • Вставить ник
  • Раскрыть информацию
Я бы ещё добавил проверку на максимальную скорость, чтобы нельзя было разгоняться до бесконечности. Также возможно проверку на минимальную скорость, чтобы нельзя было разогнаться с место.
0

#3
Пользователь офлайн   Avisomik 

  • Знаток
  • Вставить ник
  • Раскрыть информацию
Странно, но на моём спидометре больше 100 km/h не разогнаться, а вот насчёт минимальной скорости можно подумать...
0

#4
Пользователь офлайн   Avisomik 

  • Знаток
  • Вставить ник
  • Раскрыть информацию
UPD. Добавил ограничения скорости (менять можете как хотите). Теперь с места разогнаться нельзя)

Сообщение отредактировал Avisomik: 22 Февраль 2019 - 08:04

0

#5
Пользователь офлайн   Avisomik 

  • Знаток
  • Вставить ник
  • Раскрыть информацию
UP
0

#6
Пользователь офлайн   GAWESOME 

  • Пуфнеры вперед
  • Вставить ник
  • Раскрыть информацию
вообще бредятина какая-то. синус/косинус угла умножить на 0.9 и установить это как скорость? где связь?

Просмотр сообщенияRomzes (22 Февраль 2019 - 06:07) писал:

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


да там и не получиться бесконечно разгоняться. скорость всегда одна и та же
0

#7
Пользователь офлайн   Avisomik 

  • Знаток
  • Вставить ник
  • Раскрыть информацию
Это было сделано, для получения более точных вычислений, а именно углы, по моему мнению это необходимо.
0

#8
Пользователь офлайн   GAWESOME 

  • Пуфнеры вперед
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияAvisomik (25 Февраль 2019 - 09:30) писал:

Это было сделано, для получения более точных вычислений, а именно углы, по моему мнению это необходимо.


каких точных вычислений? если хочешь ускорить машину - берешь ее настоящую скорость и множишь на сколько хочешь, а не какой то бред с косинусом и синусом
1

#9
Пользователь офлайн   Volod 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияGAWESOME (25 Февраль 2019 - 09:49) писал:

каких точных вычислений? если хочешь ускорить машину - берешь ее настоящую скорость и множишь на сколько хочешь, а не какой то бред с косинусом и синусом

сделай, представишь всем
-1

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика