GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Kiloutre le 30 Janvier 2013, 18:02:49
-
Bonjour/Bonsoir, en ce moment j'ai pas mal de question comme vous avez pu le voir :)
Alors pour faire simple, j'aimerais que par exemple si j'appuie sur H, un camion soit envoyé rapidement là où regarde le joueur.
Donc je sais maîtriser le OnPlayerKeyStateChange, CreateVehicle et SetVehicleVelocity mais le seul problème vient de l'angle du joueur.
Je ne sais pas du tout comment bidouiller l'angle du joueur pour que le camion soit envoyé là où il regarde, quelqu'un saurait comment faire ?
(D'ailleurs ça me servirai aussi pour crée et attacher un trailer, car aucun trailer ne s'attache si il n'est pas derrière le véhicule)
Merci d'avance.
-
GetPlayerCameraFrontVector - SA-MP Wiki (http://wiki.sa-mp.com/wiki/GetPlayerCameraFrontVector)
-
Et je fais quoi avec cette fonction ?
Un peu d'explication s'il te plaît :)
-
Regards l'exemple il en dit beaucoup ^^
-
Exact, l'exemple est très compréhensif, je vous remercie tous les deux. :happy:
Par contre, pour l'angle x et y de la vitesse du véhicule, je ne pense pas que le procédé soit le même, quelqu'un aurait une petite idée de la manière dont je pourrais réaliser cela ?
-
Avec un peu de trigonométrie tu peux le faire.
Envoies nous ton code pour qu'on puisse voir comment tu fais.
-
Désolé du up, j'avais totalement zappé mais j'ai repris le pawn récemment (Et j'ai besoin de ça)
Et donc, pour te répondre Ssk, je ne fais pas de trigonométrie, et je n'ai pas de code pour la vitesse du véhicule, je ne suis qu'en 5ème (je passe en 4ème), et jusqu'ici je n'ai rien appris de tel ^^
Et d'ailleurs, la fonction que vous m'avez donné crée l'objet là où la caméra regarde et non pas le joueur, alors que moi je cherche à créer devant le joueur ._.
-
Tu as juste à changer le CreateObject en CreateVehicle.
Mais que veux tu faire exactement, c'est bien de spawn un véhicule la où la camera pointe ? Ou seulement devant ton personnage ?
-
Juste spawner devant le joueur, j'ai tenté de trafiquer le code donné pour faire spawn devant le joueur (en ayant l'axe de rotation z au même niveau) mais sans succès, l'objet ne spawn pas devant le joueur :/
-
J'ai cherché deux secondes sur le net et j'ai trouvé ça pour toi.
GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
{
GetPlayerPos(playerid, x, y, Angle);
GetPlayerFacingAngle(playerid, Angle);
if (GetPlayerVehicleID(playerid))
{
GetVehicleZAngle(GetPlayerVehicleID(playerid), Angle);
}
x += (distance * floatsin(-Angle, degrees));
y += (distance * floatcos(-Angle, degrees));
}
http://forum.sa-mp.com/showthread.php?t=186477 (http://forum.sa-mp.com/showthread.php?t=186477)
-
Et bien après avoir essayé, je dirais que ça ne marche pas
Voici le code:
new Float:x, Float:y, Float: z, Float:fangle;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, fangle);
x=0;
y=0;
z=0;
GetXYInFrontOfPlayer(playerid, x, y, 5);
CreateObject(pInfo[playerid][RAMPID], x, y, z, 0.0, 0.0, fangle);
GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
{
new Float:Angle;
GetPlayerPos(playerid, x, y, Angle);
GetPlayerFacingAngle(playerid, Angle);
if (GetPlayerVehicleID(playerid))
{
GetVehicleZAngle(GetPlayerVehicleID(playerid), Angle);
}
x += (distance * floatsin(-Angle, degrees));
y += (distance * floatcos(-Angle, degrees));
}
-
Salut, normalement tu as juste à mettre +5 à la position X du joueur.
Exemple: x+5,y,zBien sûr il faut utiliser la fonction GetPlayerPos (http://wiki.sa-mp.com/wiki/Function:GetPlayerPos) juste avant pour obtenir la position du joueur.
-
C'est normal, tu as remis à 0 les coordonnées x, y, z.
Retire ça
x=0;
y=0;
z=0;