Salut,
je viens de jeter un coups d'oeil et franchement...le script dans ton lien Gszume est vraiment douteux.
Il fera la job, mais faudrait m'expliquer pourquoi il fait ça:
x1 = (floatsin(a, degrees) * (speed/100) + floatcos(a, degrees) * 0 + x2) - x2;
y1 = (floatcos(a, degrees) * (speed/100) + floatsin(a, degrees) * 0 + y2) - y2;
}
Il ajoute une valeur qu'il multiplie par 0 et fait + x2 - x2....
La moitié de ce code est complètement inutile...
Vous seriez mieux d'utiliser l'une de ces fonctions :
Si tu veut que la voiture avance dans la direction où pointe le véhicule:
stock SetVehicleSpeed(vehicleid, Float:speed)
{
new Float:velocityX, Float:velocityY, Float:velocityZ, Float:angle;
GetVehicleVelocity(vehicleid, velocityX, velocityY, velocityZ);
GetVehicleZAngle(vehicleid, angle);
velocityX = floatsin((-1)*a, degrees)* (speed/100);
velocityY = floatcos(a, degrees) * (speed/100);
SetVehicleVelocity(vehicleid, velocityX, velocityY, velocityZ);
return 1;
}
Si tu veux qu'il continue dans la direction où il va déjà:
stock SetVehicleSpeed(vehicleid, Float:speed)
{
new Float:velocityX, Float:velocityY, Float:velocityZ, Float:speed_eq;
GetVehicleVelocity(vehicleid, velocityX, velocityY, velocityZ);
speed_eq = floatsqroot(velocityX * velocityX + velocityY * velocityY + velocityZ + velocityZ);
velocityX *= speed/(speed_eq * 100);
velocityY *= speed/(speed_eq * 100);
velocityZ *= speed/(speed_eq * 100);
SetVehicleVelocity(vehicleid, velocityX, velocityY, velocityZ);
return 1;
}
***Note: Je peux m'être tromper pour les sin/cos car je ne suis plus sur de la façon dont les angles se place dans SA-MP et il faut ajuster le 100 pour avoir un résultat qui soit tel que le SetVehicleVelocity ou en km/h etc... Il suffit de choisir la valeur appropriée.
Je vais vérifier demain à tête reposée.
++Sim++