Что за скрипт?

Kianu Rivz

Новичок
Автор темы
3
0
#define ABS_ENABLED 1
#define ABS_MIN_SPEED_ON_BRAKE 1.0
#define ABS_MAX_BRAKE_VELOCITY_DECREASE 0.1

public OnPlayerUpdate(playerid)
{
if (!IsPlayerInAnyVehicle(playerid)) return 1;

new vehicleid = GetPlayerVehicleID(playerid);
new keys, updown, leftright;
GetPlayerKeys(playerid, keys, updown, leftright);

if (keys & KEY_SPRINT || keys & KEY_FIRE)
{
new Float:current_velocity[3];
GetVehicleVelocity(vehicleid, current_velocity[0], current_velocity[1], current_velocity[2]);

new Float:speed = floatsqroot(current_velocity[0]*current_velocity[0] + current_velocity[1]*current_velocity[1] + current_velocity[2]*current_velocity[2]);

if (speed > ABS_MIN_SPEED_ON_BRAKE && ABS_ENABLED == 1)
{
new Float:new_speed_x = current_velocity[0] * (1.0 - ABS_MAX_BRAKE_VELOCITY_DECREASE);
new Float:new_speed_y = current_velocity[1] * (1.0 - ABS_MAX_BRAKE_VELOCITY_DECREASE);
new Float:new_speed_z = current_velocity[2] * (1.0 - ABS_MAX_BRAKE_VELOCITY_DECREASE);

if (floatsqroot(new_speed_x*new_speed_x + new_speed_y*new_speed_y + new_speed_z*new_speed_z) < ABS_MIN_SPEED_ON_BRAKE)
{
new Float:factor = ABS_MIN_SPEED_ON_BRAKE / speed;
new_speed_x = current_velocity[0] * factor;
new_speed_y = current_velocity[1] * factor;
new_speed_z = current_velocity[2] * factor;
}

SetVehicleVelocity(vehicleid, new_speed_x, new_speed_y, new_speed_z);
}
}
return 1;
}
 

dask

Участник
107
16
Погна. Сам скрипт собой предоставляет из себя систему ABS(аббревиатура от "антиблокировочная система тормозов" (Anti-lock Braking System))
Первые три строчки
#define ABS_ENABLED 1
#define ABS_MIN_SPEED_ON_BRAKE 1.0
#define ABS_MAX_BRAKE_VELOCITY_DECREASE 0.1
  • ABS_ENABLED: включена ли система ABS (1 = да, 0 = нет).
  • ABS_MIN_SPEED_ON_BRAKE: минимальная скорость, при которой ABS активируется.
  • ABS_MAX_BRAKE_VELOCITY_DECREASE: насколько быстро скорость уменьшается при торможении (максимальное "замедление").

Функция (OnPlayerUpdate(playerid)) Проверяет находится ли игрок в транспорте.

Получает ID транспорта и текущие нажатые клавиши.
new vehicleid = GetPlayerVehicleID(playerid);
new keys, updown, leftright;
GetPlayerKeys(playerid, keys, updown, leftright);


Вычисляет скорость автомобиля
new Float:current_velocity[3];
GetVehicleVelocity(vehicleid, current_velocity[0], current_velocity[1], current_velocity[2]);

new Float:speed = floatsqroot(
current_velocity[0]*current_velocity[0] +
current_velocity[1]*current_velocity[1] +
current_velocity[2]*current_velocity[2]
);


Применение ABS

if (speed > ABS_MIN_SPEED_ON_BRAKE && ABS_ENABLED == 1)

Если скорость выше порога и ABS включён начинается работа скрипта

Уменьшает скорость по каждой оси на 10% (так как ABS_MAX_BRAKE_VELOCITY_DECREASE = 0.1)

Если после замедления скорость упала ниже порога то она корректируется чтобы не опуститься ниже чем ABS_MIN_SPEED_ON_BRAKE

Применяет новую скорость к транспорту
SetVehicleVelocity(vehicleid, new_speed_x, new_speed_y, new_speed_z);



Вообщем шо делает скрипт при торможение он не останавливается резко, а плавно тормозит. Скорость медленно снижается так сказать имитируя систему ABS
 

Kianu Rivz

Новичок
Автор темы
3
0
Погна. Сам скрипт собой предоставляет из себя систему ABS(аббревиатура от "антиблокировочная система тормозов" (Anti-lock Braking System))
Первые три строчки
#define ABS_ENABLED 1
#define ABS_MIN_SPEED_ON_BRAKE 1.0
#define ABS_MAX_BRAKE_VELOCITY_DECREASE 0.1
  • ABS_ENABLED: включена ли система ABS (1 = да, 0 = нет).
  • ABS_MIN_SPEED_ON_BRAKE: минимальная скорость, при которой ABS активируется.
  • ABS_MAX_BRAKE_VELOCITY_DECREASE: насколько быстро скорость уменьшается при торможении (максимальное "замедление").

Функция (OnPlayerUpdate(playerid)) Проверяет находится ли игрок в транспорте.

Получает ID транспорта и текущие нажатые клавиши.
new vehicleid = GetPlayerVehicleID(playerid);
new keys, updown, leftright;
GetPlayerKeys(playerid, keys, updown, leftright);


Вычисляет скорость автомобиля
new Float:current_velocity[3];
GetVehicleVelocity(vehicleid, current_velocity[0], current_velocity[1], current_velocity[2]);

new Float:speed = floatsqroot(
current_velocity[0]*current_velocity[0] +
current_velocity[1]*current_velocity[1] +
current_velocity[2]*current_velocity[2]
);


Применение ABS

if (speed > ABS_MIN_SPEED_ON_BRAKE && ABS_ENABLED == 1)

Если скорость выше порога и ABS включён начинается работа скрипта

Уменьшает скорость по каждой оси на 10% (так как ABS_MAX_BRAKE_VELOCITY_DECREASE = 0.1)

Если после замедления скорость упала ниже порога то она корректируется чтобы не опуститься ниже чем ABS_MIN_SPEED_ON_BRAKE

Применяет новую скорость к транспорту
SetVehicleVelocity(vehicleid, new_speed_x, new_speed_y, new_speed_z);



Вообщем шо делает скрипт при торможение он не останавливается резко, а плавно тормозит. Скорость медленно снижается так сказать имитируя систему ABS
а как его реализовать? тоесть сам в самп внедрить как срипт для мунлодера