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

Titre: Crée un véhicule qui partira là où regarde le joueur
Posté 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.
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Xartrick le 01 Février 2013, 13:49:27
GetPlayerCameraFrontVector - SA-MP Wiki (http://wiki.sa-mp.com/wiki/GetPlayerCameraFrontVector)
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Kiloutre le 01 Février 2013, 20:21:39
Et je fais quoi avec cette fonction ?
Un peu d'explication s'il te plaît  :)
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Ssk le 01 Février 2013, 20:33:43
Regards l'exemple il en dit beaucoup ^^
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Kiloutre le 01 Février 2013, 20:58:04
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 ?
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Ssk le 01 Février 2013, 21:51:44
Avec un peu de trigonométrie tu peux le faire.

Envoies nous ton code pour qu'on puisse voir comment tu fais.
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Kiloutre le 19 Juillet 2013, 13:13:55
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 ._.
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Ssk le 19 Juillet 2013, 16:59:16
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 ?
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Kiloutre le 19 Juillet 2013, 17:37:37
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 :/
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Ssk le 19 Juillet 2013, 17:52:47
J'ai cherché deux secondes sur le net et j'ai trouvé ça pour toi.


Code: (pawn) [Sélectionner]
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)
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Kiloutre le 20 Juillet 2013, 17:41:15
Et bien après avoir essayé, je dirais que ça ne marche pas
Voici le code:
Code: (pawn) [Sélectionner]
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));
}
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Ouzdi Broono le 20 Juillet 2013, 18:16:13
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.
Titre: Re : Crée un véhicule qui partira là où regarde le joueur
Posté par: Ssk le 20 Juillet 2013, 19:56:07
C'est normal, tu as remis à 0 les coordonnées x, y, z.

Retire ça

Code: (pawn) [Sélectionner]
                x=0;
                y=0;
                z=0;