En faite il y a plusieurs choix le SetPlayerVelocity est un calcul d'angle (trigo) faut penser au cercle pour ça...
Mais si on fait ca Chneubeul vu que SetPlayerVelocity et un peut brusque le joueur risque de perdre de la vie le meilleur moyen est encore de faire une variable bool et de la vérifié si elle est vraie dans le OnPlayerKeyStateChange et d'appliquer a ce joueur une animation telle que :
ApplyAnimation(playerid,"PED","run_player",1,1,1,1,1,1);Avec SetPlayerVelocity ça donne a peut près ça :
new Float:X, Float:Y, Float:Z,Float:Angle;
GetPlayerFacingAngle(playerid, Angle);//On prend l'angle
GetPlayerVelocity(playerid, X, Y, Z);//On prend la 'vitesse' en direction de X Y et Z
SetPlayerVelocity(playerid, floatsin(-Angle, degrees)*0.22, floatcos(Angle, degrees)*0.22, (Z*1.002)+0.130);//Et la j'ai multiplier leurs forces.
//On retrouve (( floatsin(-Angle, degrees), floatcos(Angle, degrees) )) dans GetXYFrontOfPlayer dans mon FS Minigun Posable.Mais la le joueur risque de prendre de sérieux dommage.