29.07.2014, 20:17
(
Last edited by Strix; 24/08/2014 at 08:31 PM.
Reason: Оптимизировал код, добавил пояснение
)
GetVehicleDriftAngle
Данная функция получает угол и направление заноса транспортного средства.
Направление заноса
Данная функция получает угол и направление заноса транспортного средства.
pawn Code:
stock GetVehicleDriftAngle(vehicleid, &Float:fVehDriftAngle)
{
static
Float: fVehVelocity[3],
Float: fVehAngle,
Float: fVehMoveAngle;
if (!GetVehicleVelocity(vehicleid, fVehVelocity[0], fVehVelocity[1], fVehVelocity[2])) {
return 0;
}
if (!floatcmp(fVehVelocity[0], 0.0) && !floatcmp(fVehVelocity[1], 0.0)) {
fVehDriftAngle = 0.0;
return 1;
}
fVehMoveAngle = -atan2(fVehVelocity[0], fVehVelocity[1]);
GetVehicleZAngle(vehicleid, fVehAngle);
if (floatcmp(fVehAngle, 180.0) == 1) {
fVehAngle -= 360.0;
}
fVehDriftAngle = floatsub(fVehMoveAngle, fVehAngle);
if (floatcmp(fVehDriftAngle, -180.0) == -1) {
fVehDriftAngle += 360.0;
}
else if (floatcmp(fVehDriftAngle, 180.0) == 1) {
fVehDriftAngle -= 360.0;
}
return 1;
}
- Угол < 0 - смещение направления транспорта влево относительно направления движения.
- Угол > 0 - смещение направления транспорта вправо относительно направления движения.