To do this, you will have to use the new function GetVehicleRotationQuat. However, it works with quaternions, which is not an easy concept to understand. JernejL made some functions to project a vector depending on where the vehicle is facing, so you can then multiply it and use it as speed.
http://pastebin.com/7L2yi3gz
The front side of the car is the negative Y coord, so you can use a code similar to this:
pawn Код:
new Float:currspeed[3], Float:direction[3], Float:total;
GetVehicleVelocity(GetPlayerVehicleID(playerid), currspeed[0], currspeed[1], currspeed[2]);
total = floatsqroot((currspeed[0] * currspeed[0]) + (currspeed[1] * currspeed[1]) + (currspeed[2] * currspeed[2]));
total += 0.7;
new Float:invector[3] = {0.0, -1.0, 0.0};
RotatePointVehicleRotation(GetPlayerVehicleID(playerid), invector, direction[0], direction[1], direction[2]);
SetVehicleVelocity(GetPlayerVehicleID(playerid), direction[0] * total, direction[1] * total, direction[2] * total);
That code will, for example, add 0.7 speed to whatever position the vehicle that playerid is driving is facing.
This function is very powerful, you will be able to add side speeds (regardless if the car is going up a cliff or not), or even detect if the player's vehicle is flipped, among others.